]>
Commit | Line | Data |
---|---|---|
37ee316b CF |
1 | # Copyright (c) 2000, Red Hat, Inc. |
2 | # | |
3 | # This program is free software; you can redistribute it and/or modify | |
4 | # it under the terms of the GNU General Public License as published by | |
5 | # the Free Software Foundation; either version 2 of the License, or | |
6 | # (at your option) any later version. | |
7 | # | |
8 | # A copy of the GNU General Public License can be found at | |
9 | # http://www.gnu.org/ | |
10 | # | |
6dfbe297 | 11 | # Written by Christopher Faylor <cgf@redhat.com> |
37ee316b | 12 | # |
739457f4 | 13 | # Makefile for Cygwin installer |
739457f4 | 14 | |
23c9e63c | 15 | SHELL := @SHELL@ |
739457f4 | 16 | |
23c9e63c DD |
17 | srcdir := @srcdir@ |
18 | VPATH := @srcdir@ | |
19 | prefix := @prefix@ | |
20 | exec_prefix := @exec_prefix@ | |
739457f4 | 21 | |
23c9e63c DD |
22 | bindir := @bindir@ |
23 | etcdir := $(exec_prefix)/etc | |
739457f4 | 24 | |
23c9e63c | 25 | program_transform_name := @program_transform_name@ |
739457f4 | 26 | |
23c9e63c DD |
27 | INSTALL := @INSTALL@ |
28 | INSTALL_PROGRAM := @INSTALL_PROGRAM@ | |
29 | INSTALL_DATA := @INSTALL_DATA@ | |
739457f4 | 30 | |
23c9e63c DD |
31 | EXEEXT := @EXEEXT@ |
32 | EXEEXT_FOR_BUILD := @EXEEXT_FOR_BUILD@ | |
739457f4 | 33 | |
23c9e63c DD |
34 | CC := @CC@ |
35 | CC_FOR_TARGET := $(CC) | |
72826a5b | 36 | CXX := @CXX@ |
739457f4 | 37 | |
b24c88b3 RC |
38 | CFLAGS := @CFLAGS@ -Werror -Winline -Wall -Wpointer-arith -Wcast-align\ |
39 | -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes \ | |
40 | -Wmissing-declarations -Wcomments | |
a351e48c | 41 | CXXFLAGS := @CXXFLAGS@ $(CFLAGS) -fno-exceptions -fno-rtti |
72826a5b | 42 | CXX := @CXX@ |
23c9e63c DD |
43 | |
44 | WINDRES := @WINDRES@ | |
45 | OBJCOPY := @OBJCOPY@ | |
739457f4 CF |
46 | |
47 | include $(srcdir)/../Makefile.common | |
48 | ||
87c42361 | 49 | MINGW_INCLUDES := -I. -I$(srcdir) -I$(mingw_source)/include $(w32api_include) -I$(updir)/bz2lib |
23c9e63c | 50 | |
ad09bcd9 DD |
51 | MINGW_CXXFLAGS := -MMD $(CXXFLAGS) -mno-cygwin $(MINGW_INCLUDES) -mwindows |
52 | MINGW_CFLAGS := -MMD $(CFLAGS) -mno-cygwin $(MINGW_INCLUDES) -mwindows | |
b24c88b3 RC |
53 | # to avoid false errors that assembly generates |
54 | WARNONLY_CFLAGS := -MMD @CFLAGS@ -Winline -Wall -Wpointer-arith -Wcast-align \ | |
55 | -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes \ | |
56 | -Wmissing-declarations -Wcomments \ | |
57 | -mno-cygwin $(MINGW_INCLUDES) -mwindows | |
739457f4 | 58 | |
87c42361 | 59 | ZLIB := zlib/libzcygw.a |
fb087b80 | 60 | BZ2LIB := $(bupdir)/bz2lib/libbz2.a |
87c42361 | 61 | libmingw32.a := $(mingw_build)/libmingw32.a |
23c9e63c DD |
62 | libuser32 := $(w32api_lib)/libuser32.a |
63 | libkernel32 := $(w32api_lib)/libkernel32.a | |
739457f4 | 64 | |
fb087b80 | 65 | ALL_DEP_LDLIBS := $(ZLIB) $(BZ2LIB) $(w32api_lib)/libole32.a $(w32api_lib)/libwsock32.a \ |
739457f4 CF |
66 | $(w32api_lib)/libnetapi32.a $(w32api_lib)/libadvapi32.a \ |
67 | $(w32api_lib)/libuuid.a $(libkernel32) $(w32api_lib)/libuser32.a \ | |
4306b490 | 68 | $(libmingw32) |
739457f4 | 69 | |
23c9e63c | 70 | ALL_LDLIBS := ${patsubst $(mingw_build)/lib%.a,-l%,\ |
739457f4 | 71 | ${patsubst $(w32api_lib)/lib%.a,-l%,\ |
4306b490 CF |
72 | ${filter-out $(libmingw32),\ |
73 | ${filter-out $(libuser32),\ | |
74 | ${filter-out $(libkernel32), $(ALL_DEP_LDLIBS)}}}}} | |
739457f4 | 75 | |
23c9e63c | 76 | ALL_LDFLAGS := ${filter-out -I%, \ |
739457f4 | 77 | ${filter-out -W%, \ |
4306b490 | 78 | -B$(w32api_lib)/ -B${mingw_build}/ $(MINGW_CFLAGS) $(LDFLAGS)}} |
739457f4 | 79 | |
23c9e63c DD |
80 | PROGS := setup$(EXEEXT) |
81 | ||
82 | OBJS = \ | |
b24c88b3 RC |
83 | archive.o \ |
84 | archive_tar.o \ | |
85 | archive_tar_file.o \ | |
a99bdfd8 | 86 | autoload.o \ |
23c9e63c | 87 | choose.o \ |
b24c88b3 RC |
88 | compress.o \ |
89 | compress_bz.o \ | |
90 | compress_gz.o \ | |
23c9e63c | 91 | concat.o \ |
904d24fe | 92 | desktop.o \ |
23c9e63c DD |
93 | dialog.o \ |
94 | diskfull.o \ | |
95 | download.o \ | |
96 | find.o \ | |
97 | fromcwd.o \ | |
98 | geturl.o \ | |
4a83b7b0 | 99 | hash.o \ |
23c9e63c DD |
100 | ini.o \ |
101 | inilex.o \ | |
102 | iniparse.o \ | |
103 | install.o \ | |
b24c88b3 RC |
104 | io_stream.o \ |
105 | io_stream_cygfile.o \ | |
106 | io_stream_file.o \ | |
c92e1307 | 107 | localdir.o \ |
89b1a15b | 108 | log.o \ |
23c9e63c | 109 | main.o \ |
d52ed64b | 110 | mingw_getopt.o \ |
23c9e63c | 111 | mkdir.o \ |
904d24fe | 112 | mklink2.o \ |
23c9e63c DD |
113 | mount.o \ |
114 | msg.o \ | |
115 | net.o \ | |
116 | netio.o \ | |
117 | nio-ie5.o \ | |
118 | nio-file.o \ | |
4a83b7b0 DD |
119 | nio-ftp.o \ |
120 | nio-http.o \ | |
23c9e63c | 121 | other.o \ |
f57c332f | 122 | postinstall.o \ |
23c9e63c DD |
123 | res.o \ |
124 | root.o \ | |
4a83b7b0 | 125 | simpsock.o \ |
23c9e63c DD |
126 | site.o \ |
127 | source.o \ | |
8507f105 | 128 | splash.o \ |
23c9e63c | 129 | state.o \ |
8507f105 | 130 | version.o \ |
23c9e63c | 131 | $E |
4b40edd0 | 132 | |
739457f4 CF |
133 | .SUFFIXES: |
134 | .NOEXPORT: | |
135 | ||
136 | .PHONY: all install clean realclean | |
137 | ||
138 | all: Makefile $(PROGS) | |
139 | ||
4b40edd0 | 140 | setup$(EXEEXT): $(OBJS) $(ALL_DEP_LDLIBS) |
739457f4 | 141 | ifdef VERBOSE |
25fb9139 | 142 | $(CXX) $(MINGW_CXXFLAGS) -o $@ ${filter-out $(ALL_DEP_LIBS),$^} |
739457f4 | 143 | else |
25fb9139 CF |
144 | @echo $(CXX) ... -o $@ $(OBJS) |
145 | @$(CXX) $(MINGW_CXXFLAGS) -o $@ ${filter-out $(ALL_DEP_LIBS),$^} $(ALL_LDFLAGS) $(ALL_LDLIBS) | |
739457f4 CF |
146 | endif |
147 | @chmod a-x $@ | |
148 | ||
d52ed64b RC |
149 | mingw_getopt.o: $(cygwin_source)/lib/getopt.c |
150 | ifdef VERBOSE | |
151 | ${filter-out -I$(newlib_source)/%,$(COMPILE_CC)} $c -o $(@D)/$(basename $@)$o $(MINGW_CFLAGS) $< | |
152 | else | |
153 | @echo $(CC) $c -o $(@D)/$(basename $@)$o $(MINGW_CFLAGS) ... $^;\ | |
9a60dafc | 154 | ${filter-out -I$(newlib_source)/%,$(COMPILE_CC)} $c -o $(@D)/$(basename $@)$o $(MINGW_CFLAGS) $< |
d52ed64b RC |
155 | endif |
156 | ||
739457f4 | 157 | clean: |
e9b1aaa7 | 158 | rm -f *.o $(PROGS) iniparse.c* iniparse.h* inilex.c* *.d |
87c42361 | 159 | $(MAKE) -C zlib clean |
739457f4 CF |
160 | |
161 | realclean: clean | |
162 | rm -f Makefile config.cache | |
163 | ||
164 | install: all | |
165 | $(SHELL) $(updir1)/mkinstalldirs $(bindir) $(etcdir) | |
166 | for i in $(PROGS) ; do \ | |
167 | n=`echo $$i | sed '$(program_transform_name)'`; \ | |
168 | $(INSTALL_PROGRAM) $$i $(bindir)/$$n; \ | |
169 | done | |
170 | ||
4306b490 | 171 | $(libmingw32): $(mingw_build)/Makefile |
739457f4 CF |
172 | @$(MAKE) -C $(@D) $(@F) |
173 | ||
87c42361 | 174 | $(ZLIB): zlib/Makefile |
23c9e63c | 175 | $(MAKE) -C $(@D) $(@F) CC="$(CC)" CFLAGS='$(MINGW_CFLAGS)' |
739457f4 | 176 | |
fb087b80 CF |
177 | $(BZ2LIB): $(bupdir)/bz2lib/Makefile |
178 | $(MAKE) -C $(@D) $(@F) CC="$(CC)" CFLAGS='$(MINGW_CFLAGS)' | |
179 | ||
8507f105 | 180 | version.c : $(srcdir)/ChangeLog Makefile |
2e9cbac5 DD |
181 | V=`grep '^\$$Revision.*' $(srcdir)/ChangeLog \ |
182 | | sed -e 's/\$$Revision:* *//' \ | |
183 | -e 's/ *$$.*//'` ;\ | |
b24c88b3 | 184 | echo "const char *version = \"$$V\";" > version.tmp ;\ |
8507f105 DD |
185 | mv version.tmp version.c |
186 | ||
739457f4 | 187 | %.o: %.rc |
ad09bcd9 | 188 | ifdef VERBOSE |
a6ba3670 | 189 | $(WINDRES) --include-dir $(srcdir) --include-dir $(w32api_source)/include -o $@ $< |
ad09bcd9 DD |
190 | else |
191 | @echo $(WINDRES) -o $@ $(<F) | |
a6ba3670 | 192 | @$(WINDRES) --include-dir $(srcdir) --include-dir $(w32api_source)/include -o $@ $< |
ad09bcd9 | 193 | endif |
99d1bf2d | 194 | |
739457f4 CF |
195 | %.o: %.c |
196 | ifdef VERBOSE | |
ad09bcd9 | 197 | $(CC) $(MINGW_CFLAGS) -c -o $@ $< |
739457f4 | 198 | else |
ad09bcd9 DD |
199 | @echo $(CC) -c $(CFLAGS) ... $(<F) |
200 | @$(CC) $(MINGW_CFLAGS) -c -o $@ $< | |
739457f4 | 201 | endif |
23c9e63c DD |
202 | |
203 | %.o: %.cc | |
204 | ifdef VERBOSE | |
72826a5b | 205 | $(CXX) $(MINGW_CXXFLAGS) -c -o $@ $< |
23c9e63c | 206 | else |
72826a5b CF |
207 | @echo $(CXX) -c $(CXXFLAGS) ... $(<F) |
208 | @$(CXX) $(MINGW_CXXFLAGS) -c -o $@ $< | |
23c9e63c DD |
209 | endif |
210 | ||
38f5563e DD |
211 | autoload.o: autoload.c |
212 | ifdef VERBOSE | |
b24c88b3 | 213 | $(CC) $(WARNONLY_CFLAGS) -c -o $@ $< -fno-inline-functions |
38f5563e | 214 | else |
b24c88b3 RC |
215 | @echo $(CC) -c $(WARNONLY_CFLAGS) ... $(<F) -fno-inline-functions |
216 | @$(CC) $(WARNONLY_CFLAGS) -c -o $@ $< -fno-inline-functions | |
38f5563e DD |
217 | endif |
218 | ||
b24c88b3 RC |
219 | inilex.o: inilex.c |
220 | ifdef VERBOSE | |
221 | $(CC) $(WARNONLY_CFLAGS) -c -o $@ $< | |
222 | else | |
223 | @echo $(CC) -c $(WARNONLY_CFLAGS) ... $(<F) | |
224 | @$(CC) $(WARNONLY_CFLAGS) -c -o $@ $< | |
225 | endif | |
226 | ||
227 | iniparse.o: iniparse.cc | |
228 | ifdef VERBOSE | |
229 | $(CXX) @CXXFLAGS@ $(WARNONLY_CFLAGS) -fno-exceptions -fno-rtti -c -o $@ $< | |
230 | else | |
231 | @echo $(CXX) -c @CXXFLAGS@ $(WARNONLY_CFLAGS) ... $(<F) -fno-exceptions -fno-rtti | |
232 | @$(CXX) @CXXFLAGS@ $(WARNONLY_CFLAGS) -c -o $@ $< -fno-exceptions -fno-rtti | |
233 | endif | |
234 | ||
235 | ||
236 | ||
0af2d779 CF |
237 | iniparse.cc iniparse.h : iniparse.y |
238 | bison -d -o iniparse.cc $(srcdir)/iniparse.y | |
8e1299fa | 239 | @mv iniparse.cc.h iniparse.h |
23c9e63c DD |
240 | |
241 | inilex.c : inilex.l iniparse.h | |
242 | flex -8 $(srcdir)/inilex.l | |
243 | mv lex.yy.c inilex.c | |
ad09bcd9 | 244 | |
30695b77 | 245 | D:=$(wildcard *.d) |
ad09bcd9 DD |
246 | ifneq ($D,) |
247 | include $D | |
248 | endif |