# Makefile for creating Windows CE release archives, with the # mingw32ce compiler. # Last updated: 22-Jul-2008 # Copyright (C) 2008 Vincent Torri # This code is released under the libpng license. # For conditions of distribution and use, see the disclaimer # and license in png.h # To get some help, type # # make help # # To create the archives # # make # # To remove everything, type: # # make clean VERMAJ = 1 VERMIN = 6 VERMIC = 33 VER = $(VERMAJ).$(VERMIN).$(VERMIC) NAME = libpng PACKAGE = $(NAME)-$(VER) BIN = libpng16-0.dll LIB = libpng16.a libpng16.dll.a libpng.a libpng.dll.a INCLUDE = png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h PC = libpng16.pc libpng.pc MANIFESTVERBIN = "Libpng-$(VER): Binary files" MANIFESTVERDEV = "Libpng-$(VER): Developer files" MANIFESTVERDESC = "Libpng: the official PNG reference library" all: $(NAME) $(NAME): remove-old copy-src compilation copy manifest archive @echo " * Removal of the directories" @rm -rf $(PACKAGE)/ $(PACKAGE)-bin/ $(PACKAGE)-dev/ remove-old: @echo " * Removal of the old files" @rm -rf $(PACKAGE)-bin* @rm -rf $(PACKAGE)-dev* copy-src: @echo " * Copy of source files" @cp -R ../src/$(PACKAGE) . @echo " * Creation of directories and files" @mkdir -p $(PACKAGE)-bin/bin @mkdir -p $(PACKAGE)-bin/manifest @mkdir -p $(PACKAGE)-dev/lib/pkgconfig @mkdir -p $(PACKAGE)-dev/include/$(NAME)$(VERMAJ)$(VERMIN) @mkdir -p $(PACKAGE)-dev/manifest @touch $(PACKAGE)-bin/manifest/$(PACKAGE)-bin.mft @touch $(PACKAGE)-bin/manifest/$(PACKAGE)-bin.ver @touch $(PACKAGE)-dev/manifest/$(PACKAGE)-dev.mft @touch $(PACKAGE)-dev/manifest/$(PACKAGE)-dev.ver compilation: @echo " * Compilation of $(PACKAGE)" cd $(PACKAGE) && CPPFLAGS="$(CPPFLAGS) -DPNG_CONSOLE_IO_SUPPORTED -D_WIN32_WCE=0x0420" \ CFLAGS="$(CFLAGS) -mms-bitfields -O3 -pipe -fomit-frame-pointer" \ LDFLAGS="$(LDFLAGS) -Wl,--enable-auto-import -Wl,-s" \ ./configure --prefix=/opt/wince --host=arm-mingw32ce && make copy: @echo " * Copy of binary and development files" @for i in $(BIN); do \ cp $(PACKAGE)/.libs/$$i $(PACKAGE)-bin/bin; \ done @for i in $(LIB); do \ cp $(PACKAGE)/.libs/$$i $(PACKAGE)-dev/lib; \ done @for i in $(INCLUDE); do \ cp $(PACKAGE)/$$i $(PACKAGE)-dev/include/$(NAME)$(VERMAJ)$(VERMIN); \ done @for i in $(PC); do \ cp $(PACKAGE)/$$i $(PACKAGE)-dev/lib/pkgconfig; \ done manifest: @echo " * Creation of the manifest" @cd $(PACKAGE)-bin && find * >> manifest/$(PACKAGE)-bin.mft @cd $(PACKAGE)-bin && \ echo $(MANIFESTVERBIN) >> manifest/$(PACKAGE)-bin.ver && \ echo $(MANIFESTVERDESC) >> manifest/$(PACKAGE)-bin.ver @cd $(PACKAGE)-dev && find * >> manifest/$(PACKAGE)-dev.mft @cd $(PACKAGE)-dev && \ echo $(MANIFESTVERDEV) >> manifest/$(PACKAGE)-dev.ver && \ echo $(MANIFESTVERDESC) >> manifest/$(PACKAGE)-dev.ver archive: @echo " * Creation of the archives" @tar cf $(PACKAGE)-bin.tar $(PACKAGE)-bin @bzip2 -9 $(PACKAGE)-bin.tar @tar cf $(PACKAGE)-dev.tar $(PACKAGE)-dev @bzip2 -9 $(PACKAGE)-dev.tar clean: @echo " * Cleaning" @rm -rf $(PACKAGE)* help: @echo @echo "To create the archives, type:" @echo " make" @echo @echo "To remove everything, type:" @echo " make clean" @echo