| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 | 
							- # This is an OpenWatcom make file which builds pnglibconf.h - the libpng
 
- # configuration header.  You can ignore this file if you don't need to
 
- # configure libpng; a default configuration will be built.
 
- #
 
- # For more information build libpng.wpj under the IDE and then read the
 
- # generated files:
 
- #
 
- #    config.inf: Basic configuration information for a standard build.
 
- #    pngconfig.dfa: Advanced configuration for non-standard libpng builds.
 
- #
 
- DELETE=rm -f
 
- ECHO=echo
 
- COPY=copy
 
- #
 
- # If your configuration needs to test compiler flags when building
 
- # pnglibconf.h you may need to override the following on the wmake command
 
- # line:
 
- CFLAGS=
 
- CC=wcl386
 
- CPP=$(CC) -pw0
 
- #
 
- # Read awk from the environment if set, else it can be set on the command
 
- # line (the default approach is to set the %awk% environment variable in the
 
- # IDE libpng.wpj 'before' rule - this setting is local.)
 
- !ifdef %awk
 
- AWK=$(%awk)
 
- !endif
 
- #
 
- # pnglibconf.h must exist in the source directory, this is the final rule
 
- # which copies the local built version (and this is the default target for
 
- # this makefile.)
 
- ..\..\pnglibconf.h: pnglibconf.h
 
-  $(COPY) pnglibconf.h $@
 
- !ifdef AWK
 
- # CPPFLAGS should contain the options to control the result,
 
- # but DEFS and CFLAGS are also supported here, override
 
- # as appropriate
 
- DFNFLAGS = $(DEFS) $(CPPFLAGS) $(CFLAGS)
 
- pnglibconf.h: pnglibconf.dfn
 
-  $(DELETE) $@ dfn.c dfn1.out dfn2.out
 
-  $(ECHO) $#include "pnglibconf.dfn" >dfn.c
 
-  $(CPP) $(DFNFLAGS) dfn.c >dfn1.out
 
-  $(AWK) -f << dfn1.out >dfn2.out
 
- /^.*PNG_DEFN_MAGIC-.*-PNG_DEFN_END.*$$/{
 
-  sub(/^.*PNG_DEFN_MAGIC-/, "")
 
-  sub(/ *-PNG_DEFN_END.*$$/, "")
 
-  gsub(/ *@@@ */, "")
 
-  print
 
- }
 
- <<
 
-  $(COPY) dfn2.out $@
 
-  @type << >pngconfig.inf
 
- This is a locally configurable build of libpng.lib; for configuration
 
- instructions consult and edit projects/openwatcom/pngconfig.dfa
 
- <<
 
-  $(DELETE) dfn.c dfn1.out dfn2.out
 
- pnglibconf.dfn: ..\..\scripts\pnglibconf.dfa ..\..\scripts\options.awk pngconfig.dfa ..\..\pngconf.h
 
-  $(DELETE) $@ dfn1.out dfn2.out
 
-  $(AWK) -f ..\..\scripts\options.awk out=dfn1.out version=search ..\..\pngconf.h ..\..\scripts\pnglibconf.dfa pngconfig.dfa $(DFA_XTRA) 1>&2
 
-  $(AWK) -f ..\..\scripts\options.awk out=dfn2.out dfn1.out 1>&2
 
-  $(COPY) dfn2.out $@
 
-  $(DELETE) dfn1.out dfn2.out
 
- !else
 
- # The following lines are used to copy scripts\pnglibconf.h.prebuilt and make
 
- # the required change to the calling convention.
 
- #
 
- # By default libpng is built to use the __cdecl calling convention on
 
- # Windows.  This gives compatibility with MSVC and GCC.  Unfortunately it
 
- # does not work with OpenWatcom because OpenWatcom implements longjmp using
 
- # the __watcall convention (compared with both MSVC and GCC which use __cdecl
 
- # for library functions.)
 
- #
 
- # Thus the default must be changed to build on OpenWatcom and, once changed,
 
- # the result will not be compatible with applications built using other
 
- # compilers (in fact attempts to build will fail at compile time.)
 
- #
 
- pnglibconf.h: ..\..\scripts\pnglibconf.h.prebuilt .existsonly
 
-  @$(ECHO) .
 
-  @$(ECHO) .
 
-  @$(ECHO) $$(AWK) NOT AVAILABLE: COPYING scripts\pnglibconf.h.prebuilt
 
-  @$(ECHO) .
 
-  @$(ECHO) .
 
-  vi -q -k ":1,$$s/PNG_API_RULE 0$$/PNG_API_RULE 2/\n:w! $@\n:q!\n" ..\..\scripts\pnglibconf.h.prebuilt
 
-  @$(ECHO) .
 
-  @$(ECHO) .
 
-  @$(ECHO) YOU HAVE A DEFAULT CONFIGURATION BECAUSE YOU DO NOT HAVE AWK!
 
-  @$(ECHO) .
 
-  @$(ECHO) .
 
-  @type << >pngconfig.inf
 
- This is the default configuration of libpng.lib, if you wish to
 
- change the configuration please consult the instructions in
 
- projects/owatcom/pngconfig.dfa.
 
- <<
 
- !endif
 
- # Make the default files
 
- defaults: .symbolic
 
-  @$(COPY) << config.inf
 
- $# The libpng project is incompletely configured.  To complete configuration
 
- $# please complete the following steps:
 
- $#
 
- $#   1) Edit the 'before' rule of libpng.wpj (from the IDE) to define the
 
- $#      locations of the zlib include file zlib.h and the built zlib library,
 
- $#      zlib.lib.
 
- $#
 
- $#   2) If you want to change libpng to a non-standard configuration also
 
- $#      change the definition of 'awk' in the before rule to the name of your
 
- $#      awk command.  For more instructions on configuration read
 
- $#      pngconfig.dfa.
 
- $#
 
- $#   3) Delete this file (config.inf).
 
- <<
 
-  @$(COPY) << pngconfig.dfa
 
- $# pngconfig.dfa: this file contains configuration options for libpng.
 
- $# If empty the standard configuration will be built.  For this file to be
 
- $# used a working version of the program 'awk' is required and the program
 
- $# must be identified in the 'before' rule of the project.
 
- $#
 
- $# If you don't already have 'awk', or the version of awk you have seems not
 
- $# to work, download Brian Kernighan's awk (Brian Kernighan is the author of
 
- $# awk.)  You can find source code and a built executable (called awk95.exe)
 
- $# here:
 
- $#
 
- $#     https://www.cs.princeton.edu/~bwk/btl.mirror/
 
- $#
 
- $# The executable works just fine.
 
- $#
 
- $# If build issues errors after a change to pngconfig.dfa you have entered
 
- $# inconsistent feature requests, or even malformed requests, in
 
- $# pngconfig.dfa.  The error messages from awk should be comprehensible, but
 
- $# if not simply go back to the start (nothing but comments in this file) and
 
- $# enter configuration lines one by one until one produces an error.  (Or, of
 
- $# course, do the standard binary chop.)
 
- $#
 
- $# You need to rebuild everything after a change to pnglibconf.dfa - i.e. you
 
- $# must do Actions/Mark All Targets for Remake.  This is because the compiler
 
- $# generated dependency information (as of OpenWatcom 1.9) does not record the
 
- $# dependency on pnglibconf.h correctly.
 
- $#
 
- $# If awk isn't set then this file is bypassed.  If you just want the standard
 
- $# configuration it is automatically produced from the distributed version
 
- $# (scripts\pnglibconf.h.prebuilt) by editing PNG_API_RULE to 2 (to force use
 
- $# of the OpenWatcom library calling convention.)
 
- $#
 
- <<
 
- clean:: .symbolic
 
-  $(DELETE) ..\..\pnglibconf.h pnglibconf.* dfn.c *.out pngconfig.inf
 
-  $(DELETE) *.obj *.mbr *.sym *.err *.pch libpng.mk
 
-  $(DELETE) libpng.lib libpng.lbr libpng.lb1 libpng.cbr libpng.mk1
 
-  $(DELETE) pngtest.exe pngtest.map pngtest.lk1 pngtest.mk1
 
-  $(DELETE) pngvalid.exe pngvalid.map pngvalid.lk1 pngvalid.mk1
 
- distclean:: clean .symbolic
 
-  $(DELETE) zlib.inf awk.inf config.inf pngconfig.dfa
 
 
  |