# Makefile.am: # Source file for Makefile.in (and hence Makefile) # # Makefile.am need only be changed on a major version number # change (e.g. libpng14 --> libpng15). In that case seach # this file for every instance of the old base name (libpng14) # and change to the new one (libpng15), then change the # -version-number settings below so that the new values have # the correct major part (first field). PNGLIB_BASENAME= libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@ # libpng does not follow GNU file name conventions AUTOMAKE_OPTIONS = foreign # test programs - run on make check, make distcheck check_PROGRAMS= pngtest pngtest_SOURCES = pngtest.c pngtest_LDADD = $(PNGLIB_BASENAME).la TESTS = test-pngtest.sh TESTS_ENVIRONMENT= srcdir=$(srcdir) # man pages dist_man_MANS= libpng.3 libpngpf.3 png.5 # generate the -config scripts if required binconfigs= $(PNGLIB_BASENAME)-config EXTRA_SCRIPTS= libpng-config $(PNGLIB_BASENAME)-config bin_SCRIPTS= @binconfigs@ # rules to build libpng, only build the old library on request lib_LTLIBRARIES=libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la @compatlib@ EXTRA_LTLIBRARIES= libpng.la libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES = png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \ pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \ pngwtran.c pngmem.c pngerror.c pngpread.c pnggccrd.c \ png.h pngconf.h pngdefs.h pngpriv.h libpng_la_SOURCES = $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES) libpng_la_CPPFLAGS = @LIBPNG_DEFINES@ libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS = @LIBPNG_DEFINES@ # MAJOR UPGRADE: the version-number settings below must be changed. libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS = -no-undefined -export-dynamic \ -version-number 1:@PNGLIB_MINOR@:0 # -rpath is needed as automake doesn't know the directory libpng_la_LDFLAGS = -rpath '$(libdir)' -no-undefined -export-dynamic \ -version-number @PNGLIB_MAJOR@@PNGLIB_MINOR@:@PNGLIB_MINOR@:0 if HAVE_LD_VERSION_SCRIPT # Versioned symbols and restricted exports libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS += -Wl,--version-script=libpng.vers libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES = libpng.vers pngdefs.h else # Only restricted exports when possible libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS += -export-symbols libpng.sym pngdefs.h libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES = libpng.sym endif libpng_la_DEPENDENCIES = $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES) #distribute headers in /usr/include/libpng/* pkgincludedir= $(includedir)/$(PNGLIB_BASENAME) pkginclude_HEADERS= png.h pngconf.h pngdefs.h # pkg-config stuff, note that libpng.pc is always required in order # to get the correct library pkgconfigdir = @pkgconfigdir@ pkgconfig_DATA = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc #extra source distribution files. EXTRA_DIST= \ ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO \ pngtest.png pngbar.png pngnow.png pngbar.jpg autogen.sh \ ${srcdir}/projects/cbuilder5/* \ ${srcdir}/projects/beos/* \ ${srcdir}/projects/visualc6/* \ ${srcdir}/projects/visualc71/* \ ${srcdir}/projects/wince.txt \ ${srcdir}/projects/netware.txt \ ${srcdir}/scripts/* \ ${srcdir}/contrib/gregbook/* \ ${srcdir}/contrib/pngminus/* \ ${srcdir}/contrib/pngsuite/* \ ${srcdir}/contrib/visupng/* \ $(TESTS) \ example.c libpng.txt pngvcrd.c CLEANFILES= pngout.png libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@-config libpng.vers libpng.sym all: pngdefs.h install: all pngdefs.h: echo "/* pngdefs.h created by \"configure\". */" > pngdefs.h @if test -n "@LIBPNG_NO_MMX@"; then \ echo "#define PNG_NO_MMX_CODE" >> pngdefs.h; \ fi $(PNGLIB_BASENAME).pc: libpng.pc cp libpng.pc $@ $(PNGLIB_BASENAME)-config: libpng-config cp libpng-config $@ libpng.sym: png.h pngconf.h pngdefs.h rm -f $@ $@.new $(CPP) @LIBPNG_DEFINES@ $(CPPFLAGS) -DPNG_BUILDSYMS $(srcdir)/png.h | \ $(SED) -n -e \ 's|^.*PNG_FUNCTION_EXPORT[ ]*\([a-zA-Z0-9_]*\).*$$|\1|p' \ -e 's|^.*PNG_DATA_EXPORT[ ]*\([a-zA-Z0-9_]*\).*$$|\1|p' \ >$@.new mv $@.new $@ libpng.vers: libpng.sym rm -f $@ $@.new $(ECHO) PNG@PNGLIB_MAJOR@_0 '{global:' > $@.new $(SED) s/$$/\;/ libpng.sym >> $@.new $(ECHO) 'local: *; };' >> $@.new mv $@.new $@ # install the .../include headers as links to the new ones install-data-hook: cd $(DESTDIR)$(includedir); rm -f png.h pngconf.h pngdefs.h cd $(DESTDIR)$(includedir); $(LN_S) $(PNGLIB_BASENAME)/png.h png.h cd $(DESTDIR)$(includedir); $(LN_S) $(PNGLIB_BASENAME)/pngconf.h pngconf.h cd $(DESTDIR)$(includedir); $(LN_S) $(PNGLIB_BASENAME)/pngdefs.h pngdefs.h cd $(DESTDIR)$(pkgconfigdir); rm -f libpng.pc cd $(DESTDIR)$(pkgconfigdir); $(LN_S) $(PNGLIB_BASENAME).pc libpng.pc # do evil things to libpng to cause libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@ to be used install-exec-hook: cd $(DESTDIR)$(bindir); rm -f libpng-config cd $(DESTDIR)$(bindir); $(LN_S) $(PNGLIB_BASENAME)-config libpng-config @set -x;\ cd $(DESTDIR)$(libdir);\ for ext in a la so; do\ rm -f libpng.$$ext;\ if test -f $(PNGLIB_BASENAME).$$ext; then\ $(LN_S) $(PNGLIB_BASENAME).$$ext libpng.$$ext;\ fi;\ done uninstall-hook: cd $(DESTDIR)$(includedir); rm -f png.h pngconf.h pngdefs.h rm -f $(DESTDIR)$(pkgconfigdir)/libpng.pc rm -f $(DESTDIR)$(bindir)/libpng-config @if test -n "@compatlib@"; then\ set -x;\ cd $(DESTDIR)$(libdir);\ for ext in a la so; do\ rm -f libpng.$$ext;\ done;\ fi