]>
Commit | Line | Data |
---|---|---|
1fd5e000 | 1 | # Makefile for Cygwin utilities |
6c8ef048 | 2 | # Copyright 1996, 1997, 1998, 1999, 2000 Cygnus Solutions. |
1fd5e000 CF |
3 | |
4 | # This file is part of Cygwin. | |
5 | ||
6 | # This software is a copyrighted work licensed under the terms of the | |
7 | # Cygwin license. Please consult the file "CYGWIN_LICENSE" for | |
8 | # details. | |
9 | ||
10 | SHELL:=@SHELL@ | |
11 | ||
12 | srcdir:=@srcdir@ | |
13 | VPATH:=@srcdir@ | |
14 | prefix:=@prefix@ | |
15 | exec_prefix:=@exec_prefix@ | |
16 | ||
17 | bindir:=@bindir@ | |
18 | etcdir:=$(exec_prefix)/etc | |
19 | program_transform_name:=@program_transform_name@ | |
20 | ||
21 | INSTALL:=@INSTALL@ | |
22 | INSTALL_PROGRAM:=@INSTALL_PROGRAM@ | |
23 | INSTALL_DATA:=@INSTALL_DATA@ | |
24 | ||
25 | EXEEXT:=@EXEEXT@ | |
26 | EXEEXT_FOR_BUILD:=@EXEEXT_FOR_BUILD@ | |
27 | ||
28 | CC:=@CC@ | |
29 | CC_FOR_TARGET:=$(CC) | |
30 | ||
31 | CFLAGS:=@CFLAGS@ | |
72ac8b4f | 32 | CXXFLAGS:=@CXXFLAGS@ -fno-exceptions -nostdinc++ -fno-rtti |
1fd5e000 CF |
33 | |
34 | include $(srcdir)/../Makefile.common | |
35 | ||
c6c9f06b | 36 | MINGW_INCLUDES:=-I$(mingw_source)/include -I$(cygwin_source)/include -I$(w32api_include) |
1fd5e000 | 37 | |
0715614b CF |
38 | libbfd:=$(bupdir2)/bfd/libbfd.a |
39 | libintl:=$(bupdir2)/intl/libintl.a | |
40 | build_dumper:=${shell test -r $(libbfd) -a -r $(libintl) -a -d $(updir1)/include && echo 1} | |
41 | ||
0ad10c0f CF |
42 | DUMPER_INCLUDES:=-I$(bupdir2)/bfd -I$(updir1)/include |
43 | ||
72ac8b4f CF |
44 | MINGW_CXXFLAGS:=$(CXXFLAGS) -mno-cygwin $(MINGW_INCLUDES) |
45 | MINGW_CFLAGS:=$(CFLAGS) -mno-cygwin $(MINGW_INCLUDES) | |
1fd5e000 | 46 | |
0ad10c0f CF |
47 | DUMPER_CFLAGS:=$(CFLAGS) $(INCLUDES) $(DUMPER_INCLUDES) |
48 | ||
1fd5e000 CF |
49 | libcygwin:=$(cygwin_build)/libcygwin.a |
50 | libuser32:=$(w32api_lib)/libuser32.a | |
51 | libkernel32:=$(w32api_lib)/libkernel32.a | |
52 | ALL_DEP_LDLIBS:=$(libcygwin) $(w32api_lib)/libnetapi32.a \ | |
53 | $(w32api_lib)/libadvapi32.a $(w32api_lib)/libkernel32.a \ | |
54 | $(w32api_lib)/libuser32.a | |
55 | ||
56 | ALL_LDLIBS:=${patsubst $(w32api_lib)/lib%.a,-l%,\ | |
57 | ${filter-out $(libuser32),\ | |
58 | ${filter-out $(libkernel32),\ | |
59 | ${filter-out $(libcygwin), $(ALL_DEP_LDLIBS)}}}} | |
60 | ||
61 | MINGW_LIB:=$(mingw_build)/libmingw32.a | |
0715614b | 62 | DUMPER_LIB:=-L$(bupdir2)/bfd -lbfd -L$(bupdir1)/libiberty -liberty -L$(bupdir2)/intl -lintl |
1fd5e000 | 63 | MINGW_LDLIBS:=$(ALL_LDLIBS) $(MINGW_LIB) |
72ac8b4f | 64 | MINGW_DEP_LDLIBS:=${ALL_DEP_LDLIBS} ${MINGW_LIB} |
1fd5e000 CF |
65 | ALL_LDFLAGS:=-B$(newlib_build)/libc/ -B$(newlib_build)/libm/ -B$(w32api_lib)/ \ |
66 | $(LDFLAGS) $(ALL_LDLIBS) | |
67 | MINGW_LDFLAGS:=$(ALL_LDFLAGS) $(MINGW_LIB) | |
0ad10c0f | 68 | DUMPER_LDFLAGS:=$(ALL_LDFLAGS) $(DUMPER_LIB) |
1fd5e000 CF |
69 | |
70 | PROGS:=mount$(EXEEXT) umount$(EXEEXT) ps$(EXEEXT) kill$(EXEEXT) \ | |
71 | mkpasswd$(EXEEXT) mkgroup$(EXEEXT) cygpath$(EXEEXT) cygcheck$(EXEEXT) \ | |
72 | passwd$(EXEEXT) getfacl$(EXEEXT) setfacl$(EXEEXT) strace$(EXEEXT) \ | |
0715614b CF |
73 | regtool$(EXEEXT) |
74 | ||
1b38471e | 75 | CLEAN_PROGS:=$(PROGS) |
0715614b CF |
76 | ifdef build_dumper |
77 | PROGS+=dumper$(EXEEXT) | |
78 | else | |
79 | PROGS:=warn_dumper $(PROGS) | |
1b38471e | 80 | CLEAN_PROGS+=dumper.exe |
0715614b | 81 | endif |
1fd5e000 | 82 | |
1fd5e000 CF |
83 | .SUFFIXES: |
84 | .NOEXPORT: | |
85 | ||
0715614b | 86 | .PHONY: all install clean realclean warn_dumper |
1fd5e000 CF |
87 | |
88 | all: Makefile $(PROGS) | |
89 | ||
72ac8b4f | 90 | strace.exe: strace.cc mingw_getopt.o $(MINGW_DEP_LDLIBS) |
1fd5e000 | 91 | ifdef VERBOSE |
1b534ee1 | 92 | $(CC) $(MINGW_CXXFLAGS) -o $@ ${wordlist 1,2,$^} -B$(mingw_build)/ $(MINGW_LDFLAGS) |
1fd5e000 | 93 | else |
c6c9f06b | 94 | @echo $(CC) -o $@ ${wordlist 1,2,$^} ${filter-out -B%, $(MINGW_CXXFLAGS) $(MINGW_LDFLAGS)};\ |
1b534ee1 | 95 | $(CC) $(MINGW_CXXFLAGS) -o $@ ${wordlist 1,2,$^} -B$(mingw_build)/ $(MINGW_LDFLAGS) |
1fd5e000 CF |
96 | endif |
97 | ||
0ad10c0f | 98 | dumper.o: dumper.cc dumper.h |
0715614b | 99 | $(CC) -c -o $@ $(DUMPER_CFLAGS) ${firstword $^} |
0ad10c0f CF |
100 | |
101 | module_info.o: module_info.cc | |
0715614b | 102 | $(CC) -c -o $@ $(DUMPER_CFLAGS) $^ |
0ad10c0f CF |
103 | |
104 | parse_pe.o: parse_pe.cc dumper.h | |
0715614b | 105 | $(CC) -c -o $@ $(DUMPER_CFLAGS) ${firstword $^} |
0ad10c0f | 106 | |
8c6b7d8a | 107 | mingw_getopt.o: $(cygwin_source)/lib/getopt.c |
1fd5e000 CF |
108 | $(CC) -c -o $@ $(MINGW_CFLAGS) $^ |
109 | ||
110 | clean: | |
1b38471e | 111 | rm -f *.o $(CLEAN_PROGS) |
1fd5e000 CF |
112 | |
113 | realclean: clean | |
114 | rm -f Makefile config.cache | |
115 | ||
116 | install: all | |
117 | $(SHELL) $(updir1)/mkinstalldirs $(bindir) $(etcdir) | |
118 | for i in $(PROGS) ; do \ | |
119 | n=`echo $$i | sed '$(program_transform_name)'`; \ | |
120 | $(INSTALL_PROGRAM) $$i $(bindir)/$$n; \ | |
121 | done | |
122 | ||
123 | $(cygwin_build)/libcygwin.a: $(cygwin_build)/Makefile | |
124 | @$(MAKE) -C $(@D) $(@F) | |
125 | ||
126 | $(mingw_build)/libmingw32.a: $(mingw_build)/Makefile | |
127 | @$(MAKE) -C $(@D) $(@F) | |
128 | ||
0715614b CF |
129 | warn_dumper: |
130 | @echo '*** Not building dumper.exe since some required libraries or headers' | |
131 | @echo '*** are missing (libbfd.a, libintl.a, and include/).' | |
132 | @echo '*** Check out and build these libraries from sources.redhat.com if you' | |
133 | @echo '*** need dumper.exe. Otherwise, you can safely ignore this warning.' | |
134 | ||
0ad10c0f CF |
135 | dumper.exe: module_info.o parse_pe.o dumper.o $(ALL_DEP_LDLIBS) |
136 | ifdef VERBOSE | |
0715614b | 137 | $(CC) -o $@ ${wordlist 1,3,$^} -B$(cygwin_build)/ $(DUMPER_LDFLAGS) |
0ad10c0f | 138 | else |
0715614b | 139 | @echo $(CC) -o $@ ${wordlist 1,3,$^} ${filter-out -B%, $(DUMPER_LDFLAGS)};\ |
0ad10c0f CF |
140 | $(CC) -o $@ ${wordlist 1,3,$^} -B$(cygwin_build)/ $(DUMPER_LDFLAGS) |
141 | endif | |
142 | ||
1fd5e000 CF |
143 | %.exe: %.o $(ALL_DEP_LDLIBS) |
144 | ifdef VERBOSE | |
145 | $(CC) -o $@ ${firstword $^} -B$(cygwin_build)/ $(ALL_LDFLAGS) | |
146 | else | |
147 | @echo $(CC) -o $@ ${firstword $^} ${filter-out -B%, $(ALL_LDFLAGS)};\ | |
148 | $(CC) -o $@ ${firstword $^} -B$(cygwin_build)/ $(ALL_LDFLAGS) | |
149 | endif |