1 # Copyright (c) 2000, Red Hat, Inc.
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.
8 # A copy of the GNU General Public License can be found at
11 # Written by Christopher Faylor <cgf@redhat.com>
13 # Makefile for Cygwin installer
18 # Use the below when building production releases
27 exec_prefix := @
exec_prefix@
30 etcdir
:= $(exec_prefix)/etc
32 program_transform_name
:= @program_transform_name@
35 INSTALL_PROGRAM
:= @INSTALL_PROGRAM@
36 INSTALL_DATA
:= @INSTALL_DATA@
39 EXEEXT_FOR_BUILD
:= @EXEEXT_FOR_BUILD@
42 CC_FOR_TARGET
:= $(CC
)
45 CFLAGS
:= @CFLAGS@
$(MC_DEFS
) -Werror
-Winline
-Wall
-Wpointer-arith \
46 -Wcast-align
-Wwrite-strings
-Wstrict-prototypes
-Wmissing-prototypes \
47 -Wmissing-declarations
-Wcomments
48 CXXFLAGS
:= @CXXFLAGS@
$(CFLAGS
) -fno-rtti
54 include $(srcdir)/..
/Makefile.common
56 MINGW_INCLUDES
:= -I.
-I
$(srcdir) -I
$(mingw_source
)/include $(w32api_include
) -I
$(updir
)/bz2lib
58 MINGW_CXXFLAGS
:= -MMD
$(CXXFLAGS
) -mno-cygwin
$(MINGW_INCLUDES
) -mwindows
59 MINGW_CFLAGS
:= -MMD
$(CFLAGS
) -mno-cygwin
$(MINGW_INCLUDES
) -mwindows
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
66 ZLIB
:= zlib
/libzcygw.a
67 BZ2LIB
:= $(bupdir
)/bz2lib
/libbz2.a
68 libmingw32.a
:= $(mingw_build
)/libmingw32.a
69 libuser32
:= $(w32api_lib
)/libuser32.a
70 libkernel32
:= $(w32api_lib
)/libkernel32.a
71 libcomctl32
:= $(w32api_lib
)/libcomctl32.a
73 ALL_DEP_LDLIBS
:= $(ZLIB
) $(BZ2LIB
) $(w32api_lib
)/libole32.a
$(w32api_lib
)/libwsock32.a \
74 $(w32api_lib
)/libnetapi32.a
$(w32api_lib
)/libadvapi32.a \
75 $(w32api_lib
)/libuuid.a
$(libkernel32
) $(libuser32
) \
76 $(libcomctl32
) $(libmingw32
)
78 ALL_LDLIBS
:= ${patsubst $(mingw_build
)/lib
%.a
,-l
%,\
79 ${patsubst $(w32api_lib
)/lib
%.a
,-l
%,\
80 ${filter-out $(libmingw32
),\
81 ${filter-out $(libuser32
),\
82 ${filter-out $(libkernel32
), $(ALL_DEP_LDLIBS
)}}}}}
84 ALL_LDFLAGS
:= ${filter-out -I
%, \
86 -B
$(w32api_lib
)/ -B
${mingw_build}/ $(MINGW_CFLAGS
) $(LDFLAGS
)}}
88 PROGS
:= setup
$(EXEEXT
)
117 io_stream_cygfile.o \
165 .PHONY
: all install clean realclean
167 all: Makefile
$(PROGS
)
169 setup
$(EXEEXT
): $(OBJS
) $(ALL_DEP_LDLIBS
)
171 $(CXX
) $(MINGW_CXXFLAGS
) -o
$@
${filter-out $(ALL_DEP_LIBS
),$^
}
173 @echo
$(CXX
) ...
-o
$@
$(OBJS
)
174 @
$(CXX
) $(MINGW_CXXFLAGS
) -o
$@
${filter-out $(ALL_DEP_LIBS
),$^
} $(ALL_LDFLAGS
) $(ALL_LDLIBS
)
178 mingw_getopt.o
: $(cygwin_source
)/lib
/getopt.c
180 ${filter-out -I
$(newlib_source
)/%,$(COMPILE_CC
)} $c -o
$(@D
)/$(basename $@
)$o $(MINGW_CFLAGS
) $<
182 @echo
$(CC
) $c -o
$(@D
)/$(basename $@
)$o $(MINGW_CFLAGS
) ...
$^
;\
183 ${filter-out -I
$(newlib_source
)/%,$(COMPILE_CC
)} $c -o
$(@D
)/$(basename $@
)$o $(MINGW_CFLAGS
) $<
187 rm -f
*.o
$(PROGS
) iniparse.c
* iniparse.h
* inilex.c
* *.d
188 $(MAKE
) -C zlib
clean
192 rm -f config.cache config.log config.status
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; \
201 $(libmingw32
): $(mingw_build
)/Makefile
202 @
$(MAKE
) -C
$(@D
) $(@F
)
204 $(ZLIB
): zlib
/Makefile
205 $(MAKE
) -C
$(@D
) $(@F
) CC
="$(CC)" CFLAGS
='$(MINGW_CFLAGS)'
207 $(BZ2LIB
): $(bupdir
)/bz2lib
/Makefile
208 $(MAKE
) -C
$(@D
) $(@F
) CC
="$(CC)" CFLAGS
='$(MINGW_CFLAGS)'
210 setup_version.c
: $(srcdir)/ChangeLog Makefile
211 V
=`grep '^\$$Revision.*' $(srcdir)/ChangeLog \
212 | sed -e 's/\$$Revision:* *//' \
214 echo
"const char *version = \"$$V\";" > version.tmp
;\
215 mv version.tmp setup_version.c
219 $(WINDRES
) --include-dir
$(srcdir) --include-dir
$(w32api_source
)/include -o
$@
$<
221 @echo
$(WINDRES
) -o
$@
$(<F
)
222 @
$(WINDRES
) --include-dir
$(srcdir) --include-dir
$(w32api_source
)/include -o
$@
$<
227 $(CC
) $(MINGW_CFLAGS
) -c
-o
$@
$<
229 @echo
$(CC
) -c
$(CFLAGS
) ...
$(<F
)
230 @
$(CC
) $(MINGW_CFLAGS
) -c
-o
$@
$<
235 $(CXX
) $(MINGW_CXXFLAGS
) -c
-o
$@
$<
237 @echo
$(CXX
) -c
$(CXXFLAGS
) ...
$(<F
)
238 @
$(CXX
) $(MINGW_CXXFLAGS
) -c
-o
$@
$<
241 autoload.o
: autoload.c
243 $(CC
) $(WARNONLY_CFLAGS
) -c
-o
$@
$< -fno-inline-functions
245 @echo
$(CC
) -c
$(WARNONLY_CFLAGS
) ...
$(<F
) -fno-inline-functions
246 @
$(CC
) $(WARNONLY_CFLAGS
) -c
-o
$@
$< -fno-inline-functions
251 $(CXX
) @CXXFLAGS@
$(WARNONLY_CFLAGS
) -fno-rtti
-c
-o
$@
$<
253 @echo
$(CXX
) -c @CXXFLAGS@
$(WARNONLY_CFLAGS
) ...
$(<F
) -fno-rtti
254 @
$(CXX
) @CXXFLAGS@
$(WARNONLY_CFLAGS
) -c
-o
$@
$< -fno-rtti
257 iniparse.o
: iniparse.
cc
259 $(CXX
) @CXXFLAGS@
$(WARNONLY_CFLAGS
) -fno-rtti
-c
-o
$@
$<
261 @echo
$(CXX
) -c @CXXFLAGS@
$(WARNONLY_CFLAGS
) ...
$(<F
) -fno-rtti
262 @
$(CXX
) @CXXFLAGS@
$(WARNONLY_CFLAGS
) -c
-o
$@
$< -fno-rtti
265 iniparse.
cc iniparse.h
: iniparse.y
266 bison
-d
-o iniparse.
cc $(srcdir)/iniparse.y
267 @mv iniparse.
cc.h iniparse.h
2>/dev
/null || mv iniparse.hh iniparse.h
269 inilex.
cc : inilex.l iniparse.h
270 flex
-8 $(srcdir)/inilex.l
271 mv
lex.yy.c inilex.
cc