Home | History | Annotate | Download | only in libpng
      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 
     11 PNGLIB_BASENAME= libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@
     12 
     13 # libpng does not follow GNU file name conventions
     14 AUTOMAKE_OPTIONS = foreign
     15 
     16 # test programs - run on make check, make distcheck
     17 check_PROGRAMS= pngtest
     18 pngtest_SOURCES = pngtest.c
     19 pngtest_LDADD = libpng12.la
     20 TESTS = test-pngtest.sh
     21 TESTS_ENVIRONMENT= srcdir=$(srcdir)
     22 
     23 # man pages
     24 dist_man_MANS= libpng.3 libpngpf.3 png.5
     25 
     26 # generate the -config scripts if required
     27 binconfigs= libpng12-config
     28 EXTRA_SCRIPTS= libpng-config libpng12-config
     29 bin_SCRIPTS= @binconfigs@
     30 
     31 # rules to build libpng, only build the old library on request
     32 lib_LTLIBRARIES=libpng12.la @compatlib@
     33 EXTRA_LTLIBRARIES= libpng.la
     34 libpng12_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
     38 libpng_la_SOURCES = $(libpng12_la_SOURCES)
     39 
     40 libpng_la_CPPFLAGS = @LIBPNG_DEFINES@
     41 libpng12_la_CPPFLAGS = @LIBPNG_DEFINES@
     42 
     43 # MAJOR UPGRADE: the version-number settings below must be changed.
     44 libpng12_la_LDFLAGS = -no-undefined -export-dynamic \
     45 	-version-number 0:@PNGLIB_RELEASE@:0
     46 # -rpath is needed as automake doesn't know the directory
     47 libpng_la_LDFLAGS = -rpath '$(libdir)' -no-undefined -export-dynamic \
     48 	-version-number 3:@PNGLIB_RELEASE@:0
     49 
     50 if 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
     54 else
     55   # Only restricted exports when possible
     56   libpng12_la_LDFLAGS += -export-symbols libpng.sym
     57   libpng12_la_DEPENDENCIES = libpng.sym
     58 endif
     59 libpng_la_DEPENDENCIES = $(libpng12_la_DEPENDENCIES)
     60 
     61 # Avoid depending upon Character Ranges.
     62 AN = '_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
     63 
     64 #distribute headers in /usr/include/libpng/*
     65 pkgincludedir= $(includedir)/$(PNGLIB_BASENAME)
     66 pkginclude_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
     70 pkgconfigdir = @pkgconfigdir@
     71 pkgconfig_DATA = libpng12.pc
     72 
     73 #extra source distribution files.
     74 EXTRA_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 
     94 CLEANFILES= pngout.png libpng12.pc libpng12-config libpng.vers \
     95 libpng.sym
     96 
     97 MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess config.h.in \
     98 config.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 
    106 libpng.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 
    115 libpng.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 
    122 test: check
    123 
    124 # install the .../include headers as links to the new ones
    125 install-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
    133 install-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 
    145 uninstall-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