1# Makefile.am: 2# Source file for Makefile.in (and hence Makefile) 3# 4# Makefile.am need only be changed on a major version number 5# change (e.g. libpng12 --> libpng14). In that case seach 6# this file for every instance of the old base name (libpng12) 7# and change to the new one (libpng14), then change the 8# -version-number settings below so that the new values have 9# the correct major part (first field). 10 11PNGLIB_BASENAME= libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@ 12 13# libpng does not follow GNU file name conventions 14AUTOMAKE_OPTIONS = foreign 15 16# test programs - run on make check, make distcheck 17check_PROGRAMS= pngtest 18pngtest_SOURCES = pngtest.c 19pngtest_LDADD = libpng12.la 20TESTS = test-pngtest.sh 21TESTS_ENVIRONMENT= srcdir=$(srcdir) 22 23# man pages 24dist_man_MANS= libpng.3 libpngpf.3 png.5 25 26# generate the -config scripts if required 27binconfigs= libpng12-config 28EXTRA_SCRIPTS= libpng-config libpng12-config 29bin_SCRIPTS= @binconfigs@ 30 31# rules to build libpng, only build the old library on request 32lib_LTLIBRARIES=libpng12.la @compatlib@ 33EXTRA_LTLIBRARIES= libpng.la 34libpng12_la_SOURCES = png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \ 35 pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \ 36 pngwtran.c pngmem.c pngerror.c pngpread.c \ 37 png.h pngconf.h 38libpng_la_SOURCES = $(libpng12_la_SOURCES) 39 40libpng_la_CPPFLAGS = @LIBPNG_DEFINES@ 41libpng12_la_CPPFLAGS = @LIBPNG_DEFINES@ 42 43# MAJOR UPGRADE: the version-number settings below must be changed. 44libpng12_la_LDFLAGS = -no-undefined -export-dynamic \ 45 -version-number 0:@PNGLIB_RELEASE@:0 46# -rpath is needed as automake doesn't know the directory 47libpng_la_LDFLAGS = -rpath '$(libdir)' -no-undefined -export-dynamic \ 48 -version-number 3:@PNGLIB_RELEASE@:0 49 50if HAVE_LD_VERSION_SCRIPT 51 # Versioned symbols and restricted exports 52 libpng12_la_LDFLAGS += -Wl,--version-script=libpng.vers 53 libpng12_la_DEPENDENCIES = libpng.vers 54else 55 # Only restricted exports when possible 56 libpng12_la_LDFLAGS += -export-symbols libpng.sym 57 libpng12_la_DEPENDENCIES = libpng.sym 58endif 59libpng_la_DEPENDENCIES = $(libpng12_la_DEPENDENCIES) 60 61# Avoid depending upon Character Ranges. 62AN = '_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' 63 64#distribute headers in /usr/include/libpng/* 65pkgincludedir= $(includedir)/$(PNGLIB_BASENAME) 66pkginclude_HEADERS= png.h pngconf.h 67 68# pkg-config stuff, note that libpng.pc is always required in order 69# to get the correct library 70pkgconfigdir = @pkgconfigdir@ 71pkgconfig_DATA = libpng12.pc 72 73#extra source distribution files. 74EXTRA_DIST= \ 75 ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO \ 76 pngtest.png pngbar.png pngnow.png pngbar.jpg autogen.sh \ 77 CMakeLists.txt \ 78 ${srcdir}/projects/cbuilder5/* \ 79 ${srcdir}/projects/beos/* \ 80 ${srcdir}/projects/visualc6/* \ 81 ${srcdir}/projects/visualc71/* \ 82 ${srcdir}/projects/wince.txt \ 83 ${srcdir}/projects/netware.txt \ 84 ${srcdir}/projects/xcode/* \ 85 ${srcdir}/scripts/* \ 86 ${srcdir}/contrib/gregbook/* \ 87 ${srcdir}/contrib/pngminim/* \ 88 ${srcdir}/contrib/pngminus/* \ 89 ${srcdir}/contrib/pngsuite/* \ 90 ${srcdir}/contrib/visupng/* \ 91 $(TESTS) \ 92 example.c libpng-1.2.46.txt pnggccrd.c pngvcrd.c 93 94CLEANFILES= pngout.png libpng12.pc libpng12-config libpng.vers \ 95libpng.sym 96 97MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess config.h.in \ 98config.sub configure depcomp install-sh ltmain.sh missing 99 100$(PNGLIB_BASENAME).pc: libpng.pc 101 cp libpng.pc $@ 102 103$(PNGLIB_BASENAME)-config: libpng-config 104 cp libpng-config $@ 105 106libpng.sym: png.h pngconf.h 107 rm -f $@ $@.new 108 $(CPP) @LIBPNG_DEFINES@ $(CPPFLAGS) -DPNG_BUILDSYMS $(srcdir)/png.h | \ 109 $(SED) -n -e \ 110 's|^.*PNG_FUNCTION_EXPORT[ ]*\([$(AN)]*\).*$$|$(SYMBOL_PREFIX)\1|p' \ 111 -e 's|^.*PNG_DATA_EXPORT[ ]*\([$(AN)]*\).*$$|$(SYMBOL_PREFIX)\1|p' \ 112 >$@.new 113 mv $@.new $@ 114 115libpng.vers: libpng.sym 116 rm -f $@ $@.new 117 echo PNG@PNGLIB_MAJOR@@PNGLIB_MINOR@_0 '{global:' > $@.new 118 $(SED) s/$$/\;/ libpng.sym >> $@.new 119 echo 'local: *; };' >> $@.new 120 mv $@.new $@ 121 122test: check 123 124# install the .../include headers as links to the new ones 125install-data-hook: 126 cd $(DESTDIR)$(includedir); rm -f png.h pngconf.h 127 cd $(DESTDIR)$(includedir); $(LN_S) $(PNGLIB_BASENAME)/png.h png.h 128 cd $(DESTDIR)$(includedir); $(LN_S) $(PNGLIB_BASENAME)/pngconf.h pngconf.h 129 cd $(DESTDIR)$(pkgconfigdir); rm -f libpng.pc 130 cd $(DESTDIR)$(pkgconfigdir); $(LN_S) $(PNGLIB_BASENAME).pc libpng.pc 131 132# do evil things to libpng to cause libpng12 to be used 133install-exec-hook: 134 cd $(DESTDIR)$(bindir); rm -f libpng-config 135 cd $(DESTDIR)$(bindir); $(LN_S) $(PNGLIB_BASENAME)-config libpng-config 136 @set -x;\ 137 cd $(DESTDIR)$(libdir);\ 138 for ext in a la so sl dylib; do\ 139 rm -f libpng.$$ext;\ 140 if test -f $(PNGLIB_BASENAME).$$ext; then\ 141 $(LN_S) $(PNGLIB_BASENAME).$$ext libpng.$$ext;\ 142 fi;\ 143 done 144 145uninstall-hook: 146 cd $(DESTDIR)$(includedir); rm -f png.h pngconf.h 147 rm -f $(DESTDIR)$(pkgconfigdir)/libpng.pc 148 rm -f $(DESTDIR)$(bindir)/libpng-config 149 @if test -n "@compatlib@"; then\ 150 set -x;\ 151 cd $(DESTDIR)$(libdir);\ 152 for ext in a la so sl dylib; do\ 153 rm -f libpng.$$ext;\ 154 done;\ 155 fi 156