|  | # makefile for cygwin on x86 | 
|  | #   Builds both dll (with import lib) and static lib versions | 
|  | #   of the library, and builds two copies of pngtest: one | 
|  | #   statically linked and one dynamically linked. | 
|  | # | 
|  | # Copyright (C) 2002, 2006-2008 Soren Anderson, Charles Wilson, | 
|  | #    and Glenn Randers-Pehrson, based on makefile for linux-elf w/mmx by: | 
|  | # Copyright (C) 1998-2000 Greg Roelofs | 
|  | # Copyright (C) 1996, 1997 Andreas Dilger | 
|  | # | 
|  | # This code is released under the libpng license. | 
|  | # For conditions of distribution and use, see the disclaimer | 
|  | # and license in png.h | 
|  |  | 
|  | # This makefile intends to support building outside the src directory | 
|  | # if desired. When invoking it, specify an argument to SRCDIR on the | 
|  | # command line that points to the top of the directory where your source | 
|  | # is located. | 
|  |  | 
|  | ifdef SRCDIR | 
|  | VPATH = $(SRCDIR) | 
|  | else | 
|  | SRCDIR = . | 
|  | endif | 
|  |  | 
|  | # Override DESTDIR= on the make install command line to easily support | 
|  | # installing into a temporary location.  Example: | 
|  | # | 
|  | #    make install DESTDIR=/tmp/build/libpng | 
|  | # | 
|  | # If you're going to install into a temporary location | 
|  | # via DESTDIR, $(DESTDIR)$(prefix) must already exist before | 
|  | # you execute make install. | 
|  |  | 
|  | DESTDIR= | 
|  |  | 
|  | CC=gcc | 
|  | ifdef MINGW | 
|  | MINGW_CCFLAGS=-DPNG_CONFIGURE_LIBPNG -mno-cygwin -I/usr/include/mingw | 
|  | MINGW_LDFLAGS=-mno-cygwin -L/usr/lib/mingw | 
|  | endif | 
|  |  | 
|  | # Where "make install" puts libpng*.a, *png*.dll, png.h, and pngconf.h | 
|  | ifndef prefix | 
|  | prefix=/usr | 
|  | $(warning You haven't specified a 'prefix=' location. Defaulting to "/usr") | 
|  | endif | 
|  | exec_prefix=$(prefix) | 
|  |  | 
|  | # Where the zlib library and include files are located | 
|  | ZLIBLIB= /usr/lib | 
|  | ZLIBINC= | 
|  | #ZLIBLIB=../zlib | 
|  | #ZLIBINC=../zlib | 
|  |  | 
|  | ALIGN= | 
|  | # for i386: | 
|  | #ALIGN=-malign-loops=2 -malign-functions=2 | 
|  |  | 
|  | WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \ | 
|  | -Wmissing-declarations -Wtraditional -Wcast-align \ | 
|  | -Wstrict-prototypes -Wmissing-prototypes #-Wconversion | 
|  |  | 
|  | CFLAGS= $(strip $(MINGW_CCFLAGS) $(addprefix -I,$(ZLIBINC)) \ | 
|  | -W -Wall -O3 $(ALIGN) -funroll-loops \ | 
|  | -fomit-frame-pointer) # $(WARNMORE) -g -DPNG_DEBUG=5 | 
|  |  | 
|  | LIBNAME = libpng14 | 
|  | PNGMAJ = 14 | 
|  | CYGDLL = 14 | 
|  | PNGMIN = 1.4.0rc02 | 
|  | PNGVER = $(PNGMAJ).$(PNGMIN) | 
|  |  | 
|  | SHAREDLIB=cygpng$(CYGDLL).dll | 
|  | STATLIB=libpng.a | 
|  | IMPLIB=libpng.dll.a | 
|  | SHAREDDEF=libpng.def | 
|  | LIBS=$(SHAREDLIB) $(STATLIB) | 
|  | EXE=.exe | 
|  |  | 
|  | LDFLAGS=$(strip -L. $(MINGW_LDFLAGS) -lpng $(addprefix -L,$(ZLIBLIB)) -lz) | 
|  | LDSFLAGS=$(strip -shared -L.  $(MINGW_LDFLAGS) -Wl,--export-all) | 
|  | LDEXTRA=-Wl,--out-implib=$(IMPLIB) $(addprefix -L,$(ZLIBLIB)) -lz | 
|  |  | 
|  | MKDIR_P=/bin/mkdir -pv | 
|  | RANLIB=ranlib | 
|  | #RANLIB=echo | 
|  |  | 
|  | INCPATH=$(prefix)/include | 
|  | LIBPATH=$(exec_prefix)/lib | 
|  |  | 
|  | BINPATH=$(exec_prefix)/bin | 
|  | MANPATH=$(prefix)/man | 
|  | MAN3PATH=$(MANPATH)/man3 | 
|  | MAN5PATH=$(MANPATH)/man5 | 
|  |  | 
|  | # cosmetic: shortened strings: | 
|  | S =$(SRCDIR) | 
|  | D =$(DESTDIR) | 
|  | DB =$(D)$(BINPATH) | 
|  | DI =$(D)$(INCPATH) | 
|  | DL =$(D)$(LIBPATH) | 
|  |  | 
|  | OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \ | 
|  | pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \ | 
|  | pngwtran.o pngmem.o pngerror.o pngpread.o | 
|  |  | 
|  | OBJSDLL = $(OBJS:.o=.pic.o) | 
|  |  | 
|  | .SUFFIXES: .c .o .pic.o | 
|  |  | 
|  | %.o : %.c | 
|  | $(CC) -c $(CFLAGS) -o $@ $< | 
|  | %.pic.o : CFLAGS += -DPNG_BUILD_DLL | 
|  | %.pic.o : %.c | 
|  | $(CC) -c $(CFLAGS) -o $@ $< | 
|  |  | 
|  | all: all-static all-shared libpng.pc libpng-config libpng.pc libpng-config | 
|  |  | 
|  | # Make this to verify that "make [...] install" will do what you want. | 
|  | buildsetup-tell: | 
|  | @echo  VPATH is set to: \"$(VPATH)\" | 
|  | @echo  prefix is set to: \"$(prefix)\" | 
|  | @echo -e INCPATH,LIBPATH, etc. are set to:'\n' \ | 
|  | $(addprefix $(D),$(INCPATH)'\n' $(LIBPATH)'\n' $(BINPATH)'\n' \ | 
|  | $(MANPATH)'\n' $(MAN3PATH)'\n' $(MAN5PATH)'\n')'\n' | 
|  |  | 
|  | libpng.pc: scripts/libpng.pc.in | 
|  | @echo -e Making pkg-config file for this libpng installation..'\n' \ | 
|  | using PREFIX=\"$(prefix)\"'\n' | 
|  | cat scripts/libpng.pc.in | sed -e s!@prefix@!$(prefix)! \ | 
|  | -e s!@exec_prefix@!$(exec_prefix)! \ | 
|  | -e s!@libdir@!$(LIBPATH)! \ | 
|  | -e s!@includedir@!$(INCPATH)! \ | 
|  | -e s!-lpng14!-lpng14\ -lz! > libpng.pc | 
|  |  | 
|  | libpng-config: scripts/libpng-config-head.in scripts/libpng-config-body.in | 
|  | @echo -e Making $(LIBNAME) libpng-config file for this libpng \ | 
|  | installation..'\n' using PREFIX=\"$(prefix)\"'\n' | 
|  | ( cat $(S)/scripts/libpng-config-head.in; \ | 
|  | echo prefix=\"$(prefix)\"; \ | 
|  | echo I_opts=\"-I$(INCPATH)/$(LIBNAME)\"; \ | 
|  | echo L_opts=\"-L$(LIBPATH)\"; \ | 
|  | echo libs=\"-lpng$(CYGDLL) -lz\"; \ | 
|  | cat $(S)/scripts/libpng-config-body.in ) > libpng-config | 
|  | chmod +x libpng-config | 
|  |  | 
|  | static: all-static | 
|  | shared: all-shared | 
|  | all-static: $(STATLIB) pngtest-stat$(EXE) | 
|  | all-shared: $(SHAREDLIB) pngtest$(EXE) | 
|  |  | 
|  | $(STATLIB): $(OBJS) | 
|  | ar rc $@ $(OBJS) | 
|  | $(RANLIB) $@ | 
|  |  | 
|  | $(SHAREDDEF): scripts/pngwin.def | 
|  | cat $< | sed -e '1{G;s/^\(.*\)\(\n\)/EXPORTS/;};2,/^EXPORTS/d' | \ | 
|  | sed -e 's/\([^;]*\);/;/' > $@ | 
|  |  | 
|  | $(SHAREDLIB): $(OBJSDLL) $(SHAREDDEF) | 
|  | $(CC) $(LDSFLAGS) -o $@ $(OBJSDLL) -L. $(LDEXTRA) | 
|  |  | 
|  | pngtest$(EXE): pngtest.pic.o $(SHAREDLIB) | 
|  | $(CC) $(CFLAGS) $< $(LDFLAGS) -o $@ | 
|  |  | 
|  | pngtest-stat$(EXE): pngtest.o $(STATLIB) | 
|  | $(CC) -static $(CFLAGS) $< $(LDFLAGS) -o $@ | 
|  |  | 
|  | pngtest.pic.o: pngtest.c | 
|  | $(CC) $(CFLAGS) -c $< -o $@ | 
|  |  | 
|  | pngtest.o: pngtest.c png.h pngconf.h | 
|  | $(CC) $(CFLAGS) -c $< -o $@ | 
|  |  | 
|  | test: test-static test-shared | 
|  |  | 
|  | test-static: pngtest-stat$(EXE) | 
|  | ./pngtest-stat $(S)/pngtest.png | 
|  |  | 
|  | test-shared: pngtest$(EXE) | 
|  | ./pngtest $(S)/pngtest.png | 
|  |  | 
|  | install-static: $(STATLIB) install-headers install-man | 
|  | -@if [ ! -d $(DL) ]; then $(MKDIR_P) $(DL); fi | 
|  | install -m 644 $(STATLIB) $(DL)/$(LIBNAME).a | 
|  | -@rm -f $(DL)/$(STATLIB) | 
|  | (cd $(DL); ln -sf $(LIBNAME).a $(STATLIB)) | 
|  |  | 
|  | install-shared: $(SHAREDLIB) libpng.pc libpng-config install-headers install-man | 
|  | -@if [ ! -d $(DL) ]; then $(MKDIR_P) $(DL); fi | 
|  | -@if [ ! -d $(DB) ]; then $(MKDIR_P) $(DB); fi | 
|  | -@if [ ! -d $(DL)/pkgconfig ]; then $(MKDIR_P) $(DL)/pkgconfig; fi | 
|  | -@/bin/rm -f $(DL)/pkgconfig/$(LIBNAME).pc | 
|  | -@/bin/rm -f $(DL)/pkgconfig/libpng.pc | 
|  | install -m 644 $(IMPLIB) $(DL)/$(LIBNAME).dll.a | 
|  | -@rm -f $(DL)/$(IMPLIB) | 
|  | (cd $(DL); ln -sf $(LIBNAME).dll.a $(IMPLIB)) | 
|  | install -s -m 755 $(SHAREDLIB) $(DB) | 
|  | install -m 644 libpng.pc $(DL)/pkgconfig/$(LIBNAME).pc | 
|  | (cd $(DL)/pkgconfig; ln -sf $(LIBNAME).pc libpng.pc) | 
|  |  | 
|  | install-headers: | 
|  | -@if [ ! -d $(DI) ]; then $(MKDIR_P) $(DI); fi | 
|  | -@if [ ! -d $(DI)/$(LIBNAME) ]; then $(MKDIR_P) $(DI)/$(LIBNAME); fi | 
|  | -@rm -f $(DI)/png.h | 
|  | -@rm -f $(DI)/pngconf.h | 
|  | install -m 644 $(S)/png.h $(S)/pngconf.h $(DI)/$(LIBNAME) | 
|  | -@rm -f $(DI)/libpng | 
|  | (cd $(DI); ln -sf $(LIBNAME) libpng; ln -sf $(LIBNAME)/* .) | 
|  |  | 
|  | install-man: | 
|  | -@if [ ! -d $(D)$(MAN3PATH) ]; then $(MKDIR_P) $(D)$(MAN3PATH); fi | 
|  | -@if [ ! -d $(D)$(MAN5PATH) ]; then $(MKDIR_P) $(D)$(MAN5PATH); fi | 
|  | install -m 644 $(S)/libpngpf.3 $(S)/libpng.3 $(D)$(MAN3PATH) | 
|  | install -m 644 $(S)/png.5 $(D)$(MAN5PATH) | 
|  |  | 
|  | install-config: libpng-config | 
|  | -@if [ ! -d $(DB) ]; then $(MKDIR_P) $(DB); fi | 
|  | -@/bin/rm -f $(DB)/libpng-config | 
|  | -@/bin/rm -f $(DB)/$(LIBNAME)-config | 
|  | cp libpng-config $(DB)/$(LIBNAME)-config | 
|  | chmod 755 $(DB)/$(LIBNAME)-config | 
|  | (cd $(DB); ln -sf $(LIBNAME)-config libpng-config) | 
|  |  | 
|  | # Run this to verify that a future `configure' run will pick up the settings | 
|  | # you want. | 
|  | test-config-install: SHELL=/bin/bash | 
|  | test-config-install: $(DB)/libpng-config | 
|  | @echo -e Testing libpng-config functions...'\n' | 
|  | @ for TYRA in LDFLAGS CPPFLAGS CFLAGS LIBS VERSION; \ | 
|  | do \ | 
|  | printf "(%d)\t %10s =%s\n" $$(($$gytiu + 1)) $$TYRA \ | 
|  | "$$($(DB)/libpng-config `echo --$$TYRA |tr '[:upper:]' '[:lower:]'`)"; \ | 
|  | gytiu=$$(( $$gytiu + 1 )); \ | 
|  | done | 
|  |  | 
|  | install: install-static install-shared install-man install-config | 
|  |  | 
|  | # If you installed in $(DESTDIR), test-installed won't work until you | 
|  | # move the library to its final location.  Use test-dd to test it | 
|  | # before then. | 
|  |  | 
|  | test-dd: | 
|  | echo | 
|  | echo Testing installed dynamic shared library in $(DL). | 
|  | $(CC) -I$(DI) $(CFLAGS) \ | 
|  | `$(BINPATH)/libpng14-config --cflags` pngtest.c \ | 
|  | -L$(DL) -L$(ZLIBLIB) \ | 
|  | -o pngtestd `$(BINPATH)/libpng14-config --ldflags` | 
|  | ./pngtestd pngtest.png | 
|  |  | 
|  | test-installed: | 
|  | $(CC) $(CFLAGS) \ | 
|  | `$(BINPATH)/libpng14-config --cflags` pngtest.c \ | 
|  | -L$(ZLIBLIB) \ | 
|  | -o pngtesti$(EXE) `$(BINPATH)/libpng14-config --ldflags` | 
|  | ./pngtesti$(EXE) pngtest.png | 
|  |  | 
|  | clean: | 
|  | /bin/rm -f *.pic.o *.o $(STATLIB) $(IMPLIB) $(SHAREDLIB) \ | 
|  | pngtest-stat$(EXE) pngtest$(EXE) pngout.png $(SHAREDDEF) \ | 
|  | libpng-config libpng.pc pngtesti$(EXE) | 
|  |  | 
|  | DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO | 
|  | writelock: | 
|  | chmod a-w *.[ch35] $(DOCS) scripts/* | 
|  |  | 
|  | .PHONY: buildsetup-tell libpng.pc libpng-config test-config-install clean | 
|  |  | 
|  | # DO NOT DELETE THIS LINE -- make depend depends on it. | 
|  |  | 
|  | png.o png.pic.o:		png.h pngconf.h pngpriv.h png.c | 
|  | pngerror.o pngerror.pic.o:	png.h pngconf.h pngpriv.h pngerror.c | 
|  | pngrio.o pngrio.pic.o:		png.h pngconf.h pngpriv.h pngrio.c | 
|  | pngwio.o pngwio.pic.o:		png.h pngconf.h pngpriv.h pngwio.c | 
|  | pngmem.o pngmem.pic.o:		png.h pngconf.h pngpriv.h pngmem.c | 
|  | pngset.o pngset.pic.o:		png.h pngconf.h pngpriv.h pngset.c | 
|  | pngget.o pngget.pic.o:		png.h pngconf.h pngpriv.h pngget.c | 
|  | pngread.o pngread.pic.o:	png.h pngconf.h pngpriv.h pngread.c | 
|  | pngrtran.o pngrtran.pic.o:	png.h pngconf.h pngpriv.h pngrtran.c | 
|  | pngrutil.o pngrutil.pic.o:	png.h pngconf.h pngpriv.h pngrutil.c | 
|  | pngtrans.o pngtrans.pic.o:	png.h pngconf.h pngpriv.h pngtrans.c | 
|  | pngwrite.o pngwrite.pic.o:	png.h pngconf.h pngpriv.h pngwrite.c | 
|  | pngwtran.o pngwtran.pic.o:	png.h pngconf.h pngpriv.h pngwtran.c | 
|  | pngwutil.o pngwutil.pic.o:	png.h pngconf.h pngpriv.h pngwutil.c | 
|  | pngpread.o pngpread.pic.o:	png.h pngconf.h pngpriv.h pngpread.c | 
|  |  | 
|  | pngtest.o:			png.h pngconf.h pngtest.c | 
|  | pngtest-stat.o:			png.h pngconf.h pngtest.c | 
|  |  | 
|  |  | 
|  |  |