]>
Commit | Line | Data |
---|---|---|
1fd5e000 CF |
1 | # Makefile for Cygwin utilities |
2 | # Copyright 1996, 1997, 1998 Cygnus Solutions. | |
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@ | |
32 | CXXFLAGS:=@CXXFLAGS@ | |
33 | ||
34 | include $(srcdir)/../Makefile.common | |
35 | ||
36 | MINGW_INCLUDES:=-I$(updir)/mingw/include | |
37 | ||
38 | MINGW_CXXFLAGS:=-mno-cygwin $(CXXFLAGS) $(MINGW_INCLUDES) | |
39 | MINGW_CFLAGS:=-mno-cygwin $(CFLAGS) $(MINGW_INCLUDES) | |
40 | ||
41 | libcygwin:=$(cygwin_build)/libcygwin.a | |
42 | libuser32:=$(w32api_lib)/libuser32.a | |
43 | libkernel32:=$(w32api_lib)/libkernel32.a | |
44 | ALL_DEP_LDLIBS:=$(libcygwin) $(w32api_lib)/libnetapi32.a \ | |
45 | $(w32api_lib)/libadvapi32.a $(w32api_lib)/libkernel32.a \ | |
46 | $(w32api_lib)/libuser32.a | |
47 | ||
48 | ALL_LDLIBS:=${patsubst $(w32api_lib)/lib%.a,-l%,\ | |
49 | ${filter-out $(libuser32),\ | |
50 | ${filter-out $(libkernel32),\ | |
51 | ${filter-out $(libcygwin), $(ALL_DEP_LDLIBS)}}}} | |
52 | ||
53 | MINGW_LIB:=$(mingw_build)/libmingw32.a | |
54 | MINGW_LDLIBS:=$(ALL_LDLIBS) $(MINGW_LIB) | |
55 | ALL_LDFLAGS:=-B$(newlib_build)/libc/ -B$(newlib_build)/libm/ -B$(w32api_lib)/ \ | |
56 | $(LDFLAGS) $(ALL_LDLIBS) | |
57 | MINGW_LDFLAGS:=$(ALL_LDFLAGS) $(MINGW_LIB) | |
58 | ||
59 | PROGS:=mount$(EXEEXT) umount$(EXEEXT) ps$(EXEEXT) kill$(EXEEXT) \ | |
60 | mkpasswd$(EXEEXT) mkgroup$(EXEEXT) cygpath$(EXEEXT) cygcheck$(EXEEXT) \ | |
61 | passwd$(EXEEXT) getfacl$(EXEEXT) setfacl$(EXEEXT) strace$(EXEEXT) \ | |
62 | regtool$(EXEEXT) | |
63 | ||
64 | WINSUP_DEPS:=$(cygwin_source)/winsup.h | |
65 | ||
66 | .SUFFIXES: | |
67 | .NOEXPORT: | |
68 | ||
69 | .PHONY: all install clean realclean | |
70 | ||
71 | all: Makefile $(PROGS) | |
72 | ||
73 | strace.exe: strace.cc mingw_getopt.o $(MINGW_LDLIBS) | |
74 | ifdef VERBOSE | |
75 | $(CC) $(MINGW_CFLAGS) -o $@ ${wordlist 1,2,$^} -B$(mingw_build)/ $(MINGW_LDFLAGS) | |
76 | else | |
77 | @echo $(CC) -mno-cygwin -o $@ ${wordlist 1,2,$^} ${filter-out -B%, $(MINGW_LDFLAGS)};\ | |
78 | $(CC) $(MINGW_CFLAGS) -o $@ ${wordlist 1,2,$^} -B$(mingw_build)/ $(MINGW_LDFLAGS) | |
79 | endif | |
80 | ||
81 | mingw_getopt.o: $(cygwin_source)/getopt.c | |
82 | $(CC) -c -o $@ $(MINGW_CFLAGS) $^ | |
83 | ||
84 | clean: | |
85 | rm -f *.o $(PROGS) | |
86 | ||
87 | realclean: clean | |
88 | rm -f Makefile config.cache | |
89 | ||
90 | install: all | |
91 | $(SHELL) $(updir1)/mkinstalldirs $(bindir) $(etcdir) | |
92 | for i in $(PROGS) ; do \ | |
93 | n=`echo $$i | sed '$(program_transform_name)'`; \ | |
94 | $(INSTALL_PROGRAM) $$i $(bindir)/$$n; \ | |
95 | done | |
96 | ||
97 | $(cygwin_build)/libcygwin.a: $(cygwin_build)/Makefile | |
98 | @$(MAKE) -C $(@D) $(@F) | |
99 | ||
100 | $(mingw_build)/libmingw32.a: $(mingw_build)/Makefile | |
101 | @$(MAKE) -C $(@D) $(@F) | |
102 | ||
103 | %.exe: %.o $(ALL_DEP_LDLIBS) | |
104 | ifdef VERBOSE | |
105 | $(CC) -o $@ ${firstword $^} -B$(cygwin_build)/ $(ALL_LDFLAGS) | |
106 | else | |
107 | @echo $(CC) -o $@ ${firstword $^} ${filter-out -B%, $(ALL_LDFLAGS)};\ | |
108 | $(CC) -o $@ ${firstword $^} -B$(cygwin_build)/ $(ALL_LDFLAGS) | |
109 | endif |