LN_SF=ln -sf
RANLIB=ranlib
RM_F=rm -f
+AWK = awk
+SED = sed
+CPP = $(CC) -E
+ECHO = echo
+DFNFLAGS = # DFNFLAGS contains -D options to use in the libpng build
CFLAGS=-I$(ZLIBINC) -O # -g -DPNG_DEBUG=5
LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm
all: libpng.a pngtest
+# The standard pnglibconf.h exists as scripts/pnglibconf.h.prebuilt,
+# copy this if the following doesn't work.
+pnglibconf.dfn: scripts/pnglibconf.dfa scripts/options.awk pngconf.h
+ $(RM_F) $@ dfn?.out
+ $(AWK) -f scripts/options.awk out=dfn1.out version=search pngconf.h\
+ scripts/pnglibconf.dfa $(DFA_XTRA) 1>&2
+ $(AWK) -f scripts/options.awk out=dfn2.out dfn1.out 1>&2
+ cp dfn2.out $@
+ $(RM_F) dfn?.out
+
+pnglibconf.h: pnglibconf.dfn
+ $(RM_F) $@ dfn.c dfn?.out
+ $(ECHO) '#include "pnglibconf.dfn"' >dfn.c
+ $(CPP) $(DFNFLAGS) dfn.c >dfn1.out
+ $(SED) -n -e 's|^.*PNG_DEFN_MAGIC *-\(.*\)- *PNG_DEFN_END.*$$|\1|p'\
+ dfn1.out >dfn2.out
+ $(SED) -e 's| *PNG_JOIN *||g' -e 's| *$$||' dfn2.out >dfn3.out
+ cp dfn3.out $@
+ $(RM_F) dfn.c dfn?.out
+
libpng.a: $(OBJS)
$(AR_RC) $@ $(OBJS)
$(RANLIB) $@
test: pngtest
./pngtest
-install: libpng.a
+install: libpng.a pnglibconf.h
-@$(MKDIR_P) $(DESTDIR)$(INCPATH)
-@$(MKDIR_P) $(DESTDIR)$(INCPATH)/libpng
-@$(MKDIR_P) $(DESTDIR)$(LIBPATH)
-@$(RM_F) $(DESTDIR)$(INCPATH)/png.h
-@$(RM_F) $(DESTDIR)$(INCPATH)/pngconf.h
+ -@$(RM_F) $(DESTDIR)$(INCPATH)/pnglibconf.h
cp png.h $(DESTDIR)$(INCPATH)/libpng
cp pngconf.h $(DESTDIR)$(INCPATH)/libpng
+ cp pnglibconf.h $(DESTDIR)$(INCPATH)/libpng
chmod 644 $(DESTDIR)$(INCPATH)/libpng/png.h
chmod 644 $(DESTDIR)$(INCPATH)/libpng/pngconf.h
+ chmod 644 $(DESTDIR)$(INCPATH)/libpng/pnglibconf.h
(cd $(DESTDIR)$(INCPATH); ln -f -s libpng/* .)
cp libpng.a $(DESTDIR)$(LIBPATH)
chmod 644 $(DESTDIR)$(LIBPATH)/libpng.a
clean:
- $(RM_F) *.o libpng.a pngtest pngout.png
+ $(RM_F) *.o libpng.a pngtest pngout.png pnglibconf.* dfn.c dfn?.out
DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
writelock:
# DO NOT DELETE THIS LINE -- make depend depends on it.
-png.o: png.h pngconf.h pngpriv.h
-pngerror.o: png.h pngconf.h pngpriv.h
-pngrio.o: png.h pngconf.h pngpriv.h
-pngwio.o: png.h pngconf.h pngpriv.h
-pngmem.o: png.h pngconf.h pngpriv.h
-pngset.o: png.h pngconf.h pngpriv.h
-pngget.o: png.h pngconf.h pngpriv.h
-pngread.o: png.h pngconf.h pngpriv.h
-pngrtran.o: png.h pngconf.h pngpriv.h
-pngrutil.o: png.h pngconf.h pngpriv.h
-pngtrans.o: png.h pngconf.h pngpriv.h
-pngwrite.o: png.h pngconf.h pngpriv.h
-pngwtran.o: png.h pngconf.h pngpriv.h
-pngwutil.o: png.h pngconf.h pngpriv.h
-pngpread.o: png.h pngconf.h pngpriv.h
-
-pngtest.o: png.h pngconf.h
+png.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
+pngerror.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
+pngrio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
+pngwio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
+pngmem.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
+pngset.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
+pngget.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
+pngread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
+pngrtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
+pngrutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
+pngtrans.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
+pngwrite.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
+pngwtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
+pngwutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
+pngpread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
+
+pngtest.o: png.h pngconf.h pnglibconf.h