]>
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 | |
341988b9 | 41 | CXXFLAGS := @CXXFLAGS@ $(CFLAGS) -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 | |
cbfc4215 | 64 | libcomctl32 := $(w32api_lib)/libcomctl32.a |
739457f4 | 65 | |
fb087b80 | 66 | ALL_DEP_LDLIBS := $(ZLIB) $(BZ2LIB) $(w32api_lib)/libole32.a $(w32api_lib)/libwsock32.a \ |
739457f4 | 67 | $(w32api_lib)/libnetapi32.a $(w32api_lib)/libadvapi32.a \ |
cbfc4215 RC |
68 | $(w32api_lib)/libuuid.a $(libkernel32) $(libuser32) \ |
69 | $(libcomctl32) $(libmingw32) | |
739457f4 | 70 | |
23c9e63c | 71 | ALL_LDLIBS := ${patsubst $(mingw_build)/lib%.a,-l%,\ |
739457f4 | 72 | ${patsubst $(w32api_lib)/lib%.a,-l%,\ |
4306b490 CF |
73 | ${filter-out $(libmingw32),\ |
74 | ${filter-out $(libuser32),\ | |
75 | ${filter-out $(libkernel32), $(ALL_DEP_LDLIBS)}}}}} | |
739457f4 | 76 | |
23c9e63c | 77 | ALL_LDFLAGS := ${filter-out -I%, \ |
739457f4 | 78 | ${filter-out -W%, \ |
4306b490 | 79 | -B$(w32api_lib)/ -B${mingw_build}/ $(MINGW_CFLAGS) $(LDFLAGS)}} |
739457f4 | 80 | |
23c9e63c DD |
81 | PROGS := setup$(EXEEXT) |
82 | ||
83 | OBJS = \ | |
b24c88b3 RC |
84 | archive.o \ |
85 | archive_tar.o \ | |
86 | archive_tar_file.o \ | |
a99bdfd8 | 87 | autoload.o \ |
7b606ae5 | 88 | category.o \ |
23c9e63c | 89 | choose.o \ |
ab57ceaa | 90 | cistring.o \ |
b24c88b3 RC |
91 | compress.o \ |
92 | compress_bz.o \ | |
93 | compress_gz.o \ | |
23c9e63c | 94 | concat.o \ |
7939f6d1 | 95 | cygpackage.o \ |
904d24fe | 96 | desktop.o \ |
23c9e63c DD |
97 | dialog.o \ |
98 | diskfull.o \ | |
99 | download.o \ | |
100 | find.o \ | |
341988b9 | 101 | filemanip.o \ |
23c9e63c DD |
102 | fromcwd.o \ |
103 | geturl.o \ | |
4a83b7b0 | 104 | hash.o \ |
23c9e63c DD |
105 | ini.o \ |
106 | inilex.o \ | |
107 | iniparse.o \ | |
108 | install.o \ | |
b24c88b3 RC |
109 | io_stream.o \ |
110 | io_stream_cygfile.o \ | |
111 | io_stream_file.o \ | |
ca9506cc | 112 | io_stream_memory.o \ |
c92e1307 | 113 | localdir.o \ |
89b1a15b | 114 | log.o \ |
23c9e63c | 115 | main.o \ |
d52ed64b | 116 | mingw_getopt.o \ |
23c9e63c | 117 | mkdir.o \ |
904d24fe | 118 | mklink2.o \ |
23c9e63c DD |
119 | mount.o \ |
120 | msg.o \ | |
121 | net.o \ | |
122 | netio.o \ | |
123 | nio-ie5.o \ | |
124 | nio-file.o \ | |
4a83b7b0 DD |
125 | nio-ftp.o \ |
126 | nio-http.o \ | |
7939f6d1 RC |
127 | package_db.o \ |
128 | package_meta.o \ | |
bb849dbd | 129 | package_source.o \ |
fa0c0d10 | 130 | package_version.o \ |
f57c332f | 131 | postinstall.o \ |
ab57ceaa RC |
132 | proppage.o \ |
133 | propsheet.o \ | |
23c9e63c | 134 | res.o \ |
bb849dbd | 135 | rfc1738.o \ |
23c9e63c | 136 | root.o \ |
8e9aa511 | 137 | script.o \ |
de6a1a64 | 138 | setup_version.o \ |
4a83b7b0 | 139 | simpsock.o \ |
23c9e63c DD |
140 | site.o \ |
141 | source.o \ | |
8507f105 | 142 | splash.o \ |
23c9e63c | 143 | state.o \ |
ab57ceaa | 144 | threebar.o \ |
8507f105 | 145 | version.o \ |
ab57ceaa | 146 | window.o \ |
23c9e63c | 147 | $E |
4b40edd0 | 148 | |
739457f4 CF |
149 | .SUFFIXES: |
150 | .NOEXPORT: | |
151 | ||
152 | .PHONY: all install clean realclean | |
153 | ||
154 | all: Makefile $(PROGS) | |
155 | ||
4b40edd0 | 156 | setup$(EXEEXT): $(OBJS) $(ALL_DEP_LDLIBS) |
739457f4 | 157 | ifdef VERBOSE |
25fb9139 | 158 | $(CXX) $(MINGW_CXXFLAGS) -o $@ ${filter-out $(ALL_DEP_LIBS),$^} |
739457f4 | 159 | else |
25fb9139 CF |
160 | @echo $(CXX) ... -o $@ $(OBJS) |
161 | @$(CXX) $(MINGW_CXXFLAGS) -o $@ ${filter-out $(ALL_DEP_LIBS),$^} $(ALL_LDFLAGS) $(ALL_LDLIBS) | |
739457f4 CF |
162 | endif |
163 | @chmod a-x $@ | |
164 | ||
d52ed64b RC |
165 | mingw_getopt.o: $(cygwin_source)/lib/getopt.c |
166 | ifdef VERBOSE | |
167 | ${filter-out -I$(newlib_source)/%,$(COMPILE_CC)} $c -o $(@D)/$(basename $@)$o $(MINGW_CFLAGS) $< | |
168 | else | |
169 | @echo $(CC) $c -o $(@D)/$(basename $@)$o $(MINGW_CFLAGS) ... $^;\ | |
9a60dafc | 170 | ${filter-out -I$(newlib_source)/%,$(COMPILE_CC)} $c -o $(@D)/$(basename $@)$o $(MINGW_CFLAGS) $< |
d52ed64b RC |
171 | endif |
172 | ||
739457f4 | 173 | clean: |
e9b1aaa7 | 174 | rm -f *.o $(PROGS) iniparse.c* iniparse.h* inilex.c* *.d |
87c42361 | 175 | $(MAKE) -C zlib clean |
739457f4 CF |
176 | |
177 | realclean: clean | |
8e9aa511 RC |
178 | rm -f Makefile |
179 | rm -f config.cache config.log config.status | |
739457f4 CF |
180 | |
181 | install: all | |
182 | $(SHELL) $(updir1)/mkinstalldirs $(bindir) $(etcdir) | |
183 | for i in $(PROGS) ; do \ | |
184 | n=`echo $$i | sed '$(program_transform_name)'`; \ | |
185 | $(INSTALL_PROGRAM) $$i $(bindir)/$$n; \ | |
186 | done | |
187 | ||
4306b490 | 188 | $(libmingw32): $(mingw_build)/Makefile |
739457f4 CF |
189 | @$(MAKE) -C $(@D) $(@F) |
190 | ||
87c42361 | 191 | $(ZLIB): zlib/Makefile |
23c9e63c | 192 | $(MAKE) -C $(@D) $(@F) CC="$(CC)" CFLAGS='$(MINGW_CFLAGS)' |
739457f4 | 193 | |
fb087b80 CF |
194 | $(BZ2LIB): $(bupdir)/bz2lib/Makefile |
195 | $(MAKE) -C $(@D) $(@F) CC="$(CC)" CFLAGS='$(MINGW_CFLAGS)' | |
196 | ||
de6a1a64 | 197 | setup_version.c : $(srcdir)/ChangeLog Makefile |
2e9cbac5 DD |
198 | V=`grep '^\$$Revision.*' $(srcdir)/ChangeLog \ |
199 | | sed -e 's/\$$Revision:* *//' \ | |
200 | -e 's/ *$$.*//'` ;\ | |
b24c88b3 | 201 | echo "const char *version = \"$$V\";" > version.tmp ;\ |
de6a1a64 | 202 | mv version.tmp setup_version.c |
8507f105 | 203 | |
739457f4 | 204 | %.o: %.rc |
ad09bcd9 | 205 | ifdef VERBOSE |
a6ba3670 | 206 | $(WINDRES) --include-dir $(srcdir) --include-dir $(w32api_source)/include -o $@ $< |
ad09bcd9 DD |
207 | else |
208 | @echo $(WINDRES) -o $@ $(<F) | |
a6ba3670 | 209 | @$(WINDRES) --include-dir $(srcdir) --include-dir $(w32api_source)/include -o $@ $< |
ad09bcd9 | 210 | endif |
99d1bf2d | 211 | |
739457f4 CF |
212 | %.o: %.c |
213 | ifdef VERBOSE | |
ad09bcd9 | 214 | $(CC) $(MINGW_CFLAGS) -c -o $@ $< |
739457f4 | 215 | else |
ad09bcd9 DD |
216 | @echo $(CC) -c $(CFLAGS) ... $(<F) |
217 | @$(CC) $(MINGW_CFLAGS) -c -o $@ $< | |
739457f4 | 218 | endif |
23c9e63c DD |
219 | |
220 | %.o: %.cc | |
221 | ifdef VERBOSE | |
72826a5b | 222 | $(CXX) $(MINGW_CXXFLAGS) -c -o $@ $< |
23c9e63c | 223 | else |
72826a5b CF |
224 | @echo $(CXX) -c $(CXXFLAGS) ... $(<F) |
225 | @$(CXX) $(MINGW_CXXFLAGS) -c -o $@ $< | |
23c9e63c DD |
226 | endif |
227 | ||
38f5563e DD |
228 | autoload.o: autoload.c |
229 | ifdef VERBOSE | |
b24c88b3 | 230 | $(CC) $(WARNONLY_CFLAGS) -c -o $@ $< -fno-inline-functions |
38f5563e | 231 | else |
b24c88b3 RC |
232 | @echo $(CC) -c $(WARNONLY_CFLAGS) ... $(<F) -fno-inline-functions |
233 | @$(CC) $(WARNONLY_CFLAGS) -c -o $@ $< -fno-inline-functions | |
38f5563e DD |
234 | endif |
235 | ||
341988b9 | 236 | inilex.o: inilex.cc |
b24c88b3 | 237 | ifdef VERBOSE |
341988b9 | 238 | $(CXX) @CXXFLAGS@ $(WARNONLY_CFLAGS) -fno-rtti -c -o $@ $< |
b24c88b3 | 239 | else |
341988b9 RC |
240 | @echo $(CXX) -c @CXXFLAGS@ $(WARNONLY_CFLAGS) ... $(<F) -fno-rtti |
241 | @$(CXX) @CXXFLAGS@ $(WARNONLY_CFLAGS) -c -o $@ $< -fno-rtti | |
b24c88b3 RC |
242 | endif |
243 | ||
244 | iniparse.o: iniparse.cc | |
245 | ifdef VERBOSE | |
341988b9 | 246 | $(CXX) @CXXFLAGS@ $(WARNONLY_CFLAGS) -fno-rtti -c -o $@ $< |
b24c88b3 | 247 | else |
341988b9 RC |
248 | @echo $(CXX) -c @CXXFLAGS@ $(WARNONLY_CFLAGS) ... $(<F) -fno-rtti |
249 | @$(CXX) @CXXFLAGS@ $(WARNONLY_CFLAGS) -c -o $@ $< -fno-rtti | |
b24c88b3 RC |
250 | endif |
251 | ||
0af2d779 CF |
252 | iniparse.cc iniparse.h : iniparse.y |
253 | bison -d -o iniparse.cc $(srcdir)/iniparse.y | |
cec57ee1 | 254 | @mv iniparse.cc.h iniparse.h 2>/dev/null || mv iniparse.hh iniparse.h |
23c9e63c | 255 | |
341988b9 | 256 | inilex.cc : inilex.l iniparse.h |
23c9e63c | 257 | flex -8 $(srcdir)/inilex.l |
341988b9 | 258 | mv lex.yy.c inilex.cc |
ad09bcd9 | 259 | |
30695b77 | 260 | D:=$(wildcard *.d) |
ad09bcd9 DD |
261 | ifneq ($D,) |
262 | include $D | |
263 | endif |