]>
Commit | Line | Data |
---|---|---|
739457f4 CF |
1 | # Makefile for Cygwin installer |
2 | # Copyright 1996, 1997, 1998, 1999, 2000 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 | ||
51954e74 | 31 | CFLAGS:=@CFLAGS@ -nostdinc |
739457f4 CF |
32 | CXXFLAGS:=@CXXFLAGS@ -fno-exceptions -nostdinc++ -fno-rtti |
33 | ||
34 | WINDRES:=@WINDRES@ | |
4306b490 | 35 | OBJCOPY:=@OBJCOPY@ |
739457f4 CF |
36 | |
37 | include $(srcdir)/../Makefile.common | |
38 | ||
4306b490 | 39 | MINGW_INCLUDES:=-I$(mingw_source)/include -I$(w32api_include) |
739457f4 CF |
40 | |
41 | MINGW_CXXFLAGS:=$(CXXFLAGS) -mno-cygwin $(MINGW_INCLUDES) | |
42 | MINGW_CFLAGS:=$(CFLAGS) -mno-cygwin $(MINGW_INCLUDES) | |
43 | ||
44 | ZLIB=zlib/libzcygw.a | |
4306b490 | 45 | libmingw32.a:=$(mingw_build)/libmingw32.a |
739457f4 CF |
46 | libuser32:=$(w32api_lib)/libuser32.a |
47 | libkernel32:=$(w32api_lib)/libkernel32.a | |
48 | ALL_DEP_LDLIBS:=$(ZLIB) $(w32api_lib)/libole32.a $(w32api_lib)/libwininet.a \ | |
49 | $(w32api_lib)/libnetapi32.a $(w32api_lib)/libadvapi32.a \ | |
50 | $(w32api_lib)/libuuid.a $(libkernel32) $(w32api_lib)/libuser32.a \ | |
4306b490 | 51 | $(libmingw32) |
739457f4 CF |
52 | |
53 | ALL_LDLIBS:=${patsubst $(mingw_build)/lib%.a,-l%,\ | |
54 | ${patsubst $(w32api_lib)/lib%.a,-l%,\ | |
4306b490 CF |
55 | ${filter-out $(libmingw32),\ |
56 | ${filter-out $(libuser32),\ | |
57 | ${filter-out $(libkernel32), $(ALL_DEP_LDLIBS)}}}}} | |
739457f4 CF |
58 | |
59 | ALL_LDFLAGS:=${filter-out -I%, \ | |
60 | ${filter-out -W%, \ | |
4306b490 | 61 | -B$(w32api_lib)/ -B${mingw_build}/ $(MINGW_CFLAGS) $(LDFLAGS)}} |
739457f4 CF |
62 | |
63 | PROGS:=setup$(EXEEXT) | |
64 | ||
51954e74 | 65 | BUNDLED_FILES:=cygwin1.dll.gz $(srcdir)/tar.exe.gz $(srcdir)/gzip.exe.gz \ |
4306b490 | 66 | mount.exe.gz cygpath.exe.gz |
739457f4 CF |
67 | .SUFFIXES: |
68 | .NOEXPORT: | |
69 | ||
70 | .PHONY: all install clean realclean | |
71 | ||
72 | all: Makefile $(PROGS) | |
73 | ||
4306b490 | 74 | setup$(EXEEXT): error.o memory.o setup.o strarry.o cinstall.o $(ALL_DEP_LDLIBS) |
739457f4 | 75 | ifdef VERBOSE |
4306b490 | 76 | $(CC) -o $@ ${wordlist 1,5,$^} $(ALL_LDFLAGS) $(ALL_LDLIBS) |
739457f4 | 77 | else |
4306b490 CF |
78 | @echo $(CC) -o $@ ${wordlist 1,5,$^} ${filter-out -B%, $(ALL_LDFLAGS) $(ALL_LDLIBS)};\ |
79 | $(CC) -o $@ ${wordlist 1,5,$^} $(ALL_LDFLAGS) $(ALL_LDLIBS) | |
739457f4 CF |
80 | endif |
81 | @chmod a-x $@ | |
82 | ||
83 | mingw_getopt.o: $(cygwin_source)/getopt.c | |
84 | $(CC) -c -o $@ $(MINGW_CFLAGS) $^ | |
85 | ||
86 | clean: | |
4306b490 | 87 | rm -f *.o $(PROGS) zlib/*.o zlib/*.a *.exe *.gz |
739457f4 CF |
88 | |
89 | realclean: clean | |
90 | rm -f Makefile config.cache | |
91 | ||
92 | install: all | |
93 | $(SHELL) $(updir1)/mkinstalldirs $(bindir) $(etcdir) | |
94 | for i in $(PROGS) ; do \ | |
95 | n=`echo $$i | sed '$(program_transform_name)'`; \ | |
96 | $(INSTALL_PROGRAM) $$i $(bindir)/$$n; \ | |
97 | done | |
98 | ||
4306b490 | 99 | $(libmingw32): $(mingw_build)/Makefile |
739457f4 CF |
100 | @$(MAKE) -C $(@D) $(@F) |
101 | ||
7b777418 | 102 | $(ZLIB): zlib/Makefile |
4306b490 CF |
103 | @$(MAKE) -C zlib CFLAGS='$(MINGW_CFLAGS)' |
104 | ||
105 | %.exe.gz: %.exe | |
106 | gzip -9nf $? | |
107 | ||
108 | %.exe: $(utils_build)/%.exe | |
109 | $(OBJCOPY) --strip-unneeded $? $@ | |
110 | ||
111 | $(utils_build)/%.exe: $(utils_build)/Makefile | |
112 | @$(MAKE) -C $(utils_build) $(@F) | |
113 | ||
51954e74 CF |
114 | %.dll.gz: %.dll |
115 | gzip -9nf $? | |
116 | ||
117 | %.dll: $(cygwin_build)/new-%.dll | |
118 | $(OBJCOPY) --strip-unneeded $? $@ | |
119 | ||
120 | $(cygwin_build)/%.dll: $(cygwin_build)/Makefile | |
121 | @$(MAKE) -C $(cygwin_build) $(@F) | |
122 | ||
4306b490 CF |
123 | cinstall.rc: $(BUNDLED_FILES) |
124 | for f in $^; do \ | |
125 | echo `basename $$f .gz` FILE DISCARDABLE '"'$$f'"'; \ | |
126 | done > $@ | |
739457f4 CF |
127 | |
128 | %.o: %.rc | |
129 | $(WINDRES) -o $@ $? | |
130 | ||
131 | %.o: %.c | |
132 | ifdef VERBOSE | |
4306b490 | 133 | $(CC) $(MINGW_CFLAGS) -c -o $@ $? |
739457f4 CF |
134 | else |
135 | @echo $(CC) -c -o $@ $? ${filter-out -B%, $(MINGW_CFLAGS)};\ | |
4306b490 | 136 | $(CC) $(MINGW_CFLAGS) -c -o $@ $? |
739457f4 | 137 | endif |