# makefile for libpng using gcc (generic, static library) # Copyright (C) 2002, 2006 Glenn Randers-Pehrson # Copyright (C) 2000 Cosmin Truta # Copyright (C) 2000 Marc O. Gloor (AIX support added, from makefile.gcc) # Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc. # For conditions of distribution and use, see copyright notice in png.h # Location of the zlib library and include files ZLIBINC = ../zlib ZLIBLIB = ../zlib # Compiler, linker, lib and other tools CC = gcc LD = $(CC) AR_RC = ar rcs MKDIR_P = mkdir -p RANLIB = ranlib RM_F = rm -f LN_SF = ln -f -s LIBNAME=libpng12 PNGMAJ = 0 PNGMIN = 1.2.16 PNGVER = $(PNGMAJ).$(PNGMIN) prefix=/usr/local INCPATH=$(prefix)/include LIBPATH=$(prefix)/lib # 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= DI=$(DESTDIR)$(INCPATH) DL=$(DESTDIR)$(LIBPATH) CDEBUG = -g -DPNG_DEBUG=5 LDDEBUG = CRELEASE = -O2 LDRELEASE = -s WARNMORE=-Wall CFLAGS = -I$(ZLIBINC) $(WARNMORE) $(CRELEASE) LDFLAGS = -L. -L$(ZLIBLIB) -lpng12 -lz -lm $(LDRELEASE) # File extensions O=.o A=.a E= # Variables OBJS = png$(O) pngerror$(O) pngget$(O) pngmem$(O) pngpread$(O) \ pngread$(O) pngrio$(O) pngrtran$(O) pngrutil$(O) pngset$(O) \ pngtrans$(O) pngwio$(O) pngwrite$(O) pngwtran$(O) pngwutil$(O) # Targets all: $(LIBNAME)$(A) pngtest$(E) $(LIBNAME)$(A): $(OBJS) $(AR_RC) $@ $(OBJS) $(RANLIB) $@ test: pngtest$(E) ./pngtest$(E) pngtest$(E): pngtest$(O) $(LIBNAME)$(A) $(LD) -o $@ pngtest$(O) $(LDFLAGS) install: $(LIBNAME)$(A) -@if [ ! -d $(DI) ]; then $(MKDIR_P) $(DI); fi -@if [ ! -d $(DI)/$(LIBNAME) ]; then $(MKDIR_P) $(DI)/$(LIBNAME); fi -@if [ ! -d $(DL) ]; then $(MKDIR_P) $(DL); fi -@$(RM_F) $(DI)/$(LIBNAME)/png.h -@$(RM_F) $(DI)/$(LIBNAME)/pngconf.h -@$(RM_F) $(DI)/png.h -@$(RM_F) $(DI)/pngconf.h cp png.h pngconf.h $(DI)/$(LIBNAME) chmod 644 $(DI)/$(LIBNAME)/png.h \ $(DI)/$(LIBNAME)/pngconf.h -@$(RM_F) -r $(DI)/libpng (cd $(DI); $(LN_SF) $(LIBNAME) libpng; $(LN_SF) $(LIBNAME)/* .) -@$(RM_F) $(DL)/$(LIBNAME)$(A) -@$(RM_F) $(DL)/libpng$(A) cp $(LIBNAME)$(A) $(DL)/$(LIBNAME)$(A) chmod 644 $(DL)/$(LIBNAME)$(A) (cd $(DL); $(LN_SF) $(LIBNAME)$(A) libpng$(A)) (cd $(DI); $(LN_SF) libpng/* .;) clean: $(RM_F) *.o $(LIBNAME)$(A) pngtest pngout.png png$(O): png.h pngconf.h pngerror$(O): png.h pngconf.h pngget$(O): png.h pngconf.h pngmem$(O): png.h pngconf.h pngpread$(O): png.h pngconf.h pngread$(O): png.h pngconf.h pngrio$(O): png.h pngconf.h pngrtran$(O): png.h pngconf.h pngrutil$(O): png.h pngconf.h pngset$(O): png.h pngconf.h pngtest$(O): png.h pngconf.h pngtrans$(O): png.h pngconf.h pngwio$(O): png.h pngconf.h pngwrite$(O): png.h pngconf.h pngwtran$(O): png.h pngconf.h pngwutil$(O): png.h pngconf.h