]>
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 | |
5e0464a1 RC |
15 | # Memory debugging |
16 | MC_OBJS = dlmalloc.o | |
17 | #MC_DEFS = -DDEBUG | |
18 | # Use the below when building production releases | |
19 | #MC_OBJS = | |
20 | MC_DEFS = | |
21 | ||
23c9e63c | 22 | SHELL := @SHELL@ |
739457f4 | 23 | |
23c9e63c DD |
24 | srcdir := @srcdir@ |
25 | VPATH := @srcdir@ | |
26 | prefix := @prefix@ | |
27 | exec_prefix := @exec_prefix@ | |
739457f4 | 28 | |
23c9e63c DD |
29 | bindir := @bindir@ |
30 | etcdir := $(exec_prefix)/etc | |
739457f4 | 31 | |
23c9e63c | 32 | program_transform_name := @program_transform_name@ |
739457f4 | 33 | |
23c9e63c DD |
34 | INSTALL := @INSTALL@ |
35 | INSTALL_PROGRAM := @INSTALL_PROGRAM@ | |
36 | INSTALL_DATA := @INSTALL_DATA@ | |
739457f4 | 37 | |
23c9e63c DD |
38 | EXEEXT := @EXEEXT@ |
39 | EXEEXT_FOR_BUILD := @EXEEXT_FOR_BUILD@ | |
739457f4 | 40 | |
23c9e63c DD |
41 | CC := @CC@ |
42 | CC_FOR_TARGET := $(CC) | |
72826a5b | 43 | CXX := @CXX@ |
739457f4 | 44 | |
5e0464a1 RC |
45 | CFLAGS := @CFLAGS@ $(MC_DEFS) -Werror -Winline -Wall -Wpointer-arith \ |
46 | -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes \ | |
b24c88b3 | 47 | -Wmissing-declarations -Wcomments |
97647369 | 48 | CXXFLAGS := @CXXFLAGS@ $(CFLAGS) -fno-rtti |
72826a5b | 49 | CXX := @CXX@ |
23c9e63c DD |
50 | |
51 | WINDRES := @WINDRES@ | |
52 | OBJCOPY := @OBJCOPY@ | |
739457f4 CF |
53 | |
54 | include $(srcdir)/../Makefile.common | |
55 | ||
87c42361 | 56 | MINGW_INCLUDES := -I. -I$(srcdir) -I$(mingw_source)/include $(w32api_include) -I$(updir)/bz2lib |
23c9e63c | 57 | |
ad09bcd9 DD |
58 | MINGW_CXXFLAGS := -MMD $(CXXFLAGS) -mno-cygwin $(MINGW_INCLUDES) -mwindows |
59 | MINGW_CFLAGS := -MMD $(CFLAGS) -mno-cygwin $(MINGW_INCLUDES) -mwindows | |
b24c88b3 RC |
60 | # to avoid false errors that assembly generates |
61 | WARNONLY_CFLAGS := -MMD @CFLAGS@ -Winline -Wall -Wpointer-arith -Wcast-align \ | |
62 | -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes \ | |
63 | -Wmissing-declarations -Wcomments \ | |
64 | -mno-cygwin $(MINGW_INCLUDES) -mwindows | |
739457f4 | 65 | |
87c42361 | 66 | ZLIB := zlib/libzcygw.a |
fb087b80 | 67 | BZ2LIB := $(bupdir)/bz2lib/libbz2.a |
87c42361 | 68 | libmingw32.a := $(mingw_build)/libmingw32.a |
23c9e63c DD |
69 | libuser32 := $(w32api_lib)/libuser32.a |
70 | libkernel32 := $(w32api_lib)/libkernel32.a | |
cbfc4215 | 71 | libcomctl32 := $(w32api_lib)/libcomctl32.a |
739457f4 | 72 | |
fb087b80 | 73 | ALL_DEP_LDLIBS := $(ZLIB) $(BZ2LIB) $(w32api_lib)/libole32.a $(w32api_lib)/libwsock32.a \ |
739457f4 | 74 | $(w32api_lib)/libnetapi32.a $(w32api_lib)/libadvapi32.a \ |
cbfc4215 RC |
75 | $(w32api_lib)/libuuid.a $(libkernel32) $(libuser32) \ |
76 | $(libcomctl32) $(libmingw32) | |
739457f4 | 77 | |
23c9e63c | 78 | ALL_LDLIBS := ${patsubst $(mingw_build)/lib%.a,-l%,\ |
739457f4 | 79 | ${patsubst $(w32api_lib)/lib%.a,-l%,\ |
4306b490 CF |
80 | ${filter-out $(libmingw32),\ |
81 | ${filter-out $(libuser32),\ | |
82 | ${filter-out $(libkernel32), $(ALL_DEP_LDLIBS)}}}}} | |
739457f4 | 83 | |
23c9e63c | 84 | ALL_LDFLAGS := ${filter-out -I%, \ |
739457f4 | 85 | ${filter-out -W%, \ |
4306b490 | 86 | -B$(w32api_lib)/ -B${mingw_build}/ $(MINGW_CFLAGS) $(LDFLAGS)}} |
739457f4 | 87 | |
23c9e63c DD |
88 | PROGS := setup$(EXEEXT) |
89 | ||
90 | OBJS = \ | |
b24c88b3 RC |
91 | archive.o \ |
92 | archive_tar.o \ | |
93 | archive_tar_file.o \ | |
a99bdfd8 | 94 | autoload.o \ |
7b606ae5 | 95 | category.o \ |
23c9e63c | 96 | choose.o \ |
ab57ceaa | 97 | cistring.o \ |
b24c88b3 RC |
98 | compress.o \ |
99 | compress_bz.o \ | |
100 | compress_gz.o \ | |
23c9e63c | 101 | concat.o \ |
7939f6d1 | 102 | cygpackage.o \ |
904d24fe | 103 | desktop.o \ |
23c9e63c DD |
104 | dialog.o \ |
105 | diskfull.o \ | |
106 | download.o \ | |
107 | find.o \ | |
341988b9 | 108 | filemanip.o \ |
23c9e63c DD |
109 | fromcwd.o \ |
110 | geturl.o \ | |
4a83b7b0 | 111 | hash.o \ |
23c9e63c DD |
112 | ini.o \ |
113 | inilex.o \ | |
114 | iniparse.o \ | |
115 | install.o \ | |
b24c88b3 RC |
116 | io_stream.o \ |
117 | io_stream_cygfile.o \ | |
118 | io_stream_file.o \ | |
ca9506cc | 119 | io_stream_memory.o \ |
c92e1307 | 120 | localdir.o \ |
89b1a15b | 121 | log.o \ |
23c9e63c | 122 | main.o \ |
d52ed64b | 123 | mingw_getopt.o \ |
23c9e63c | 124 | mkdir.o \ |
904d24fe | 125 | mklink2.o \ |
23c9e63c DD |
126 | mount.o \ |
127 | msg.o \ | |
128 | net.o \ | |
129 | netio.o \ | |
130 | nio-ie5.o \ | |
131 | nio-file.o \ | |
4a83b7b0 DD |
132 | nio-ftp.o \ |
133 | nio-http.o \ | |
7939f6d1 RC |
134 | package_db.o \ |
135 | package_meta.o \ | |
bb849dbd | 136 | package_source.o \ |
fa0c0d10 | 137 | package_version.o \ |
97647369 RC |
138 | PickCategoryLine.o \ |
139 | PickLine.o \ | |
140 | PickPackageLine.o \ | |
141 | PickView.o \ | |
f57c332f | 142 | postinstall.o \ |
ab57ceaa RC |
143 | proppage.o \ |
144 | propsheet.o \ | |
23c9e63c | 145 | res.o \ |
bb849dbd | 146 | rfc1738.o \ |
23c9e63c | 147 | root.o \ |
8e9aa511 | 148 | script.o \ |
de6a1a64 | 149 | setup_version.o \ |
4a83b7b0 | 150 | simpsock.o \ |
23c9e63c DD |
151 | site.o \ |
152 | source.o \ | |
8507f105 | 153 | splash.o \ |
23c9e63c | 154 | state.o \ |
ab57ceaa | 155 | threebar.o \ |
8507f105 | 156 | version.o \ |
ad3c7385 | 157 | win32.o \ |
ab57ceaa | 158 | window.o \ |
5e0464a1 | 159 | $(MC_OBJS) \ |
23c9e63c | 160 | $E |
4b40edd0 | 161 | |
739457f4 CF |
162 | .SUFFIXES: |
163 | .NOEXPORT: | |
164 | ||
165 | .PHONY: all install clean realclean | |
166 | ||
167 | all: Makefile $(PROGS) | |
168 | ||
4b40edd0 | 169 | setup$(EXEEXT): $(OBJS) $(ALL_DEP_LDLIBS) |
739457f4 | 170 | ifdef VERBOSE |
25fb9139 | 171 | $(CXX) $(MINGW_CXXFLAGS) -o $@ ${filter-out $(ALL_DEP_LIBS),$^} |
739457f4 | 172 | else |
25fb9139 CF |
173 | @echo $(CXX) ... -o $@ $(OBJS) |
174 | @$(CXX) $(MINGW_CXXFLAGS) -o $@ ${filter-out $(ALL_DEP_LIBS),$^} $(ALL_LDFLAGS) $(ALL_LDLIBS) | |
739457f4 CF |
175 | endif |
176 | @chmod a-x $@ | |
177 | ||
d52ed64b RC |
178 | mingw_getopt.o: $(cygwin_source)/lib/getopt.c |
179 | ifdef VERBOSE | |
180 | ${filter-out -I$(newlib_source)/%,$(COMPILE_CC)} $c -o $(@D)/$(basename $@)$o $(MINGW_CFLAGS) $< | |
181 | else | |
182 | @echo $(CC) $c -o $(@D)/$(basename $@)$o $(MINGW_CFLAGS) ... $^;\ | |
9a60dafc | 183 | ${filter-out -I$(newlib_source)/%,$(COMPILE_CC)} $c -o $(@D)/$(basename $@)$o $(MINGW_CFLAGS) $< |
d52ed64b RC |
184 | endif |
185 | ||
739457f4 | 186 | clean: |
e9b1aaa7 | 187 | rm -f *.o $(PROGS) iniparse.c* iniparse.h* inilex.c* *.d |
87c42361 | 188 | $(MAKE) -C zlib clean |
739457f4 CF |
189 | |
190 | realclean: clean | |
8e9aa511 RC |
191 | rm -f Makefile |
192 | rm -f config.cache config.log config.status | |
739457f4 CF |
193 | |
194 | install: all | |
195 | $(SHELL) $(updir1)/mkinstalldirs $(bindir) $(etcdir) | |
196 | for i in $(PROGS) ; do \ | |
197 | n=`echo $$i | sed '$(program_transform_name)'`; \ | |
198 | $(INSTALL_PROGRAM) $$i $(bindir)/$$n; \ | |
199 | done | |
200 | ||
4306b490 | 201 | $(libmingw32): $(mingw_build)/Makefile |
739457f4 CF |
202 | @$(MAKE) -C $(@D) $(@F) |
203 | ||
87c42361 | 204 | $(ZLIB): zlib/Makefile |
23c9e63c | 205 | $(MAKE) -C $(@D) $(@F) CC="$(CC)" CFLAGS='$(MINGW_CFLAGS)' |
739457f4 | 206 | |
fb087b80 CF |
207 | $(BZ2LIB): $(bupdir)/bz2lib/Makefile |
208 | $(MAKE) -C $(@D) $(@F) CC="$(CC)" CFLAGS='$(MINGW_CFLAGS)' | |
209 | ||
de6a1a64 | 210 | setup_version.c : $(srcdir)/ChangeLog Makefile |
2e9cbac5 DD |
211 | V=`grep '^\$$Revision.*' $(srcdir)/ChangeLog \ |
212 | | sed -e 's/\$$Revision:* *//' \ | |
213 | -e 's/ *$$.*//'` ;\ | |
b24c88b3 | 214 | echo "const char *version = \"$$V\";" > version.tmp ;\ |
de6a1a64 | 215 | mv version.tmp setup_version.c |
8507f105 | 216 | |
739457f4 | 217 | %.o: %.rc |
ad09bcd9 | 218 | ifdef VERBOSE |
a6ba3670 | 219 | $(WINDRES) --include-dir $(srcdir) --include-dir $(w32api_source)/include -o $@ $< |
ad09bcd9 DD |
220 | else |
221 | @echo $(WINDRES) -o $@ $(<F) | |
a6ba3670 | 222 | @$(WINDRES) --include-dir $(srcdir) --include-dir $(w32api_source)/include -o $@ $< |
ad09bcd9 | 223 | endif |
99d1bf2d | 224 | |
739457f4 CF |
225 | %.o: %.c |
226 | ifdef VERBOSE | |
ad09bcd9 | 227 | $(CC) $(MINGW_CFLAGS) -c -o $@ $< |
739457f4 | 228 | else |
ad09bcd9 DD |
229 | @echo $(CC) -c $(CFLAGS) ... $(<F) |
230 | @$(CC) $(MINGW_CFLAGS) -c -o $@ $< | |
739457f4 | 231 | endif |
23c9e63c DD |
232 | |
233 | %.o: %.cc | |
234 | ifdef VERBOSE | |
72826a5b | 235 | $(CXX) $(MINGW_CXXFLAGS) -c -o $@ $< |
23c9e63c | 236 | else |
72826a5b CF |
237 | @echo $(CXX) -c $(CXXFLAGS) ... $(<F) |
238 | @$(CXX) $(MINGW_CXXFLAGS) -c -o $@ $< | |
23c9e63c DD |
239 | endif |
240 | ||
38f5563e DD |
241 | autoload.o: autoload.c |
242 | ifdef VERBOSE | |
b24c88b3 | 243 | $(CC) $(WARNONLY_CFLAGS) -c -o $@ $< -fno-inline-functions |
38f5563e | 244 | else |
b24c88b3 RC |
245 | @echo $(CC) -c $(WARNONLY_CFLAGS) ... $(<F) -fno-inline-functions |
246 | @$(CC) $(WARNONLY_CFLAGS) -c -o $@ $< -fno-inline-functions | |
38f5563e DD |
247 | endif |
248 | ||
341988b9 | 249 | inilex.o: inilex.cc |
b24c88b3 | 250 | ifdef VERBOSE |
341988b9 | 251 | $(CXX) @CXXFLAGS@ $(WARNONLY_CFLAGS) -fno-rtti -c -o $@ $< |
b24c88b3 | 252 | else |
341988b9 RC |
253 | @echo $(CXX) -c @CXXFLAGS@ $(WARNONLY_CFLAGS) ... $(<F) -fno-rtti |
254 | @$(CXX) @CXXFLAGS@ $(WARNONLY_CFLAGS) -c -o $@ $< -fno-rtti | |
b24c88b3 RC |
255 | endif |
256 | ||
257 | iniparse.o: iniparse.cc | |
258 | ifdef VERBOSE | |
341988b9 | 259 | $(CXX) @CXXFLAGS@ $(WARNONLY_CFLAGS) -fno-rtti -c -o $@ $< |
b24c88b3 | 260 | else |
341988b9 RC |
261 | @echo $(CXX) -c @CXXFLAGS@ $(WARNONLY_CFLAGS) ... $(<F) -fno-rtti |
262 | @$(CXX) @CXXFLAGS@ $(WARNONLY_CFLAGS) -c -o $@ $< -fno-rtti | |
b24c88b3 RC |
263 | endif |
264 | ||
0af2d779 CF |
265 | iniparse.cc iniparse.h : iniparse.y |
266 | bison -d -o iniparse.cc $(srcdir)/iniparse.y | |
cec57ee1 | 267 | @mv iniparse.cc.h iniparse.h 2>/dev/null || mv iniparse.hh iniparse.h |
23c9e63c | 268 | |
341988b9 | 269 | inilex.cc : inilex.l iniparse.h |
23c9e63c | 270 | flex -8 $(srcdir)/inilex.l |
341988b9 | 271 | mv lex.yy.c inilex.cc |
ad09bcd9 | 272 | |
30695b77 | 273 | D:=$(wildcard *.d) |
ad09bcd9 DD |
274 | ifneq ($D,) |
275 | include $D | |
276 | endif |