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
20 exec_prefix := @
exec_prefix@
23 etcdir
:= $(exec_prefix)/etc
25 program_transform_name
:= @program_transform_name@
28 INSTALL_PROGRAM
:= @INSTALL_PROGRAM@
29 INSTALL_DATA
:= @INSTALL_DATA@
32 EXEEXT_FOR_BUILD
:= @EXEEXT_FOR_BUILD@
35 CC_FOR_TARGET
:= $(CC
)
38 CFLAGS
:= @CFLAGS@
-Werror
-Winline
-Wall
-Wpointer-arith
-Wcast-align\
39 -Wwrite-strings
-Wstrict-prototypes
-Wmissing-prototypes \
40 -Wmissing-declarations
-Wcomments
41 CXXFLAGS
:= @CXXFLAGS@
$(CFLAGS
) -fno-rtti
47 include $(srcdir)/..
/Makefile.common
49 MINGW_INCLUDES
:= -I.
-I
$(srcdir) -I
$(mingw_source
)/include $(w32api_include
) -I
$(updir
)/bz2lib
51 MINGW_CXXFLAGS
:= -MMD
$(CXXFLAGS
) -mno-cygwin
$(MINGW_INCLUDES
) -mwindows
52 MINGW_CFLAGS
:= -MMD
$(CFLAGS
) -mno-cygwin
$(MINGW_INCLUDES
) -mwindows
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
59 ZLIB
:= zlib
/libzcygw.a
60 BZ2LIB
:= $(bupdir
)/bz2lib
/libbz2.a
61 libmingw32.a
:= $(mingw_build
)/libmingw32.a
62 libuser32
:= $(w32api_lib
)/libuser32.a
63 libkernel32
:= $(w32api_lib
)/libkernel32.a
64 libcomctl32
:= $(w32api_lib
)/libcomctl32.a
66 ALL_DEP_LDLIBS
:= $(ZLIB
) $(BZ2LIB
) $(w32api_lib
)/libole32.a
$(w32api_lib
)/libwsock32.a \
67 $(w32api_lib
)/libnetapi32.a
$(w32api_lib
)/libadvapi32.a \
68 $(w32api_lib
)/libuuid.a
$(libkernel32
) $(libuser32
) \
69 $(libcomctl32
) $(libmingw32
)
71 ALL_LDLIBS
:= ${patsubst $(mingw_build
)/lib
%.a
,-l
%,\
72 ${patsubst $(w32api_lib
)/lib
%.a
,-l
%,\
73 ${filter-out $(libmingw32
),\
74 ${filter-out $(libuser32
),\
75 ${filter-out $(libkernel32
), $(ALL_DEP_LDLIBS
)}}}}}
77 ALL_LDFLAGS
:= ${filter-out -I
%, \
79 -B
$(w32api_lib
)/ -B
${mingw_build}/ $(MINGW_CFLAGS
) $(LDFLAGS
)}}
81 PROGS
:= setup
$(EXEEXT
)
110 io_stream_cygfile.o \
152 .PHONY
: all install clean realclean
154 all: Makefile
$(PROGS
)
156 setup
$(EXEEXT
): $(OBJS
) $(ALL_DEP_LDLIBS
)
158 $(CXX
) $(MINGW_CXXFLAGS
) -o
$@
${filter-out $(ALL_DEP_LIBS
),$^
}
160 @echo
$(CXX
) ...
-o
$@
$(OBJS
)
161 @
$(CXX
) $(MINGW_CXXFLAGS
) -o
$@
${filter-out $(ALL_DEP_LIBS
),$^
} $(ALL_LDFLAGS
) $(ALL_LDLIBS
)
165 mingw_getopt.o
: $(cygwin_source
)/lib
/getopt.c
167 ${filter-out -I
$(newlib_source
)/%,$(COMPILE_CC
)} $c -o
$(@D
)/$(basename $@
)$o $(MINGW_CFLAGS
) $<
169 @echo
$(CC
) $c -o
$(@D
)/$(basename $@
)$o $(MINGW_CFLAGS
) ...
$^
;\
170 ${filter-out -I
$(newlib_source
)/%,$(COMPILE_CC
)} $c -o
$(@D
)/$(basename $@
)$o $(MINGW_CFLAGS
) $<
174 rm -f
*.o
$(PROGS
) iniparse.c
* iniparse.h
* inilex.c
* *.d
175 $(MAKE
) -C zlib
clean
179 rm -f config.cache config.log config.status
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; \
188 $(libmingw32
): $(mingw_build
)/Makefile
189 @
$(MAKE
) -C
$(@D
) $(@F
)
191 $(ZLIB
): zlib
/Makefile
192 $(MAKE
) -C
$(@D
) $(@F
) CC
="$(CC)" CFLAGS
='$(MINGW_CFLAGS)'
194 $(BZ2LIB
): $(bupdir
)/bz2lib
/Makefile
195 $(MAKE
) -C
$(@D
) $(@F
) CC
="$(CC)" CFLAGS
='$(MINGW_CFLAGS)'
197 setup_version.c
: $(srcdir)/ChangeLog Makefile
198 V
=`grep '^\$$Revision.*' $(srcdir)/ChangeLog \
199 | sed -e 's/\$$Revision:* *//' \
201 echo
"const char *version = \"$$V\";" > version.tmp
;\
202 mv version.tmp setup_version.c
206 $(WINDRES
) --include-dir
$(srcdir) --include-dir
$(w32api_source
)/include -o
$@
$<
208 @echo
$(WINDRES
) -o
$@
$(<F
)
209 @
$(WINDRES
) --include-dir
$(srcdir) --include-dir
$(w32api_source
)/include -o
$@
$<
214 $(CC
) $(MINGW_CFLAGS
) -c
-o
$@
$<
216 @echo
$(CC
) -c
$(CFLAGS
) ...
$(<F
)
217 @
$(CC
) $(MINGW_CFLAGS
) -c
-o
$@
$<
222 $(CXX
) $(MINGW_CXXFLAGS
) -c
-o
$@
$<
224 @echo
$(CXX
) -c
$(CXXFLAGS
) ...
$(<F
)
225 @
$(CXX
) $(MINGW_CXXFLAGS
) -c
-o
$@
$<
228 autoload.o
: autoload.c
230 $(CC
) $(WARNONLY_CFLAGS
) -c
-o
$@
$< -fno-inline-functions
232 @echo
$(CC
) -c
$(WARNONLY_CFLAGS
) ...
$(<F
) -fno-inline-functions
233 @
$(CC
) $(WARNONLY_CFLAGS
) -c
-o
$@
$< -fno-inline-functions
238 $(CXX
) @CXXFLAGS@
$(WARNONLY_CFLAGS
) -fno-rtti
-c
-o
$@
$<
240 @echo
$(CXX
) -c @CXXFLAGS@
$(WARNONLY_CFLAGS
) ...
$(<F
) -fno-rtti
241 @
$(CXX
) @CXXFLAGS@
$(WARNONLY_CFLAGS
) -c
-o
$@
$< -fno-rtti
244 iniparse.o
: iniparse.
cc
246 $(CXX
) @CXXFLAGS@
$(WARNONLY_CFLAGS
) -fno-rtti
-c
-o
$@
$<
248 @echo
$(CXX
) -c @CXXFLAGS@
$(WARNONLY_CFLAGS
) ...
$(<F
) -fno-rtti
249 @
$(CXX
) @CXXFLAGS@
$(WARNONLY_CFLAGS
) -c
-o
$@
$< -fno-rtti
252 iniparse.
cc iniparse.h
: iniparse.y
253 bison
-d
-o iniparse.
cc $(srcdir)/iniparse.y
254 @mv iniparse.
cc.h iniparse.h
2>/dev
/null || mv iniparse.hh iniparse.h
256 inilex.
cc : inilex.l iniparse.h
257 flex
-8 $(srcdir)/inilex.l
258 mv
lex.yy.c inilex.
cc