Home | History | Annotate | Download | only in scripts
      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 = 2
     26 VERMIC = 44
     27 VER = $(VERMAJ).$(VERMIN).$(VERMIC)
     28 NAME = libpng
     29 PACKAGE = $(NAME)-$(VER)
     30 
     31 BIN = libpng12-0.dll libpng-3.dll
     32 LIB = libpng12.a libpng12.dll.a libpng.a libpng.dll.a scripts/png32ce.def
     33 INCLUDE = png.h pngconf.h
     34 PC = libpng12.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_BUILD_DLL -DPNG_CONSOLE_IO_SUPPORTED -DPNG_NO_MMX_CODE -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
     68 
     69 copy:
     70 	@echo " * Copy of binary and development files"
     71 	@for i in $(BIN); do \
     72 	  cp $(PACKAGE)/.libs/$$i $(PACKAGE)-bin/bin; \
     73 	done
     74 	@for i in $(LIB); do \
     75 	  cp $(PACKAGE)/.libs/$$i $(PACKAGE)-dev/lib; \
     76 	done
     77 	@for i in $(INCLUDE); do \
     78 	  cp $(PACKAGE)/$$i $(PACKAGE)-dev/include/$(NAME)$(VERMAJ)$(VERMIN); \
     79 	done
     80 	@for i in $(PC); do \
     81 	  cp $(PACKAGE)/$$i $(PACKAGE)-dev/lib/pkgconfig; \
     82 	done
     83 
     84 manifest:
     85 	@echo " * Creation of the manifest"
     86 	@cd $(PACKAGE)-bin && find * >> manifest/$(PACKAGE)-bin.mft
     87 	@cd $(PACKAGE)-bin && \
     88 	  echo $(MANIFESTVERBIN) >> manifest/$(PACKAGE)-bin.ver && \
     89 	  echo $(MANIFESTVERDESC) >> manifest/$(PACKAGE)-bin.ver
     90 	@cd $(PACKAGE)-dev && find * >> manifest/$(PACKAGE)-dev.mft
     91 	@cd $(PACKAGE)-dev && \
     92 	  echo $(MANIFESTVERDEV) >> manifest/$(PACKAGE)-dev.ver && \
     93 	  echo $(MANIFESTVERDESC) >> manifest/$(PACKAGE)-dev.ver
     94 
     95 archive:
     96 	@echo " * Creation of the archives"
     97 	@tar cf $(PACKAGE)-bin.tar $(PACKAGE)-bin
     98 	@bzip2 -9 $(PACKAGE)-bin.tar
     99 	@tar cf $(PACKAGE)-dev.tar $(PACKAGE)-dev
    100 	@bzip2 -9 $(PACKAGE)-dev.tar
    101 
    102 clean:
    103 	@echo " * Cleaning"
    104 	@rm -rf $(PACKAGE)*
    105 
    106 help:
    107 	@echo
    108 	@echo "To create the archives, type:"
    109 	@echo " make"
    110 	@echo
    111 	@echo "To remove everything, type:"
    112 	@echo " make clean"
    113 	@echo
    114