#!/usr/bin/make -f
# pnglibconf.mak - standard make lines for pnglibconf.h
#
# The following lines are copied from Makefile.am.
# They illustrate how to automate the build of pnglibconf.h from
# scripts/pnglibconf/pnglibconf.dfa, given just the awk program,
# a C preprocessor, and standard command-line utilities.

# Override as appropriate, these definitions can be overridden on
# the make command line (AWK='nawk' for example).
AWK = gawk
AWK = mawk
AWK = nawk
AWK = one-true-awk
AWK = awk      # This fails on SunOS 5.10; use 'nawk'
CPP = $(CC) -E # If this fails on SunOS 5.10, use '/lib/cpp'

MOVE = mv -f
DELETE = rm -f

DFA_XTRA = # Put your configuration file here; see pnglibconf.dfa. For example:
# DFA_XTRA = pngusr.dfa

# CPPFLAGS should contain the options to control the result,
# but DEFS and CFLAGS are also supported here, override
# as appropriate
DFNFLAGS = $(DEFS) $(CPPFLAGS) $(CFLAGS)

# srcdir is a de-facto standard for the location of the source
srcdir = .

# The standard pnglibconf.h exists as pnglibconf.h.prebuilt.
# Copy this over if the following doesn't work.
pnglibconf.h: pnglibconf.dfn
	$(DELETE) $@ pnglibconf.c pnglibconf.out pnglibconf.tmp
	echo '#include "pnglibconf.dfn"' >pnglibconf.c
	@echo "## If '$(CC) -E' fails, try /lib/cpp (e.g. CPP='/lib/cpp')" >&2
	$(CPP) $(DFNFLAGS) pnglibconf.c >pnglibconf.out
	$(AWK) -f $(srcdir)/scripts/dfn.awk out=pnglibconf.tmp pnglibconf.out >&2
	$(MOVE) pnglibconf.tmp $@

pnglibconf.dfn: $(srcdir)/scripts/pnglibconf/pnglibconf.dfa \
                $(srcdir)/scripts/pnglibconf/options.awk \
                $(srcdir)/pngconf.h $(srcdir)/pngusr.dfa $(DFA_XTRA)
	$(DELETE) $@ pnglibconf.pre pnglibconf.tmp
	@echo "## Calling $(AWK) from scripts/pnglibconf/pnglibconf.mak" >&2
	@echo "## If 'awk' fails, try a better awk (e.g. AWK='nawk')" >&2
	$(AWK) -f $(srcdir)/scripts/options.awk\
	    out=pnglibconf.pre version=search\
	    $(srcdir)/pngconf.h $(srcdir)/scripts/pnglibconf/pnglibconf.dfa\
	    $(srcdir)/pngusr.dfa $(DFA_XTRA) >&2
	$(AWK) -f $(srcdir)/scripts/options.awk out=pnglibconf.tmp pnglibconf.pre >&2
	$(MOVE) pnglibconf.tmp $@

clean-pnglibconf:
	$(DELETE) pnglibconf.h pnglibconf.c pnglibconf.out pnglibconf.pre pnglibconf.dfn

clean: clean-pnglibconf
