1 # Makefile for creating Windows CE release archives, with the 2 # mingw32ce compiler. 3 4 # Last updated: 22-Jul-2008 5 6 # Copyright (C) 2008 Vincent Torri 7 8 # This code is released under the libpng license. 9 # For conditions of distribution and use, see the disclaimer 10 # and license in png.h 11 12 # To get some help, type 13 # 14 # make help 15 # 16 # To create the archives 17 # 18 # make 19 # 20 # To remove everything, type: 21 # 22 # make clean 23 24 VERMAJ = 1 25 VERMIN = 6 26 VERMIC = 22 27 VER = $(VERMAJ).$(VERMIN).$(VERMIC) 28 NAME = libpng 29 PACKAGE = $(NAME)-$(VER) 30 31 BIN = libpng16-0.dll 32 LIB = libpng16.a libpng16.dll.a libpng.a libpng.dll.a 33 INCLUDE = png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 34 PC = libpng16.pc libpng.pc 35 36 MANIFESTVERBIN = "Libpng-$(VER): Binary files" 37 MANIFESTVERDEV = "Libpng-$(VER): Developer files" 38 MANIFESTVERDESC = "Libpng: the official PNG reference library" 39 40 all: $(NAME) 41 42 $(NAME): remove-old copy-src compilation copy manifest archive 43 @echo " * Removal of the directories" 44 @rm -rf $(PACKAGE)/ $(PACKAGE)-bin/ $(PACKAGE)-dev/ 45 46 remove-old: 47 @echo " * Removal of the old files" 48 @rm -rf $(PACKAGE)-bin* 49 @rm -rf $(PACKAGE)-dev* 50 51 copy-src: 52 @echo " * Copy of source files" 53 @cp -R ../src/$(PACKAGE) . 54 @echo " * Creation of directories and files" 55 @mkdir -p $(PACKAGE)-bin/bin 56 @mkdir -p $(PACKAGE)-bin/manifest 57 @mkdir -p $(PACKAGE)-dev/lib/pkgconfig 58 @mkdir -p $(PACKAGE)-dev/include/$(NAME)$(VERMAJ)$(VERMIN) 59 @mkdir -p $(PACKAGE)-dev/manifest 60 @touch $(PACKAGE)-bin/manifest/$(PACKAGE)-bin.mft 61 @touch $(PACKAGE)-bin/manifest/$(PACKAGE)-bin.ver 62 @touch $(PACKAGE)-dev/manifest/$(PACKAGE)-dev.mft 63 @touch $(PACKAGE)-dev/manifest/$(PACKAGE)-dev.ver 64 65 compilation: 66 @echo " * Compilation of $(PACKAGE)" 67 cd $(PACKAGE) && CPPFLAGS="$(CPPFLAGS) -DPNG_CONSOLE_IO_SUPPORTED -D_WIN32_WCE=0x0420" \ 68 CFLAGS="$(CFLAGS) -mms-bitfields -O3 -pipe -fomit-frame-pointer" \ 69 LDFLAGS="$(LDFLAGS) -Wl,--enable-auto-import -Wl,-s" \ 70 ./configure --prefix=/opt/wince --host=arm-mingw32ce && make 71 72 copy: 73 @echo " * Copy of binary and development files" 74 @for i in $(BIN); do \ 75 cp $(PACKAGE)/.libs/$$i $(PACKAGE)-bin/bin; \ 76 done 77 @for i in $(LIB); do \ 78 cp $(PACKAGE)/.libs/$$i $(PACKAGE)-dev/lib; \ 79 done 80 @for i in $(INCLUDE); do \ 81 cp $(PACKAGE)/$$i $(PACKAGE)-dev/include/$(NAME)$(VERMAJ)$(VERMIN); \ 82 done 83 @for i in $(PC); do \ 84 cp $(PACKAGE)/$$i $(PACKAGE)-dev/lib/pkgconfig; \ 85 done 86 87 manifest: 88 @echo " * Creation of the manifest" 89 @cd $(PACKAGE)-bin && find * >> manifest/$(PACKAGE)-bin.mft 90 @cd $(PACKAGE)-bin && \ 91 echo $(MANIFESTVERBIN) >> manifest/$(PACKAGE)-bin.ver && \ 92 echo $(MANIFESTVERDESC) >> manifest/$(PACKAGE)-bin.ver 93 @cd $(PACKAGE)-dev && find * >> manifest/$(PACKAGE)-dev.mft 94 @cd $(PACKAGE)-dev && \ 95 echo $(MANIFESTVERDEV) >> manifest/$(PACKAGE)-dev.ver && \ 96 echo $(MANIFESTVERDESC) >> manifest/$(PACKAGE)-dev.ver 97 98 archive: 99 @echo " * Creation of the archives" 100 @tar cf $(PACKAGE)-bin.tar $(PACKAGE)-bin 101 @bzip2 -9 $(PACKAGE)-bin.tar 102 @tar cf $(PACKAGE)-dev.tar $(PACKAGE)-dev 103 @bzip2 -9 $(PACKAGE)-dev.tar 104 105 clean: 106 @echo " * Cleaning" 107 @rm -rf $(PACKAGE)* 108 109 help: 110 @echo 111 @echo "To create the archives, type:" 112 @echo " make" 113 @echo 114 @echo "To remove everything, type:" 115 @echo " make clean" 116 @echo 117