1# makefile for libpng 2# Copyright (C) 2020-2024 Cosmin Truta 3# Copyright (C) 2002, 2006, 2014 Glenn Randers-Pehrson 4# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc. 5# 6# This code is released under the libpng license. 7# For conditions of distribution and use, see the disclaimer 8# and license in png.h 9 10# Where the zlib library and include files are located 11#ZLIBLIB=/usr/local/lib 12#ZLIBINC=/usr/local/include 13ZLIBLIB=../zlib 14ZLIBINC=../zlib 15 16CC = cc 17CPP = $(CC) -E 18LD = $(CC) 19AR = ar 20RANLIB = ranlib 21MV_F = mv -f 22RM_F = rm -f 23AWK = awk 24 25NOHWOPT = -DPNG_ARM_NEON_OPT=0 -DPNG_MIPS_MSA_OPT=0 \ 26 -DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0 27DFNFLAGS = # DFNFLAGS contains -D options to use in the libpng build 28DFA_EXTRA = # extra files that can be used to control configuration 29CPPFLAGS = -I$(ZLIBINC) $(NOHWOPT) # -DPNG_DEBUG=5 30CFLAGS = -O # -g 31ARFLAGS = rc 32LDFLAGS = -L$(ZLIBLIB) # -g 33LIBS = -lz -lm 34 35# Pre-built configuration 36# See scripts/pnglibconf.mak for more options 37PNGLIBCONF_H_PREBUILT = scripts/pnglibconf.h.prebuilt 38 39OBJS = png.o pngerror.o pngget.o pngmem.o pngpread.o \ 40 pngread.o pngrio.o pngrtran.o pngrutil.o pngset.o \ 41 pngtrans.o pngwio.o pngwrite.o pngwtran.o pngwutil.o 42 43.c.o: 44 $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $< 45 46all: libpng.a pngtest 47 48# The standard pnglibconf.h exists as scripts/pnglibconf.h.prebuilt, 49# copy this if the following doesn't work. 50pnglibconf.h: pnglibconf.dfn 51 $(RM_F) $@ pnglibconf.c pnglibconf.out pnglibconf.tmp 52 echo '#include "pnglibconf.dfn"' >pnglibconf.c 53 @echo "## If '$(CC) -E' fails, try /lib/cpp (e.g. CPP='/lib/cpp')" >&2 54 $(CPP) $(DFNFLAGS) pnglibconf.c >pnglibconf.out 55 $(AWK) -f scripts/dfn.awk out=pnglibconf.tmp pnglibconf.out >&2 56 $(MV_F) pnglibconf.tmp $@ 57 58pnglibconf.dfn: scripts/pnglibconf.dfa scripts/options.awk pngconf.h pngusr.dfa $(DFA_XTRA) 59 $(RM_F) $@ pnglibconf.pre pnglibconf.tmp 60 @echo "## Calling $(AWK) from scripts/pnglibconf.mak" >&2 61 @echo "## If 'awk' fails, try a better awk (e.g. AWK='nawk')" >&2 62 $(AWK) -f scripts/options.awk out=pnglibconf.pre\ 63 version=search pngconf.h scripts/pnglibconf.dfa\ 64 pngusr.dfa $(DFA_XTRA) >&2 65 $(AWK) -f scripts/options.awk out=pnglibconf.tmp pnglibconf.pre >&2 66 $(MV_F) pnglibconf.tmp $@ 67 68libpng.a: $(OBJS) 69 $(AR) $(ARFLAGS) $@ $(OBJS) 70 $(RANLIB) $@ 71 72pngtest: pngtest.o libpng.a 73 $(LD) $(LDFLAGS) -o $@ pngtest.o libpng.a $(LIBS) 74 75test: pngtest 76 ./pngtest 77 78install: 79 @echo "The $@ target is no longer supported by this makefile." 80 @false 81 82clean: 83 $(RM_F) *.o libpng.a pngtest pngout.png pnglibconf.h 84 $(RM_F) pnglibconf.c pnglibconf.dfn pnglibconf.out pnglibconf.pre 85 86# DO NOT DELETE THIS LINE -- make depend depends on it. 87 88png.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 89pngerror.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 90pngget.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 91pngmem.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 92pngpread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 93pngread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 94pngrio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 95pngrtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 96pngrutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 97pngset.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 98pngtrans.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 99pngwio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 100pngwrite.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 101pngwtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 102pngwutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 103 104pngtest.o: png.h pngconf.h pnglibconf.h 105