[devel] Updated contrib/pngminim project to work with the new pnglibconf.h

This commit is contained in:
Glenn Randers-Pehrson
2010-04-17 18:07:33 -05:00
parent 8bdfb47d8c
commit 98eb24c726
9 changed files with 89 additions and 132 deletions

View File

@@ -1,23 +1,15 @@
# Get the source for the pngminus application
cp ../../pngminus/png2pnm.c pngm2pnm.c
# Get the libpng sources
cp ../../../*.h .
cp ../../../*.c .
# Get the libpng scripts for building pnglibconf.h
cp ../../../scripts/options.awk .
cp ../../../scripts/pnglibconf.dfa .
sed -e "s:scripts/::g" ../../../scripts/pnglibconf.mak > pnglibconf.mak
#14+%
# Remove libpng sources we won't use
test -n "${PNGSRC}" || PNGSRC=../../..
cp ${PNGSRC}/contrib/pngminus/png2pnm.c pngm2pnm.c
cp "${PNGSRC}"/*.h .
cp "${PNGSRC}"/*.c .
rm example.c pngtest.c pngpread.c pngw*.c
# Get the zlib sources
# Change the following 2 lines if zlib is somewhere else
cp ../../../../zlib/*.h .
cp ../../../../zlib/*.c .
# Remove zlib sources we won't use
rm -f pnglibconf.h
test -d scripts || mkdir scripts
cp "${PNGSRC}"/scripts/pnglibconf.mak scripts
cp "${PNGSRC}"/scripts/pnglibconf.dfa scripts
cp "${PNGSRC}"/scripts/options.awk scripts
# change the following if zlib is somewhere else
test -n "${ZLIBSRC}" || ZLIBSRC="${PNGSRC}"/../zlib
cp "${ZLIBSRC}"/*.h .
cp "${ZLIBSRC}"/*.c .
rm minigzip.c example.c compress.c deflate.c gz*

View File

@@ -4,9 +4,6 @@
#CC=cc
CC=gcc
LD=$(CC)
AWK=awk
SED=sed
CPP=cpp
RM=rm -f
@@ -28,50 +25,33 @@ OBJS = pngm2pnm$(O) png$(O) pngerror$(O) pngget$(O) pngmem$(O) \
# implicit make rules -------------------------------------------------------
.c$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h pngusr.h zlib.h
# note: dependencies do not work on implicit rule lines
.c$(O):
$(CC) -c $(CFLAGS) $<
# dependencies
all: pngm2pnm$(E)
# see scripts/pnglibconf.mak for more options
pnglibconf.h: pnglibconf.mak pnglibconf.dfn
make -f pnglibconf.mak pnglibconf.h
# used on demand to regenerate the standard header, CPPFLAGS should
# be empty - no non-standard defines
.dfn.out:
rm -f $@ dfn.c dfn?.out
echo '#include "$<"' >dfn.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) @LIBPNG_DEFINES@\
$(CPPFLAGS) $(SYMBOL_CFLAGS) dfn.c >dfn1.out
$(SED) -n -e 's|^.*PNG_DEFN_MAGIC-\(.*\)-PNG_DEFN_END.*$$|\1|p'\
dfn1.out >dfn2.out
$(SED) -e 's| *@@@ *||g' -e 's| *$$||' dfn2.out >dfn3.out
rm -f dfn.c dfn[12].out
mv dfn3.out $@
pnglibconf.dfn: pnglibconf.dfa options.awk
rm -f $@ dfn?.out
test -z "$(CPPFLAGS)"
echo "com @PNGLIB_VERSION@ STANDARD API DEFINITION" |\
$(AWK) -f options.awk pre=1 out=dfn1.out\
logunsupported=1 - pnglibconf.dfa 1>&2
$(AWK) -f options.awk pre=0 out=dfn2.out\
logunsupported=1 dfn1.out 1>&2
rm dfn1.out
mv dfn2.out $@
pngm2pnm$(E): $(OBJS)
$(LD) -o pngm2pnm$(E) $(OBJS)
strip pngm2pnm$(E)
pnglibconf.h: scripts/pnglibconf.mak scripts/pnglibconf.dfa \
scripts/options.awk pngusr.h
rm -f pnglibconf.h
$(MAKE) $(MAKEFLAGS) -f scripts/pnglibconf.mak\
CPPFLAGS=-DPNG_USER_CONFIG $@
clean:
$(MAKE) $(MAKEFLAGS) -f scripts/pnglibconf.mak clean
$(RM) pngm2pnm$(O)
$(RM) pngm2pnm$(E)
$(RM) $(OBJS)
$(OBJS): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h\
pnginfo.h pngdebug.h zlib.h
# End of makefile for pngm2pnm

View File

@@ -12,12 +12,15 @@
#ifndef MINRDPNGCONF_H
#define MINRDPNGCONF_H
#ifdef NJET
/* No 16-bit support beyond reading with strip_16 */
#endif
#define PNG_USER_PRIVATEBUILD "PNG minimal build"
#define PNG_USER_DLLFNAME_POSTFIX "MN"
#define PNG_NO_WARNINGS
#define png_warning(s1,s2) ""
#define png_chunk_warning(s1,s2) ""
#define PNG_NO_ERROR_TEXT
#define png_error(s1,s2) png_err(s1)
#define png_chunk_error(s1,s2) png_err(s1)
#define PNG_NO_READ_GAMMA
#define PNG_NO_READ_BACKGROUND