[libpng16] Allow unversioned links created on install to be disabled in

configure.  In configure builds 'make install' changes/adds links like png.h
and libpng.a to point to the newly installed, versioned, files (e.g.
libpng17/png.h and libpng17.a). Three new configure options and some
rearrangement of Makefile.am allow creation of these links to be disabled.
This commit is contained in:
John Bowler 2013-12-29 19:31:56 -06:00 committed by Glenn Randers-Pehrson
parent 1fc0171278
commit d0479d24a0
4 changed files with 117 additions and 37 deletions

View File

@ -1,5 +1,5 @@
Libpng 1.6.9beta02 - December 29, 2013 Libpng 1.6.9beta02 - December 30, 2013
This is not intended to be a public release. It will be replaced This is not intended to be a public release. It will be replaced
within a few weeks by a public version or by another test version. within a few weeks by a public version or by another test version.
@ -42,7 +42,7 @@ Version 1.6.9beta01 [December 26, 2013]
Rebuilt configure scripts with automake-1.14.1 and autoconf-2.69 Rebuilt configure scripts with automake-1.14.1 and autoconf-2.69
in the tar distributions. in the tar distributions.
Version 1.6.9beta02 [December 29, 2013] Version 1.6.9beta02 [December 30, 2013]
Added checks for libpng 1.5 to pngvalid.c. This supports the use of Added checks for libpng 1.5 to pngvalid.c. This supports the use of
this version of pngvalid in libpng 1.5 this version of pngvalid in libpng 1.5
Merged with pngvalid.c from libpng-1.7 changes to create a single Merged with pngvalid.c from libpng-1.7 changes to create a single
@ -54,6 +54,11 @@ Version 1.6.9beta02 [December 29, 2013]
Revised pngvalid.c to support libpng 1.5, which does not support the Revised pngvalid.c to support libpng 1.5, which does not support the
PNG_MAXIMUM_INFLATE_WINDOW option, so #define it out when appropriate in PNG_MAXIMUM_INFLATE_WINDOW option, so #define it out when appropriate in
pngvalid.c pngvalid.c
Allow unversioned links created on install to be disabled in configure.
In configure builds 'make install' changes/adds links like png.h
and libpng.a to point to the newly installed, versioned, files (e.g.
libpng17/png.h and libpng17.a). Three new configure options and some
rearrangement of Makefile.am allow creation of these links to be disabled.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit (subscription required; visit

View File

@ -4767,7 +4767,7 @@ Version 1.6.9beta01 [December 26, 2013]
Rebuilt configure scripts with automake-1.14.1 and autoconf-2.69 Rebuilt configure scripts with automake-1.14.1 and autoconf-2.69
in the tar distributions. in the tar distributions.
Version 1.6.9beta02 [December 29, 2013] Version 1.6.9beta02 [December 30, 2013]
Added checks for libpng 1.5 to pngvalid.c. This supports the use of Added checks for libpng 1.5 to pngvalid.c. This supports the use of
this version of pngvalid in libpng 1.5 this version of pngvalid in libpng 1.5
Merged with pngvalid.c from libpng-1.7 changes to create a single Merged with pngvalid.c from libpng-1.7 changes to create a single
@ -4779,6 +4779,11 @@ Version 1.6.9beta02 [December 29, 2013]
Revised pngvalid.c to support libpng 1.5, which does not support the Revised pngvalid.c to support libpng 1.5, which does not support the
PNG_MAXIMUM_INFLATE_WINDOW option, so #define it out when appropriate in PNG_MAXIMUM_INFLATE_WINDOW option, so #define it out when appropriate in
pngvalid.c pngvalid.c
Allow unversioned links created on install to be disabled in configure.
In configure builds 'make install' changes/adds links like png.h
and libpng.a to point to the newly installed, versioned, files (e.g.
libpng17/png.h and libpng17.a). Three new configure options and some
rearrangement of Makefile.am allow creation of these links to be disabled.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit (subscription required; visit

View File

@ -287,43 +287,74 @@ check: scripts/symbols.chk
dist-hook: dist-hook:
cd '$(top_distdir)'; rm -f $(SCRIPT_CLEANFILES) cd '$(top_distdir)'; rm -f $(SCRIPT_CLEANFILES)
# install the .../include headers as links to the new ones # Make links between installed files with release-specific names and the generic
install-data-hook: # file names. If this install rule is run the generic names will be deleted and
cd '$(DESTDIR)$(includedir)'; rm -f png.h pngconf.h pnglibconf.h # recreated - this has obvious issues for systems with multiple installations.
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)/pnglibconf.h \
pnglibconf.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-header-links:
install-exec-hook: @set -ex; cd '$(DESTDIR)$(includedir)'; for f in $(HEADERS); do \
cd '$(DESTDIR)$(bindir)'; rm -f libpng-config rm -f "$$f"; $(LN_S) "$(PNGLIB_BASENAME)/$$f" "$$f"; done
cd '$(DESTDIR)$(bindir)';\
$(LN_S) $(PNGLIB_BASENAME)-config libpng-config uninstall-header-links:
@set -x;\ cd '$(DESTDIR)$(includedir)'; rm -f $(HEADERS)
cd '$(DESTDIR)$(libdir)';\
for ext in a la so so.@PNGLIB_MAJOR@@PNGLIB_MINOR@.@PNGLIB_RELEASE@\ install-libpng-pc:
sl dylib dll.a; do\ @set -ex; cd '$(DESTDIR)$(pkgconfigdir)'; rm -f libpng.pc; \
rm -f libpng.$$ext;\ $(LN_S) '$(PNGLIB_BASENAME).pc' libpng.pc
if test -f $(PNGLIB_BASENAME).$$ext; then\
$(LN_S) $(PNGLIB_BASENAME).$$ext libpng.$$ext;\ uninstall-libpng-pc:
rm -f '$(DESTDIR)$(pkgconfigdir)/libpng.pc'
# EXT_LIST is a list of the possibly library directory extensions, this exists
# because we can't find a good way of discovering the file extensions that are
# actually installed on a given system, so instead we check for every extension
# we have seen.
EXT_LIST = a dll.a so so.@PNGLIB_MAJOR@@PNGLIB_MINOR@.@PNGLIB_RELEASE@ la sl dylib
install-library-links:
@set -x; cd '$(DESTDIR)$(libdir)';\
for ext in $(EXT_LIST); do\
rm -f "libpng.$$ext";\
if test -f "$(PNGLIB_BASENAME).$$ext"; then\
$(LN_S) "$(PNGLIB_BASENAME).$$ext" "libpng.$$ext" || exit 1;\
fi;\ fi;\
done done
uninstall-hook: uninstall-library-links:
cd '$(DESTDIR)$(includedir)'; rm -f png.h pngconf.h pnglibconf.h @set -x; cd '$(DESTDIR)$(libdir)'; for ext in $(EXT_LIST); do\
rm -f '$(DESTDIR)$(pkgconfigdir)/libpng.pc' rm -f "libpng.$$ext"; done
install-libpng-config:
@set -ex; cd '$(DESTDIR)$(bindir)'; rm -f libpng-config; \
$(LN_S) '$(PNGLIB_BASENAME)-config' libpng-config
uninstall-libpng-config:
rm -f '$(DESTDIR)$(bindir)/libpng-config' rm -f '$(DESTDIR)$(bindir)/libpng-config'
rm -f '$(DESTDIR)$(libdir)/libpng.a'
rm -f '$(DESTDIR)$(libdir)/libpng.la' if DO_INSTALL_LINKS
rm -f '$(DESTDIR)$(libdir)/libpng.so' # If --enable-unversioned-links is specified the header and lib file links
rm -f '$(DESTDIR)$(libdir)/libpng.so.@PNGLIB_MAJOR@@PNGLIB_MINOR@.@PNGLIB_RELEASE@' # will be automatically made on a 'make install':
rm -f '$(DESTDIR)$(libdir)/libpng.sl'
rm -f '$(DESTDIR)$(libdir)/libpng.dylib' install-data-hook: install-header-links
rm -f '$(DESTDIR)$(libdir)/libpng.dll.a' uninstall-hook: uninstall-header-links
install-exec-hook: install-library-links
uninstall-hook: uninstall-library-links
endif
if DO_INSTALL_LIBPNG_PC
# Likewise, --install-pc causes libpng.pc to be constructed:
install-data-hook: install-libpng-pc
uninstall-hook: uninstall-libpng-pc
endif
if DO_INSTALL_LIBPNG_CONFIG
# And --install-config:
install-exec-hook: install-libpng-config
uninstall-hook: uninstall-libpng-config
endif
# The following addition ensures that 'make all' always builds the test programs # The following addition ensures that 'make all' always builds the test programs
# too. It used to, but some change either in libpng or configure stopped this # too. It used to, but some change either in libpng or configure stopped this

View File

@ -226,6 +226,45 @@ AC_ARG_WITH(libpng-prefix,
fi]) fi])
AM_CONDITIONAL([DO_PNG_PREFIX], [test "${with_libpng_prefix:-no}" != "no"]) AM_CONDITIONAL([DO_PNG_PREFIX], [test "${with_libpng_prefix:-no}" != "no"])
# Control over what links are made for installed files. Versioned files are
# always installed, when the following options are turned on corresponding
# unversioned links are also created (normally as symbolic links):
AC_ARG_ENABLE([unversioned-links],
AS_HELP_STRING([[[--enable-unversioned-links]]],
[Installed libpng header files are placed in a versioned subdirectory]
[and installed libpng library (including DLL) files are versioned.]
[If this option is enabled unversioned links will be created pointing to]
[the corresponding installed files. If you use libpng.pc or]
[libpng-config for all builds you do not need these links, but if you]
[compile programs directly they will typically #include <png.h> and]
[link with -lpng; in that case you need the links.]
[The links can be installed manually using 'make install-header-links']
[and 'make install-library-links' and can be removed using the]
[corresponding uninstall- targets. If you do enable this option every]
[libpng 'make install' will recreate the links to point to the just]
[installed version of libpng. The default is to create the links;]
[use --disable-unversioned-links to change this]))
# The AM_CONDITIONAL test is written so that the default is enabled;
# --disable-unversioned-links must be given to turn the option off.
AM_CONDITIONAL([DO_INSTALL_LINKS],[test "$enable_unversioned_links" != "no"])
AC_ARG_ENABLE([unversioned-libpng-pc],
AS_HELP_STRING([[[--enable-unversioned-libpng-pc]]],
[Install the configuration file 'libpng.pc' as a link to the versioned]
[version. This is done by default - use --disable-unversioned-libpng-pc]
[to change this.]))
AM_CONDITIONAL([DO_INSTALL_LIBPNG_PC],
[test "$enable_unversioned_libpng_pc" != "no"])
AC_ARG_ENABLE([unversioned-libpng-config],
AS_HELP_STRING([[[--enable-unversioned-libpng-config]]],
[Install the configuration file 'libpng-config' as a link to the]
[versioned version. This is done by default - use]
[--disable-unversioned-libpng-config to change this.]))
AM_CONDITIONAL([DO_INSTALL_LIBPNG_CONFIG],
[test "$enable_unversioned_libpng_config" != "no"])
# HOST SPECIFIC OPTIONS # HOST SPECIFIC OPTIONS
# ===================== # =====================
# #