# Copyright (c) 2000, Red Hat, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # A copy of the GNU General Public License can be found at # http://www.gnu.org/ # # Written by Ron Parker # # Makefile for Cygwin installer SHELL:=@SHELL@ srcdir:=@srcdir@ VPATH:=@srcdir@ prefix:=@prefix@ exec_prefix:=@exec_prefix@ bindir:=@bindir@ etcdir:=$(exec_prefix)/etc program_transform_name:=@program_transform_name@ INSTALL:=@INSTALL@ INSTALL_PROGRAM:=@INSTALL_PROGRAM@ INSTALL_DATA:=@INSTALL_DATA@ EXEEXT:=@EXEEXT@ EXEEXT_FOR_BUILD:=@EXEEXT_FOR_BUILD@ CC:=@CC@ CC_FOR_TARGET:=$(CC) CFLAGS:=@CFLAGS@ -nostdinc CXXFLAGS:=@CXXFLAGS@ -fno-exceptions -nostdinc++ -fno-rtti WINDRES:=@WINDRES@ OBJCOPY:=@OBJCOPY@ include $(srcdir)/../Makefile.common MINGW_INCLUDES:=-I$(mingw_source)/include -I$(w32api_include) MINGW_CXXFLAGS:=$(CXXFLAGS) -mno-cygwin $(MINGW_INCLUDES) MINGW_CFLAGS:=$(CFLAGS) -mno-cygwin $(MINGW_INCLUDES) ZLIB=zlib/libzcygw.a libmingw32.a:=$(mingw_build)/libmingw32.a libuser32:=$(w32api_lib)/libuser32.a libkernel32:=$(w32api_lib)/libkernel32.a ALL_DEP_LDLIBS:=$(ZLIB) $(w32api_lib)/libole32.a $(w32api_lib)/libwininet.a \ $(w32api_lib)/libnetapi32.a $(w32api_lib)/libadvapi32.a \ $(w32api_lib)/libuuid.a $(libkernel32) $(w32api_lib)/libuser32.a \ $(libmingw32) ALL_LDLIBS:=${patsubst $(mingw_build)/lib%.a,-l%,\ ${patsubst $(w32api_lib)/lib%.a,-l%,\ ${filter-out $(libmingw32),\ ${filter-out $(libuser32),\ ${filter-out $(libkernel32), $(ALL_DEP_LDLIBS)}}}}} ALL_LDFLAGS:=${filter-out -I%, \ ${filter-out -W%, \ -B$(w32api_lib)/ -B${mingw_build}/ $(MINGW_CFLAGS) $(LDFLAGS)}} PROGS:=setup$(EXEEXT) OBJS:=error.o memory.o setup.o strarry.o cinstall.o path.o xsystem.o BUNDLED_FILES:=cygwin1.dll.gz $(srcdir)/tar.exe.gz $(srcdir)/gzip.exe.gz \ mount.exe.gz cygpath.exe.gz umount.exe.gz .SUFFIXES: .NOEXPORT: .PHONY: all install clean realclean .PRECIOUS: $(utils_build)/cygpath.exe $(utils_build)/mount.exe $(utils_build)/umount.exe $(cygwin_build)/new-cygwin1.dll all: Makefile $(PROGS) setup$(EXEEXT): $(OBJS) $(ALL_DEP_LDLIBS) ifdef VERBOSE $(CC) -o $@ ${filter-out $(ALL_DEP_LIBS),$^} else @echo $(CC) -o $@ ${filter-out $(ALL_DEP_LIBS),$^} ${filter-out -B%, $(ALL_LDFLAGS) $(ALL_LDLIBS)};\ $(CC) -o $@ ${filter-out $(ALL_DEP_LIBS),$^} $(ALL_LDFLAGS) $(ALL_LDLIBS) endif @chmod a-x $@ mingw_getopt.o: $(cygwin_source)/getopt.c $(CC) -c -o $@ $(MINGW_CFLAGS) $^ clean: rm -f *.o *.rc $(PROGS) zlib/*.o zlib/*.a *.exe *.gz realclean: clean rm -f Makefile config.cache install: all $(SHELL) $(updir1)/mkinstalldirs $(bindir) $(etcdir) for i in $(PROGS) ; do \ n=`echo $$i | sed '$(program_transform_name)'`; \ $(INSTALL_PROGRAM) $$i $(bindir)/$$n; \ done $(libmingw32): $(mingw_build)/Makefile @$(MAKE) -C $(@D) $(@F) $(ZLIB): zlib/Makefile $(MAKE) -C $(@D) $(@F) CFLAGS='$(MINGW_CFLAGS)' %.exe.gz: %.exe gzip -9nf $? %.exe: $(utils_build)/%.exe $(OBJCOPY) --strip-unneeded $? $@ $(utils_build)/%.exe: $(utils_build)/Makefile @$(MAKE) -C $(utils_build) $(@F) %.dll.gz: new-%.dll gzip -9nfc $? > $@ %.dll: $(cygwin_build)/%.dll $(OBJCOPY) --strip-unneeded $? $@ $(cygwin_build)/%.dll: $(cygwin_build)/Makefile @$(MAKE) -C $(@D) $(@F) cinstall.rc: $(BUNDLED_FILES) for f in $^; do \ echo `basename $$f .gz` FILE DISCARDABLE '"'$$f'"'; \ done > $@ %.o: %.rc $(WINDRES) -o $@ $? %.o: %.c ifdef VERBOSE $(CC) $(MINGW_CFLAGS) -c -o $@ $? else @echo $(CC) -c -o $@ $? ${filter-out -B%, $(MINGW_CFLAGS)};\ $(CC) $(MINGW_CFLAGS) -c -o $@ $? endif