diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2013-09-09 08:31:11 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2013-09-09 08:31:11 +0000 |
commit | 8ebb0079ddc9941c4bce2f9cb38fd1cd6957ebae (patch) | |
tree | 19f11e56c0c2b60f0455a08165bcec6c9f005cb1 /Build | |
parent | 4fd3c95ff0083729460b52ee6594e137b882186e (diff) |
Added a preliminary texlive.info
Various minor build fixes
git-svn-id: svn://tug.org/texlive/trunk@31604 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
57 files changed, 3554 insertions, 125 deletions
diff --git a/Build/source/ChangeLog b/Build/source/ChangeLog index 464566f220c..f06a9a3be63 100644 --- a/Build/source/ChangeLog +++ b/Build/source/ChangeLog @@ -1,3 +1,7 @@ +2013-08-24 Peter Breitenlohner <peb@mppmu.mpg.de> + + * Makefile.am: Add the make target 'texlinks'. + 2013-07-16 Peter Breitenlohner <peb@mppmu.mpg.de> * am/rebuild.am: Avoid still more 'parallel make' problems. diff --git a/Build/source/Makefile.am b/Build/source/Makefile.am index e328bf1dab6..80fa39e3a3f 100644 --- a/Build/source/Makefile.am +++ b/Build/source/Makefile.am @@ -7,6 +7,10 @@ ## ACLOCAL_AMFLAGS = -I m4 --force +## The info files +info_TEXINFOS = doc/texlive.texi +doc_texlive_TEXINFOS = doc/build.texi doc/build-tools + ## speed up distcheck AM_DISTCHECK_CONFIGURE_FLAGS = -C ## check as well for symlinks @@ -73,6 +77,11 @@ endif !cross skip: .PHONY: skip +# Directly run texlinks. +.PHONY: texlinks +texlinks: + cd $(texlinks_dir) && $(MAKE) $(AM_MAKEFLAGS) run-texlinks + # Special target to run TRIP and TRAP tests and create diffs. .PHONY: triptrap triptrap: diff --git a/Build/source/Makefile.in b/Build/source/Makefile.in index 1e86c491098..e27bf300142 100644 --- a/Build/source/Makefile.in +++ b/Build/source/Makefile.in @@ -79,10 +79,11 @@ build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/am/recurse.am $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(top_srcdir)/configure \ - $(am__configure_deps) ChangeLog README build-aux/compile \ - build-aux/config.guess build-aux/config.sub build-aux/depcomp \ - build-aux/install-sh build-aux/missing build-aux/texinfo.tex \ - build-aux/ylwrap build-aux/ltmain.sh \ + $(am__configure_deps) $(doc_texlive_TEXINFOS) \ + $(top_srcdir)/build-aux/texinfo.tex ChangeLog README \ + build-aux/compile build-aux/config.guess build-aux/config.sub \ + build-aux/depcomp build-aux/install-sh build-aux/missing \ + build-aux/texinfo.tex build-aux/ylwrap build-aux/ltmain.sh \ $(top_srcdir)/build-aux/compile \ $(top_srcdir)/build-aux/config.guess \ $(top_srcdir)/build-aux/config.sub \ @@ -232,6 +233,48 @@ am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = +AM_V_DVIPS = $(am__v_DVIPS_@AM_V@) +am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@) +am__v_DVIPS_0 = @echo " DVIPS " $@; +am__v_DVIPS_1 = +AM_V_MAKEINFO = $(am__v_MAKEINFO_@AM_V@) +am__v_MAKEINFO_ = $(am__v_MAKEINFO_@AM_DEFAULT_V@) +am__v_MAKEINFO_0 = @echo " MAKEINFO" $@; +am__v_MAKEINFO_1 = +AM_V_INFOHTML = $(am__v_INFOHTML_@AM_V@) +am__v_INFOHTML_ = $(am__v_INFOHTML_@AM_DEFAULT_V@) +am__v_INFOHTML_0 = @echo " INFOHTML" $@; +am__v_INFOHTML_1 = +AM_V_TEXI2DVI = $(am__v_TEXI2DVI_@AM_V@) +am__v_TEXI2DVI_ = $(am__v_TEXI2DVI_@AM_DEFAULT_V@) +am__v_TEXI2DVI_0 = @echo " TEXI2DVI" $@; +am__v_TEXI2DVI_1 = +AM_V_TEXI2PDF = $(am__v_TEXI2PDF_@AM_V@) +am__v_TEXI2PDF_ = $(am__v_TEXI2PDF_@AM_DEFAULT_V@) +am__v_TEXI2PDF_0 = @echo " TEXI2PDF" $@; +am__v_TEXI2PDF_1 = +AM_V_texinfo = $(am__v_texinfo_@AM_V@) +am__v_texinfo_ = $(am__v_texinfo_@AM_DEFAULT_V@) +am__v_texinfo_0 = -q +am__v_texinfo_1 = +AM_V_texidevnull = $(am__v_texidevnull_@AM_V@) +am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@) +am__v_texidevnull_0 = > /dev/null +am__v_texidevnull_1 = +am__dirstamp = $(am__leading_dot)dirstamp +INFO_DEPS = $(srcdir)/doc/texlive.info +TEXINFO_TEX = $(top_srcdir)/build-aux/texinfo.tex +am__TEXINFO_TEX_DIR = $(top_srcdir)/build-aux +DVIS = doc/texlive.dvi +PDFS = doc/texlive.pdf +PSS = doc/texlive.ps +HTMLS = doc/texlive.html +TEXINFOS = doc/texlive.texi +TEXI2DVI = texi2dvi +TEXI2PDF = $(TEXI2DVI) --pdf --batch +MAKEINFOHTML = $(MAKEINFO) --html +AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) +DVIPS = dvips RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ @@ -245,6 +288,34 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__installdirs = "$(DESTDIR)$(infodir)" +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ @@ -448,6 +519,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I m4 --force +info_TEXINFOS = doc/texlive.texi +doc_texlive_TEXINFOS = doc/build.texi doc/build-tools AM_DISTCHECK_CONFIGURE_FLAGS = -C distuninstallcheck_listfiles = find . -type f -o -type l -print distcleancheck_listfiles = find . -type f -o -type l -print @@ -490,6 +563,7 @@ texlinks_dir = texk/texlive/tl_scripts all: all-recursive .SUFFIXES: +.SUFFIXES: .dvi .ps am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/am/recurse.am $(am__configure_deps) @@ -534,6 +608,146 @@ clean-libtool: distclean-libtool: -rm -f libtool config.lt +doc/$(am__dirstamp): + @$(MKDIR_P) doc + @: > doc/$(am__dirstamp) + +$(srcdir)/doc/texlive.info: doc/texlive.texi $(doc_texlive_TEXINFOS) + $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \ + am__cwd=`pwd` && $(am__cd) $(srcdir) && \ + rm -rf $$backupdir && mkdir $$backupdir && \ + if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ + for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ + if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ + done; \ + else :; fi && \ + cd "$$am__cwd"; \ + if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc -I $(srcdir)/doc \ + -o $@ $(srcdir)/doc/texlive.texi; \ + then \ + rc=0; \ + $(am__cd) $(srcdir); \ + else \ + rc=$$?; \ + $(am__cd) $(srcdir) && \ + $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ + fi; \ + rm -rf $$backupdir; exit $$rc + +doc/texlive.dvi: doc/texlive.texi $(doc_texlive_TEXINFOS) doc/$(am__dirstamp) + $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc -I $(srcdir)/doc' \ + $(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \ + `test -f 'doc/texlive.texi' || echo '$(srcdir)/'`doc/texlive.texi + +doc/texlive.pdf: doc/texlive.texi $(doc_texlive_TEXINFOS) doc/$(am__dirstamp) + $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc -I $(srcdir)/doc' \ + $(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \ + `test -f 'doc/texlive.texi' || echo '$(srcdir)/'`doc/texlive.texi + +doc/texlive.html: doc/texlive.texi $(doc_texlive_TEXINFOS) doc/$(am__dirstamp) + $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp) + $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I doc -I $(srcdir)/doc \ + -o $(@:.html=.htp) `test -f 'doc/texlive.texi' || echo '$(srcdir)/'`doc/texlive.texi; \ + then \ + rm -rf $@ && mv $(@:.html=.htp) $@; \ + else \ + rm -rf $(@:.html=.htp); exit 1; \ + fi +.dvi.ps: + $(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + $(DVIPS) $(AM_V_texinfo) -o $@ $< + +uninstall-dvi-am: + @$(NORMAL_UNINSTALL) + @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \ + rm -f "$(DESTDIR)$(dvidir)/$$f"; \ + done + +uninstall-html-am: + @$(NORMAL_UNINSTALL) + @list='$(HTMLS)'; test -n "$(htmldir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \ + rm -rf "$(DESTDIR)$(htmldir)/$$f"; \ + done + +uninstall-info-am: + @$(PRE_UNINSTALL) + @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \ + list='$(INFO_DEPS)'; \ + for file in $$list; do \ + relfile=`echo "$$file" | sed 's|^.*/||'`; \ + echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \ + if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ + then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \ + done; \ + else :; fi + @$(NORMAL_UNINSTALL) + @list='$(INFO_DEPS)'; \ + for file in $$list; do \ + relfile=`echo "$$file" | sed 's|^.*/||'`; \ + relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ + (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \ + echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ + rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ + else :; fi); \ + done + +uninstall-pdf-am: + @$(NORMAL_UNINSTALL) + @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \ + rm -f "$(DESTDIR)$(pdfdir)/$$f"; \ + done + +uninstall-ps-am: + @$(NORMAL_UNINSTALL) + @list='$(PSS)'; test -n "$(psdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \ + rm -f "$(DESTDIR)$(psdir)/$$f"; \ + done + +dist-info: $(INFO_DEPS) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + list='$(INFO_DEPS)'; \ + for base in $$list; do \ + case $$base in \ + $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ + esac; \ + if test -f $$base; then d=.; else d=$(srcdir); fi; \ + base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \ + for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ + if test -f $$file; then \ + relfile=`expr "$$file" : "$$d/\(.*\)"`; \ + test -f "$(distdir)/$$relfile" || \ + cp -p $$file "$(distdir)/$$relfile"; \ + else :; fi; \ + done; \ + done + +mostlyclean-aminfo: + -rm -rf doc/texlive.t2d doc/texlive.t2p + +clean-aminfo: + -test -z "doc/texlive.dvi doc/texlive.pdf doc/texlive.ps doc/texlive.html" \ + || rm -rf doc/texlive.dvi doc/texlive.pdf doc/texlive.ps doc/texlive.html + +maintainer-clean-aminfo: + @list='$(INFO_DEPS)'; for i in $$list; do \ + i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ + echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ + rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ + done # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. @@ -700,7 +914,7 @@ distdir: $(DISTFILES) done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook + dist-info dist-hook -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ @@ -832,9 +1046,12 @@ distcleancheck: distclean exit 1; } >&2 check-am: all-am check: check-recursive -all-am: Makefile all-local +all-am: Makefile $(INFO_DEPS) all-local installdirs: installdirs-recursive installdirs-am: + for dir in "$(DESTDIR)$(infodir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive @@ -861,13 +1078,14 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f doc/$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic clean-libtool mostlyclean-am +clean-am: clean-aminfo clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) @@ -877,82 +1095,179 @@ distclean-am: clean-am distclean-generic distclean-libtool \ dvi: dvi-recursive -dvi-am: +dvi-am: $(DVIS) html: html-recursive -html-am: +html-am: $(HTMLS) info: info-recursive -info-am: +info-am: $(INFO_DEPS) -install-data-am: +install-data-am: install-info-am install-dvi: install-dvi-recursive -install-dvi-am: - +install-dvi-am: $(DVIS) + @$(NORMAL_INSTALL) + @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \ + done install-exec-am: install-html: install-html-recursive -install-html-am: - +install-html-am: $(HTMLS) + @$(NORMAL_INSTALL) + @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \ + $(am__strip_dir) \ + d2=$$d$$p; \ + if test -d "$$d2"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \ + $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ + echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \ + $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \ + else \ + list2="$$list2 $$d2"; \ + fi; \ + done; \ + test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ + done; } install-info: install-info-recursive -install-info-am: - +install-info-am: $(INFO_DEPS) + @$(NORMAL_INSTALL) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \ + fi; \ + for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + esac; \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ + for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ + $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ + if test -f $$ifile; then \ + echo "$$ifile"; \ + else : ; fi; \ + done; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done + @$(POST_INSTALL) + @if $(am__can_run_installinfo); then \ + list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ + for file in $$list; do \ + relfile=`echo "$$file" | sed 's|^.*/||'`; \ + echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ + install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ + done; \ + else : ; fi install-man: install-pdf: install-pdf-recursive -install-pdf-am: - +install-pdf-am: $(PDFS) + @$(NORMAL_INSTALL) + @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done install-ps: install-ps-recursive -install-ps-am: - +install-ps-am: $(PSS) + @$(NORMAL_INSTALL) + @list='$(PSS)'; test -n "$(psdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic +maintainer-clean-am: distclean-am maintainer-clean-aminfo \ + maintainer-clean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-generic mostlyclean-libtool +mostlyclean-am: mostlyclean-aminfo mostlyclean-generic \ + mostlyclean-libtool pdf: pdf-recursive -pdf-am: +pdf-am: $(PDFS) ps: ps-recursive -ps-am: +ps-am: $(PSS) -uninstall-am: +uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \ + uninstall-pdf-am uninstall-ps-am .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \ - am--refresh check check-am clean clean-cscope clean-generic \ - clean-libtool cscope cscopelist-am ctags ctags-am dist \ - dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ - dist-tarZ dist-xz dist-zip distcheck distclean \ - distclean-generic distclean-libtool distclean-tags \ - distcleancheck distdir distuninstallcheck dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am + am--refresh check check-am clean clean-aminfo clean-cscope \ + clean-generic clean-libtool cscope cscopelist-am ctags \ + ctags-am dist dist-all dist-bzip2 dist-gzip dist-hook \ + dist-info dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ + distcheck distclean distclean-generic distclean-libtool \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-aminfo \ + maintainer-clean-generic mostlyclean mostlyclean-aminfo \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-dvi-am \ + uninstall-html-am uninstall-info-am uninstall-pdf-am \ + uninstall-ps-am # just in case a subdirectory has added directories @@ -1007,6 +1322,11 @@ world: all skip: .PHONY: skip +# Directly run texlinks. +.PHONY: texlinks +texlinks: + cd $(texlinks_dir) && $(MAKE) $(AM_MAKEFLAGS) run-texlinks + # Special target to run TRIP and TRAP tests and create diffs. .PHONY: triptrap triptrap: diff --git a/Build/source/README.hacking b/Build/source/README.hacking index 2e514cf39f1..ff9270ce967 100644 --- a/Build/source/README.hacking +++ b/Build/source/README.hacking @@ -1,4 +1,4 @@ -Copyright (C) 2009-2012 Peter Breitenlohner <tex-live@tug.org> +Copyright (C) 2009-2013 Peter Breitenlohner <tex-live@tug.org> You may freely use, modify and/or distribute this file. Modifying the TeX Live (TL) build system diff --git a/Build/source/doc/build-tools b/Build/source/doc/build-tools new file mode 100644 index 00000000000..ed21e36af36 --- /dev/null +++ b/Build/source/doc/build-tools @@ -0,0 +1,14 @@ +In general, the @TL{} build system uses the latest released versions of the +@acronym{GNU} build tools, installed directly from the original +@acronym{GNU} releases (e.g., by building them with @* @ @ @ @code{configure +--prefix=/usr/local/gnu} @* and having @env{PATH} start with +@file{/usr/local/gnu/bin}). Currently these are + +@example +autoconf (@acronym{GNU} Autoconf) 2.69 +automake (@acronym{GNU} automake) 1.14 +ltmain.sh (@acronym{GNU} libtool) 2.4.2 +bison (@acronym{GNU} Bison) 3.0 +flex 2.5.37 +m4 (@acronym{GNU} M4) 1.4.16 +@end example diff --git a/Build/source/doc/build.texi b/Build/source/doc/build.texi new file mode 100644 index 00000000000..dc750c824ff --- /dev/null +++ b/Build/source/doc/build.texi @@ -0,0 +1,1044 @@ +@node Build System +@chapter The @TL{} Build System + +@cindex build system +@cindex the @TL{} build system + +The @TL{} build system has been redesigned in 2009, using Autoconf, +Automake, and Libtool. Thus @* @ @ @ @code{configure && make && make check +&& make install} @* or the more or less equivalent top-level @code{Build} +script suffice to build and install the @TL{} programs, where @code{make +check} performs various test of the generated programs that are not +necessary but strongly recommend. + +The main components of the @TL{} build system are @TeX{} specific programs +in subdirectories @file{texk/@var{prog}}, utility programs in subdirectories +@file{utils/@var{prog}}, @TeX{} specific libraries in the subdirectories +@file{texk/kpathsea} and @file{texk/ptexenc} used by the @TeX{} specific +programs, and generic libraries in subdirectories @file{libs/@var{lib}}. + +The primary design goal is modularity. Each program and library module (or +package) specifies its own requirements and properties, such as required +libraries, whether an installed (system) version of a library can be used, +configure options to be seen at the top-level, and more. An explicit list +of all available modules is only kept in one central place. + +A second, related goal is to configure and build each library before +configuring any other (program or library) module using that library. This +allows to check for properties and features of a library built as part of +the @TL{} tree in much the same way as for a system version of that library. + +Most generic libraries and several programs are maintained independently. +The corresponding modules use (parts of) the distributed source tree and +document any modifications of that source tree. + +All this should simplify upgrading of modules maintained independently +and/or integrating new modules into the @TL{} build system. + +@menu +* Prerequisites:: Requirements to Build @TL{}. +* Building and Installing:: Building and Installing @TL{}. +* Source Tree:: The @TL{} Source Tree. +* Configure Options:: List of all Configure Options. +* Cross Compilation:: Cross Compilation. +* Coding Rules:: Coding Rules for @TL{}. +@end menu + +@node Prerequisites +@section Requirements to Build @TL{} + +Building the @TL{} programs requires + +@itemize @bullet +@item +C and C++ compilers + +@item +@acronym{GNU} @command{make} + +@end itemize + +@noindent and uses the libraries included in the @TL{} source tree. +There are, however, some additional requirements + +@itemize @bullet +@item +@file{xindy} requires @acronym{GNU} @command{clisp} and in addition +@command{perl}, @command{latex}, and @command{pdflatex} to build the rules +and/or documentation. + +@item +Autodetection of the @TL{} platform name for @file{biber} requires +@command{perl}. + +@item +@file{xpdfopen} and @file{xdvik} require X11 headers and libraries (often a +``development'' package, not installed by default). + +@item +XeTeX requires an Objective C++ compiler under Mac OS X or otherwise +@file{libfontconfig} (again both headers and library). + +@item +Modification of any @code{.y} or @code{.l} source files requires +@file{bison} or @file{flex} to updatete the corresponding C sources. + +@item +Modification of any part of the build system (@code{M4} macros, +@file{configure.ac}, @file{Makefile.am}, or their fragments) requires +@acronym{GNU} M4, @acronym{GNU} Autoconf, @acronym{GNU} Automake, and +@acronym{GNU} Libtool to update the generated files. + +@end itemize + +@noindent Without the required tools modifying such files or building these +programs must avoided, e.g., via @code{--disable-xindy} or +@code{--without-x}. + +@node Building and Installing +@section Building and Installing @TL{} + +The top-level @file{Build} script can be used to configure and build +everything in a subdirectory (root of the build tree, default @file{Work}), +install everything in an other subdirectory (default @file{inst}), and +finally run @code{make check}. Several details of this process can be +specified via environment variables and a few leading options; all remaining +arguments (assignments or options) are passed to the @file{configure} +script. Or one can run @command{configure} and @command{make} in a suitable +empty subdirectory. + +Running the top-level @file{configure} script configures just the top-level +and the subdirectories @file{libs}, @file{utils}, and @file{texk}. Running +@command{make} at the top-level iterates over all @TeX{} specific libraries, +first configuring the module if necessary to create the @file{Makefile} and +then building it if that is required. Finally @command{make} is run in +@file{libs}, @file{utils}, and @file{texk} to iterate over all generic +libraries, utility programs, and @TeX{} specific programs. Running the +top-level @command{make} a second time iterates again over all library and +program modules but will find nothing to be done. + +In case configuring or building a module fails, one could fix the problem, +remove the subdirectory for the module from the build tree, and rerun the +top-level @command{make} (or @file{Build} script with @code{--no-clean} as +additional first argument). + +With the configure option @code{--disable-all-pkgs} all program and library +modules are configured but none of them are built. The @file{Makefile} for +each such module contains all build rules and dependencies and can be +invoked to build an individual program or library and causes to first build +any required libraries. This build "on demand" procedure is used, e.g., in +the @code{luatex} repository to build Lua@TeX{}, essentially from a subset +of the complete @TL{} tree. + +@subsection Installation Paths + +Running @code{make install} (or @code{make install-strip}) installs +executables in @code{@var{bindir}}, libraries in @code{@var{libdir}}, +headers in @code{@var{includedir}}, data (including "linked scripts") in +@code{@var{datarootdir}/texmf-dist}, manpages in @code{@var{mandir}}, and +@TeX{} info files in @code{@var{infodir}}. The values of these directories +is determined by @command{configure}, either explictly as general options +such as @code{--prefix=@var{prefix}} or @code{--bindir=@var{bindir}}, or by +their usual Autoconf defaults + +@example +@code{@var{prefix}} @code{/usr/local} +@code{@var{exec_prefix}} @code{@var{prefix}} +@code{@var{bindir}} @code{@var{exec_prefix}/bin} +@code{@var{libdir}} @code{@var{exec_prefix}/lib} +@code{@var{includedir}} @code{@var{prefix}/include} +@code{@var{datarootdir}} @code{@var{prefix}/share} +@code{@var{mandir}} @code{@var{datarootdir}/man} +@code{@var{infodir}} @code{@var{datarootdir}/info} +@end example + +@noindent modified as follows: + +@itemize @bullet +@item +If the option @code{--enable-multiplatform} is given (or implied for a +native @TL{} build), @code{/@var{host}}, i.e., the canonical host name is +appended to @code{@var{bindir}} and @code{@var{libdir}}. + +@item +In a native @TL{} build @code{@var{datarootdir}} is set to +@code{@var{prefix}}, @code{@var{mandir}} to +@code{@var{prefix}/texmf-dist/doc/man}, and @code{@var{infodir}} to +@code{@var{prefix}/texmf-dist/doc/info}. +@end itemize + +@noindent The top-level @file{configure} script displays all these +installation paths. + +For a native @TL{} build either for the @TL{} DVD or for an additional +platform the contents of @code{@var{bindir}} should be copied to the +directory @code{Master/bin/@var{arch}} of the @TL{} tree where +@code{@var{arch}} is the @TL{} platform name corresponding to canonical host +name @code{@var{host}}, the contents of @code{@var{libdir}} and +@code{@var{includedir}} can be discarded, and everything else should match +files already present in the @TL{} tree. + +@subsection Linked Scripts + +Quite a few executables are architecture independent Shell, Perl, or other +scripts. Some of them are maintained as part of the @TL{} source tree, but +most are maintained elsewhere with copies under +@file{texk/texlive/linked_scripts}. They are installed under +@code{@var{datarootdir}/texmf-dist/scripts}; for Unix-like systems there is +a symbolic link pointing, e.g., from @code{@var{bindir}/ps2eps} to +@code{@var{datarootdir}/texmf-dist/scripts/ps2eps/ps2eps.pl} whereas for +Windows @code{@var{bindir}/ps2eps.exe} is a copy of a small standard binary +serving the same purpose. One reason for all this is to avoid having many +copies for the same script, but most importantly this allows to invoke the +same Perl or other script under Windows. + +@subsection Distro Builds + +For a distro build you must use @* @ @ @ +@code{--disable-native-texlive-build} @* and should use @* @ @ @ +@code{--with-banner-add=/@var{SomeDistro}} @* to identify your distro. You +may specify @* @ @ @ @code{--enable-shared} @* to build shared @TeX{} +specific libraries and might add @* @ @ @ @code{--disable-static} @* to not +build the static ones. You would like to use @* @ @ @ +@code{--with-system-@var{lib}} for as many libraries as possible and may +then have to add @code{--with-@var{lib}-includes=@var{dir}} and/or +@code{--with-@var{lib}-libdir=@var{dir}}. + +You should specify @* @ @ @ @code{--prefix=/usr} or perhaps +@code{--prefix=/opt/TeXLive} @* and perhaps add @* @ @ @ +@code{--libdir=\$@{exec_prefix@}/lib64} @* for 64bit bi-arch (Linux) +systems. + +To make a usable @TeX{} installation, you have to add (thousands of) support +files in addition to the binaries that are built and installed here. The +support files are maintained completely independently. The best basis for +dealing with them is the @TL{} (plain text) database and/or the @TL{} +installer. + +@node Source Tree +@section The @TL{} Source Tree + +The @TL{} source tree is the subtree of the complete @TL{} tree rooted at +@file{Build/source} and contains the sources for all @TL{} executables as +well as @code{make} rules to build and install them together with some of +their support files. + +@menu +* Top Levels:: The Top-Level Directories. +* Library Modules:: Structure of Library Modules. +* Program Modules:: Structure of Program Modules. +* Extending:: Adding New Modules. +@end menu + +@node Top Levels +@subsection The Top-Level Directories + +@include build-tools + +@noindent These versions should be used to update the generated files (e.g., +@file{configure} or @file{Makefile.in}) in all or parts of the @TL{} tree +when some of their sources have been changed. This can be done explicitly +with the top-level @file{reautoconf} script or implicitly by using the +configure option @code{--enable-maintainer-mode}. + +The subdirectories @file{m4}, @file{build-aux}, and @file{am} contain +@code{M4} macros, auxiliary shell scripts, and @file{Makefile.am} fragments +respectively, all of them used in many places. + +The file @file{m4/kpse-pkgs.m4} contains lists of all program and library +modules. Each such module contributes fragments defining its capabilities +and requirements to the @file{configure.ac} scripts at the top-level and in +the subdirectiories @file{libs}, @file{utils}, and @file{texk}. Modules +absent when generating the @file{configure} scripts for these top levels +are, however, silently ignored. The fragments from program modules supply +configure options to disable or enable building them, those from library +modules specify if an installed (system) version of that library can be +used. This decides which modules need to be built, although all modules +must be configured for the benefit of @file{make} targets such as +@code{dist} or @code{distcheck}. + +The subdirectory @file{extra} contains things which are not part of the TeX +Live build, but are present for convenience, e.g., @file{epstopdf} developed +here or @file{xz} required by the @TL{} installer. + +@node Library Modules +@subsection Structure of Library Modules + +The structure of library modules is best explained with a few examples. + +@subsubsection The @code{png} library in @file{libs/libpng} + +This generic library uses the distributed source tree in, e.g., +@file{libpng-1.5.17} with all modifications recorded in +@file{libpng-1.5.17-PATCHES/*}. The @file{configure.ac} fragment +@file{ac/withenable.ac} contains + +@example +KPSE_WITH_LIB([libpng], [zlib]) +@end example + +@noindent with the module name and indicating the dependency on @code{zlib}. +A third argument @code{tree} would specify that the library from the @TL{} +tree can not be replaced by a system version. That not being the case, a +second fragment @file{ac/libpng.ac} contains + +@example +KPSE_TRY_LIB([libpng], + [#include <png.h>], + [png_structp png; png_voidp io; png_rw_ptr fn; +png_set_read_fn(png, io, fn);]) +@end example + +@noindent and provides the simple C code + +@example +#include <png.h> +int main () +@{ png_structp png; png_voidp io; png_rw_ptr fn; + png_set_read_fn(png, io, fn); + return 0; @} +@end example + +@noindent used to verify the usability of a system version. The similar +macro @code{KPSE_TRY_LIBXX} would provide some C++ code. These fragments +are included by @file{configure.ac} at the top levels. + +A proxy build system consisting of @file{configure.ac} and +@file{Makefile.am} bypasses the distributed one and consequently a few +generated files and auxiliary scripts are removed from the distributed +source tree. + +The module is supplemented by the file @file{m4/kpse-libpng-flags.m4} that +defines the @code{M4} macro @code{KPSE_LIBPNG_FLAGS} used by all modules +depending on this library in their @file{configure.ac} to generate the +@code{make} variables @code{LIBPNG_INCLUDES} for use in @code{CPPFLAGS}, +@code{LIBPNG_LIBS} for use in @code{LDADD}, @code{LIBPNG_DEPEND} for use as +dependency, and @code{LIBPNG_RULE} defining @code{make} rules to rebuild the +library. + +In addition @file{m4/kpse-libpng-flags.m4} supplies the configure option +@code{--with-system-libpng} and uses @code{pkg-config} to determine the flags +required for the system library. + +@subsubsection The @code{zlib} library in @file{libs/zlib} + +This generic library is quite analogous to @code{libpng} but does not depend +on any other library. The file @file{m4/kpse-zlib-flags.m4} supplies the +configure option @code{--with-system-zlib} as well as +@code{--with-zlib-includes} and @code{--with-zlib-libdir} to specify non +standard locations of the @code{zlib} headers and/or library. + +@subsubsection The @code{freetype} library in @file{libs/freetype2} + +In this case @file{configure.ac} is almost trivial and @file{Makefile.am} is +a wrapper that invokes @code{configure} and @code{make} of the distributed +source, followed by @code{make install} with the build tree as destination. +The flags required for the system library are obtained through +@code{freetype-config}. + +@subsubsection The @code{kpathsea} library in @file{texk/kpathsea} + +This is one of the @TeX{} specific libraries that are maintained as part of +@TL{}. Other than the generic libraries they are (static and/or shared) +Libtool libraries and are installed together with the programs. They are, +however, not part of the @TL{} DVD as distributed by @TeX{} user groups. + +It is possible, although quite unusual to specify the configure option +@code{--with-system-kpathsea} in order to use a system version of the +library and it may then be necessary to specify +@code{--with-kpathsea-includes} and/or @code{--with-kpathsea-libdir}. + +In addition to @file{ac/withenable.ac} and @file{ac/kpathsea.ac} there is a +third fragment @file{ac/mktex.ac} included by both @file{ac/withenable.ac} +and @file{configure.ac} that supplies configure options such as +@code{--enable-mktextfm-default} determining the compile time default +whether or not to run @code{mktextfm} to generate a missing @file{.tfm} +file. Note, however, that this can be changed by the command line options +@code{-mktex=tfm} and @code{-no-mktex=tfm} for @TeX{}-like engines. + +@node Program Modules +@subsection Structure of Program Modules + +The structure of program modules is again best explained with a few examples. + +@subsubsection The @code{t1utils} package in @file{utils/t1utils} + +Once again we use the distributed source tree @file{t1utils-1.37} with +modifications documented in @file{t1utils-1.37-PATCHES/*} and a proxy build +system consisting of @file{configure.ac} and @file{Makefile.am}. The +fragment @file{ac/withenable.ac} contains + +@example +KPSE_ENABLE_PROG([t1utils]) +@end example + +@noindent specifying the module name without any dependencies and supplies +the configure option @code{--disable-t1utils}. + +@subsubsection The @code{xindy} package in @file{utils/xindy} + +This module uses the distributed source tree @file{xindy-2.4} with +modifications documented in @file{xindy-2.4-PATCHES/*}, a proxy +@file{configure.ac}, and a @file{Makefile.am} that descends into +@file{xindy-2.4}. The fragment @code{ac/withenable.ac} contains + +@example +KPSE_ENABLE_PROG([xindy], , [disable native]) +m4_include(kpse_TL[utils/xindy/ac/xindy.ac]) +m4_include(kpse_TL[utils/xindy/ac/clisp.ac]) +@end example + +@noindent where @code{disable} in the third argument indicates that +@code{xindy} is only built if explicitly enabled by @code{--enable-xindy} +(because it requires @code{clisp}) and @code{native} disallows cross +compilation. The additional fragments @file{ac/xindy.ac} and +@file{ac/clisp.ac} specify more configure options to be seen at the +top-leved with @file{ac/xindy.ac} also included by @file{configure.ac}. + +@subsubsection The @code{xdvik} package in @file{texk/xdvik} + +This package is maintained as part of the @TL{} tree with sources in its +top-level and the subdirectory @file{gui}. The fragment +@code{ac/withenable.ac} contains + +@example +dnl extra_dirs = texk/xdvik/squeeze +KPSE_ENABLE_PROG([xdvik], [kpathsea freetype2], [x]) +m4_include(kpse_TL[texk/xdvik/ac/xdvik.ac]) +@end example + +@noindent and specifies the dependency on the @code{kpathsea}, +@code{freetype}, and @code{X11} libraries. The @code{M4} comment (following +@code{dnl}) signals the subsidiary @file{squeeze/configure.ac}. This is +needed because the main executable @file{xdvi-bin} (to be installed as, +e.g., @file{xdvi-xaw}) is for the @code{host} system whereas the auxiliary +program @file{squeeze/squeeze} has to run on the @code{build} system and in +a cross compilation they differ. The additional fragment @code{ac/xdvik.ac} +is also included by @file{configure.ac} and supplies the configure option +@code{--with-xdvi-x-toolkit} also seen at the top-level. + +@subsubsection The subdirectory @file{utils/asymptote} + +This subdirectory contains the sources for @file{asy} and @file{xasy} but +due to its complexity and prerequisites (e.g., @file{libGL}) it is not part +the @TL{} build system. These programs must be built and installed +independently, but are contained in the @TL{} DVD together with their +support files. + + +@node Extending +@subsection Adding New Modules + +@subsubsection Adding a New Program Module + +A @TeX{} specific program module in a subdirectory @file{texk/@var{prog}} may use +the @TeX{} specific libraries and is included by adding its name @file{@var{prog}} +to the @code{M4} list @code{kpse_texk_pkgs} defined in +@file{m4/kpse-pkgs.m4}. A generic program module in a subdirectory +@file{utils/@var{prog}} must not use the @TeX{} specific libraries and is included +by adding its name @file{@var{prog}} to the @code{M4} list @code{kpse_utils_pkgs} +in @file{m4/kpse-pkgs.m4}. Apart from the program sources and build system +(@file{configure.ac} and @file{Makefile.am}) the subdirectory +@file{texk/@var{prog}} or @file{utils/@var{prog}} must provide a fragment +@file{ac/withenable.ac} that contains the @code{M4} macro +@code{KPSE_ENABLE_PROG} defined in @file{m4/kpse-setup.m4} with @code{@var{prog}} +as mandatory first argument and three optional arguments: a list of required +libraries from the @TL{} tree, a list of options (@code{disable} if this +module is not to be built without the configure option @code{--enable-@var{prog}}, +@code{native} if cross compilation is not possible, @code{x} if the program +requires X11 libraries), and a comment added to the help text for the +configure option @code{--enable-@var{prog}} or @code{--disable-@var{prog}}. + +If the module requires specific configure options to be seen at the +top-level, they should be defined in an additional fragment +@file{ac/@var{prog}.ac} included from @file{ac/withenable.ac} and +@file{configure.ac}. + +@subsubsection Adding a New Generic Library Module + +A generic library module in a subdirectory @file{libs/@var{lib}} must not depend +on @TeX{} specific libraries and is included by adding its name @file{@var{lib}} +to the @code{M4} list @code{kpse_libs_pkgs} in @file{m4/kpse-pkgs.m4} +(before other libraries from the @TL{} tree it depends on). As for program +modules the subdirectory @file{libs/@var{lib}} must contain the sources and build +system for the library (and any installable support programs) and a fragment +@file{ac/withenable.ac} that contains the @code{M4} macro +@code{KPSE_WITH_LIB} defined in @file{m4/kpse-setup.m4} with @code{@var{lib}} as +mandatory first argument and two optional arguments: a list of required +libraries from the @TL{} tree, and a list of options (currently only +@code{tree} if this library can not be replaced by a system version). + +If a system version can be used, a second fragment @file{ac/@var{lib}.ac} +containing the @code{M4} macro @code{KPSE_TRY_LIB} (or +@code{KPSE_TRY_LIBXX}) with @code{@var{lib}} as mandatory first argument and two +additional arguments for the Autoconf macro @code{AC_LANG_PROGRAM} is used +to compile and link a small C (or C++) program as sanity check for using the +system library. + +In addition a file @file{m4/kpse-@var{lib}-flags} (at the top-level) must define +the @code{M4} macro @code{KPSE_@var{LIB}_FLAGS} (all uppercase) setting up the @code{make} +variables @code{@var{LIB}_INCLUDES}, @code{@var{LIB}_LIBS}, @code{@var{LIB}_DEPEND}, and +@code{@var{LIB}_RULE} with the values required for @code{CPPFLAGS}, @code{LDADD}, +dependencies, and a (multiline) make rule to rebuild the library when +necessary, all that for the library from the @TL{} tree or perhaps for a +system version. + +If a system library is allowed @code{KPSE_@var{LIB}_FLAGS} also provides the +configure option @code{--with-system-@var{lib}} and uses the additional @code{M4} +macro @code{KPSE_@var{LIB}_SYSTEM_FLAGS} to generate the @code{make} variables for +a system library. Furthermore the definition of the @code{M4} macro @code{KPSE_ALL_SYSTEM_FLAGS} in +@file{m4/kpse-pkgs.m4} must be extended by the line @* @ @ @ +@code{AC_REQUIRE([KPSE_@var{LIB}_SYSTEM_FLAGS])} + + +@subsubsection Adding a New @TeX{} Specific Library Module + +A @TeX{} specific library module in a subdirectory @file{texk/@var{lib}} may +depend on other @TeX{} specific libraries but must not depend on any generic +library from the @TL{} tree. It is included as is a generic library module +with these modifications: + +@itemize @bullet +@item +The library name @code{@var{lib}} is added to the @code{M4} list +@code{kpse_texlibs_pkgs} also in @file{m4/kpse-pkgs.m4}. + +@item +The fragment @code{ac/withenable.ac} must use @code{KPSE_WITH_TEXLIB}. + +@end itemize + +@node Configure Options +@section List of all Configure Options + +Corresponding to the large number of program and library modules there are +plenty of configure options, most of which are described here. The command +@* @ @ @ @code{configure --help} @* at the top-level gives an exhaustive +list of all global options and a few important module specific ones, +whereas, e.g., @* @ @ @ @code{texk/lcdf-typetools/configure --help} @* also +displays the @code{lcdf-typetools} specific options not shown at the +top-level. In addition the @code{configure} command line may contain +assignments for important variables. + +Defaults for most options are set at the top-level and propagated explicitly +to all subdirectories. Options specified on the command line are checked +for consistency but are never modified. + +@menu +* Global Options:: Global Configure Options. +* Program Specific Options:: Configure Options for Program Modules. +* Library Specific Options:: Configure Options for Library Modules. +* Variable Assignments:: Interesting and/or Important Variables. +@end menu + +@node Global Options +@subsection Global Configure Options + +@subsubsection @code{--disable-native-texlive-build} + +If enabled (the default), build for a @TL{} binary distribution as shipped +by the user groups; this requires @acronym{GNU} make and implies +@code{--enable-multiplatform} and @code{--enable-cxx-runtime-hack} unless +they are explicitly disabled and enforces @code{--disable-shared}. + +If building @TL{} for a @acronym{GNU}/Linux or other distribution, this would be +disabled and system versions of most libraries would be used (see below). +This may require @acronym{GNU} make, but will also try without it. + +A related option @code{--enable-texlive-build} is automatically passed to +all subdirectories (and can not be disabled). Subdirectories that could +also be built independent from the @TL{} tree (such as @file{utils/xindy} +or @file{texk/dvipng}) can use this option, e.g., to choose @TL{} specific +installation directories. + +@subsubsection @code{--prefix}, @code{--exec-prefix}, @code{--bindir}, @dots{} + +These options specify various installation directories as usual, all of them +still prefixed by the value of an assignment for @code{DESTDIR} on the +@code{make} command line (@pxref{Staged Installs, , Installation in a +temporary location, automake, @acronym{GNU} Automake}). + +@subsubsection @code{--enable-multiplatform} + +If enabled, install executables and libraries in platform dependent +subdirectories of @file{EPREFIX/bin} and @file{EPREFIX/lib} (unless +@code{--bindir=@var{dir}} or @code{--libdir=@var{dir}} is specified), where +@code{EPREFIX} is the value given or implied for @code{exec_prefix}. The +values for @code{bindir} and @code{libdir} are automatically propagated +to all subdirectories. + +@subsubsection @code{--enable-cxx-runtime-hack} + +If enabled and when using @code{g++}, try to statically link with +@code{libstdc++}, somewhat improving portability. + +@subsubsection @code{--enable-libtool-hack} + +If enabled (at present the default for all platforms), prevents +@code{libtool} from linking explicitly with @code{dependency_libs}. + +@subsubsection @code{--enable-shared} + +Build shared versions of the @TeX{} specific (@code{kpathsea} and +@code{ptexenc}) libraries; this is not allowed for a native @TL{} build. + +@subsubsection @code{--disable-largefile} + +Omit large file support (LFS), needed on most 32-bit Unix systems for files +with 2GB or more. The size of @code{DVI} and @code{GF} files must always be +@math{<2}GB. With LFS there should be no limit on the size of @code{PDF} +files created by @file{pdftex} or @code{PS} files created by @file{dvips}. +The size of @code{PDF} images included by @file{pdftex} must, however, be +@math{<4}GB when using @file{xpdf} and @math{<2}GB when using older versions +of @file{poppler} (even on 64-bit systems with LFS), whereas @file{poppler} +Version@tie{}0.23 and later imposes no limit on the size of @code{PDF} +images. + +@subsubsection @code{--without-x} + +Disable all programs using the X Window System. + +@subsubsection @code{--enable-compiler-warnings=[no|min|yes|max|all]} + +Enable various degrees of compiler warnings for (Objective) C and C++. The +default is @code{yes} in maintainer-mode and @code{min} otherwise. This +option defines @code{WARNING_[OBJ]C[XX]FLAGS} but these flags are not used in all +library and program modules. Using them should help to resolve portability +problems. + +At the moment these warning flags are only defined for the @acronym{GNU} +compilers but flags for other compilers could be added when needed. + +@subsubsection @code{--disable-missing} + +Immediately terminate the build process if a requested program or feature +must be disabled, e.g., due to missing libraries. + +@subsubsection @code{--enable-silent-rules} + +Enable the use of less verbose build rules. When using @acronym{GNU} make or +another @code{make} implementation that supports nested variable expansions +you can always specify @code{V=1} on the make command line to get more +respectively @code{V=0} to get less verbosity. + +@subsubsection @code{--without-ln-s} + +Required to build without working @code{ln -s} for a Unix-like system. But +note that @code{make install} will not create anything useful and might even +fail. + +@subsubsection @code{--enable-maintainer-mode} + +Enable @file{make} rules and dependencies not useful (and sometimes +confusing) to the casual user. This requires current versions of the @acronym{GNU} +build tools. + +@node Program Specific Options +@subsection Configure Options for Program Modules + +@subsubsection @code{--enable-@var{prog}}, @code{--disable-@var{prog}} + +Do or do not not build and install the program(s) of the module @code{@var{prog}}. + +@subsubsection @code{--disable-all-pkgs} + +Do not build any program modules, except those explicitly enabled. Without +this option, all modules are built except those explicitly disabled and +those that specify @code{disable} in their @file{ac/withenable.ac} fragment. + +@subsubsection Configure options for @file{texk/web2c} + +@noindent @code{--with-banner-add=@var{str}} @* Add @code{@var{str}} to the +default version string (@code{TeX Live @var{year}} or @code{Web2C +@var{year}}) appended to banner lines. This is ignored for a native @TL{} +build, but distro builds should specify, e.g., @code{/@var{SomeDistro}}. + +@noindent @code{--with-editor=@var{cmd}} @* Specify the command +@code{@var{cmd}} to invoke from the @code{e} option of @TeX{}-like engines, +replacing the default @code{vi +%d '%s'} for Unix or @code{texworks +--position=%d "%s"} for Windows. + +@noindent @code{--enable-auto-core} @* This option causes @TeX{} & METAFONT +to produce a core dump when a particular hacky filename is encountered. + +@noindent @code{--disable-dump-share} @* Make the @code{fmt}/@code{base} +dump files architecture dependent (somewhat faster on little-endian +architectures). + +@noindent @code{--disable-ipc} @* Disable @TeX{}'s @code{--ipc} option. + +@noindent @code{--disable-tex}, @code{--enable-etex}, @dots{} @* Do not or +do build the various @TeX{}, METAFONT, and MetaPost engines (defaults are +defined in the fragment @file{texk/web2c/ac/web2c.ac}). + +@noindent @code{--enable-tex-synctex}, @code{--disable-etex-synctex}, +@dots{} @* Build the various @TeX{}-like engines with or without +@code{SyncTeX} support (ignored for a native @TL{} build, defaults are +again defined in @file{texk/web2c/ac/web2c.ac}). + +@noindent @code{--with-mf-x-toolkit} @* Use the X toolkit (@file{libXt}) for +METAFONT (default is yes). + +@noindent @code{--enable-*win} @* Include various types of other window +support for METAFONT. + +@noindent @code{--disable-mf-nowin} @* Do not build a separate +non-graphically-capable METAFONT. + +@noindent @code{--disable-web-progs} @* Do not build the WEB programs +@file{bibtex}, @dots{}, @file{weave}, e.g., if you just want to (re)build +some engines. + +@noindent @code{--disable-omfonts} @* Build the WEB versions of the +Omega font utilities @file{ofm2opl}, @file{opl2ofm}, @file{ovf2ovp}, and +@code{ovp2ovf} instead of the C version @file{omfonts}. The WEB and C versions +should be roughly equivalent. + +@subsubsection Configure options for @file{texk/bibtex-x} + +The former modules @code{bibtex8} and @code{bibtexu} have been merged into +@code{bibtex-x} (extended BibTeX). + +@noindent @code{--disable-bibtex8} @* Do not build the @file{bibtex8} program. + +@noindent @code{--disable-bibtexu} @* Do not build the @file{bibtexu} program +(building @file{bibtexu} requires @code{ICU} libraries). + +@subsubsection Configure options for @file{texk/dvipdfm-x} + +The former modules @code{dvipdfmx} and @code{xdvipdfmx} have been merged into +@code{dvipdfm-x}. + +@noindent @code{--disable-dvipdfmx} @* Do not build the @file{dvipdfmx} program. + +@noindent @code{--disable-xdvipdfmx} @* Do not build the @file{xdvipdfmx} +program (building @file{xdvipdfmx} requires the @code{freetype} library). + +@subsubsection Configure options for @file{texk/dvisvgm} + +@noindent @code{--with-system-libgs} @* Build @file{dvisvgm} using installed +Ghostscript (@code{gs}) headers and library (not allowed for a native @TL{} +build). The default is to load the @code{gs} library at runtime if +possible, or otherwise disable support for PostScript specials. + +@noindent @code{--with-libgs-includes=@var{dir}}, @code{--with-libgs-libdir=@var{dir}} +@* Specify non standard locations of the Ghostscript headers and library. + +@subsubsection Configure options for @file{texk/xdvik} + +@noindent @code{--with-gs=@var{path}} @* Hardwire the location of Ghostscript +(@file{gs}). + +@noindent @code{--with-xdvi-x-toolkit=@var{kit}} @* Use toolkit @code{@var{kit}} +(@code{motif}/@/@code{xaw}/@/@code{xaw3d}/@/@code{neXtaw}) for @file{xdvi}. +The default is @code{motif} if available, else @code{xaw}. + +@subsubsection Configure options for @file{utils/xindy} + +@noindent @code{--enable-xindy-rules} @* Build and install xindy rules +(default: yes, except for a native @TL{} build). + +@noindent @code{--enable-xindy-docs} @* Build and install xindy +documentation (default: yes, except for a native @TL{} build). + +@noindent @code{--with-clisp-runtime=@var{path}} @* Specifies the full path +of the @code{CLISP} runtime (@file{lisp.run} or @file{lisp.exe}) to be +installed. When specified as @code{default} (the default for a native TeX +Live build) the path is determined by the @code{CLISP} executable; the value +@code{system} (not allowed for a native @TL{} build, but the default for +a non-native one) indicates that @file{xindy} will use the installed version +of @file{clisp} (that must be identical to the one used to build @file{xindy}). + +@noindent @code{--with-recode} @* Use @file{recode} instead of @file{iconv} +to build the xindy rules and documentation, required for some systems where +@file{iconv} is missing or broken. + + +@node Library Specific Options +@subsection Configure Options for Library Modules + +@subsubsection @code{--with-system-@var{lib}} + +Use an installed (system) version of the library @code{@var{lib}}; this option +exists for most libraries, but is not allowed for a native @TL{} build. + +For many libraries there are in addition @code{--with-@var{lib}-includes=@var{dir}} and +@code{--with-@var{lib}-libdir=@var{dir}} to indicate non standard search locations, +others use @file{pkg-config} or similar to determine the required flags. + +The top-level @file{configure} script performs a consistency check for all +required system libraries and bails out early if some of these tests fail. + +@subsubsection Configure Options for @code{kpathsea} + +@noindent @code{--enable-@var{cmd}-default}, +@code{--disable-@var{cmd}-default} @* Determine the compile time default +whether or not to run @var{cmd}=@command{mktexmf}, @command{mktexpk}, +@command{mktextfm}, @command{mkocp}, @command{mkofm}, @command{mktexfmt}, or +@command{mktextex} to generate a missing MF source, PK font, TFM file, OCP +file, OFM file, format file, or @TeX{} source respectively. + +@subsubsection Configure Options for @code{fontconfig} + +Building @code{XeTeX} on non-Mac systems requires @code{fontconfig} headers +and library. + +@noindent @code{--with-fontconfig-includes=@var{dir}}, +@code{--with-fontconfig-libdir=@var{dir}} @* If one or both of these options are +given, the required flags are derived from them; otherwise, they are +determined via @file{pkg-config} (if present). + +@subsubsection Configure Options for system @file{poppler} + +Building @code{LuaTeX} and @code{XeTeX} requires @code{poppler} either from +the @TL{} tree or system headers and library; @code{pdfTeX} requires either +@code{xpdf} from the @TL{} tree or system @code{poppler} headers and +library. + +@noindent @code{--with-system-poppler} @* Use a system version (0.18 or +better) of @code{poppler} for @code{LuaTeX} and @code{XeTeX} (and +@file{pkg-config} to obtain the required flags). + +@noindent @code{--with-system-xpdf} @* Use a system version (0.12 or better) +of @code{poppler} (and @file{pkg-config}) for @code{pdfTeX} instead of +@code{xpdf} from the @TL{} tree. + +REFER to @code{--disable-largefile} + +@node Variable Assignments +@subsection Interesting and/or Important Variables + +The values for these variables can come either from the environment or from +@file{configure} arguments of the form @code{VAR=value}. + +@subsubsection @code{CC}, @code{CXX}, @code{CPPFLAGS}, @dots{} + +As usual, these variables specify the name (or full path) of compilers, +preprocessor flags, and similar. + +@subsubsection @code{FT2_CONFIG}, @code{ICU_CONFIG}, @code{PKG_CONFIG} + +These specify the name (or path) for the @file{freetype-config}, +@file{icu-config}, and @file{pkg-config} commands used to determine the +flags required for system versions of @file{libfreetype}, the @code{ICU} +libraries, or many other libraries. + +@subsubsection @code{CLISP} + +Name (or path) of the @file{clisp} executable, used to build @code{xindy}. + +@subsubsection @code{PERL}, @code{LATEX}, @code{PDFLATEX} + +Name (or path) for the @file{perl}, @file{latex}, and @file{pdflatex} +commands used, e.g., to build the @code{xindy} documentation + +@subsubsection @code{TL_PLATFORM} + +The utility program @file{biber} consists of many components bundled by the +@code{Par::Packer} mechanism of @file{perl}. Therefore they are not built +as part of @TL{} but by the @code{biber} maintainers and third-party +builders. + +In order that @code{make install} creates all executables in @file{bindir}, +the @code{biber} module contains pre-made binaries for the platforms for +which they are available. @TL{} merely checks if an executable is present +for the current platform, and if so, installs it. + +The complication is hidden in the phrase "current platform". @TL{} has its +own ideas about platform names, and the mapping from the canonical system +name determined by @file{config.guess} or @file{config.sub} to the @TL{} +platform name is not trivial. A value given for @code{TL_PLATFORM} is used +as @TL{} platform name. Otherwise, we use copies of the standard +@code{perl} modules @code{TeXLive/TLUtils.pm} and +@code{TeXLive/TLConfig.pm}, to avoid duplicating the platform-detection +logic. + +@subsubsection @code{KPSEWHICH} + +Name (or path) of an installed @file{kpsewhich} binary, used by @code{make +check} to determine the location of, e.g., @file{cmbx10.tfm}. + +@subsubsection @code{MAKE}, @code{SED}, @dots{} + +Name (or path) of @acronym{GNU} make, @acronym{GNU} sed, and similar; used at the +top-level and propagated to all subdirectories. + + +@node Cross Compilation +@section Cross Compilation + +In a cross compilation a @code{build} system is used to create binaries to +be executed on a @code{host} system with different hardware and/or operating +system. + +In simple cases the build system can execute binaries for the host system. +This typically occurs for bi-arch systems where, e.g., @code{i386-linux} +binaries can run on @code{x86_64-linux} systems and @code{win32} binaries +can run on @code{win64} systems. ALthough sometimes called "native cross", +this is technically no cross compilation. In most such cases it suffices to +specify suitable compiler flags. It might be useful to add the configure +option @code{--build=@var{host}} to get the correct canonical host name, but +note that this should not be @code{--host=@var{host}} (@pxref{Hosts and +Cross-Compilation, , , autoconf, Autoconf})! + +@menu +* Configuring:: Configuring for Cross Compilation. +* Problems:: Cross Compilation Problems. +@end menu + +@node Configuring +@subsection Configuring for Cross Compilation + +In a genuine cross compilation binaries for the host system can not execute +on the build system and it is necessary to specify the configure options +@code{--host=@var{host}} and @code{--build=@var{build}} with two different +values. Building binaries requires suitable "cross" tools, e.g., compiler, +linker, and archiver, and perhaps a "cross" version of @command{pkg-config} +and similar to locate host system libraries. Autoconf expects that these +cross tools are given by their usual variables or found under their usual +name prefixed with @code{@var{host}-}. Here a list of such tools and +corresponding variables: + +@example +@file{ar} @code{AR} +@file{freetype-config} @code{FT2_CONFIG} +@file{g++} @code{CXX} +@file{gcc} @code{CC} +@file{icu-config} @code{ICU_CONFIG} +@file{objdump} @code{OBJDUMP} +@file{pkg-config} @code{PKG_CONFIG} +@file{ranlib} @code{RANLIB} +@file{strip} @code{STRIP} +@end example + +@noindent In order to, e.g., build @code{mingw32} binaries on +@code{x86_64-linux} with a cross compiler found as +@file{i386-pc-mingw32-gcc} one would specify @* @ @ @ +@code{--host=i386-pc-mingw32 --build=x86_64-linux-gnu} @* or perhaps @* @ @ +@ @code{--host=mingw32 --build=x86_64-linux CC=i386-pc-mingw32-gcc} @* but +this might require to add @code{CXX} and others. + +Configure arguments such as @code{CFLAGS=@dots{}} refer to the cross compiler. +If necessary, you can specify compilers and flags for the few auxiliary C +and C++ programs required for the build process as configure arguments + +@example +@code{BUILDCC=@dots{}} +@code{BUILDCPPFLAGS=@dots{}} +@code{BUILDCFLAGS=@dots{}} +@code{BUILDCXX=@dots{}} +@code{BUILDCXXFLAGS=@dots{}} +@code{BUILDLDFLAGS=@dots{}} +@end example + +@node Problems +@subsection Cross Compilation Problems + +The fact that binaries for the host system can not be executed on the build +system causes some problems. + +One problem is, that configure tests using @code{AC_RUN_IFELSE} can compile +and link the test program but can not execute it. Such tests should be +avoided if possible and otherwise must supply a pessimistic test result. + +An other problem arises if the build process must execute some (auxiliary or +installable) programs. Auxiliary programs can be placed into a subdirectory +that is configured natively as is done for @file{texk/dvipsk/squeeze}, +@file{texk/web2c/web2c}, and @file{texk/xdvik/squeeze}. The module +@file{libs/freetype} uses the value of @code{CC_BUILD}, @file{gcc} with or +without the build system as prefix, or @file{cc} as compiler for the +auxiliary program. + +The situation for installable programs needed by the build process is +somewhat different. A quite expensive possibility, chosen for the +@code{ICU} libraries in module @file{libs/icu}, is to first compile natively +for the build system and in a second step to use these (uninstalled) +programs during the cross compilation. This would also be possible for the +tools such as @file{tangle} used in the module @file{texk/web2c} to build +the WEB programs, but that would require to first build a native +@code{kpathsea} library. To avoid this complication, cross compilation of +the WEB or CWEB programs in this module requires sufficiently recent +installed versions of @file{tangle}, @file{ctangle}, @file{otangle}, and +@file{tie}. + + +@node Coding Rules +@section Coding Rules for @TL{} + +@subsection Declarations + +@subsubsection ANSI C function prototypes and definitions + +The @TL{} build system no longer supports pre-ANSI C compilers. Thus all +function prototypes and definitions must conform to the ANSI C standard +(including @code{void} in the declaration of C functions with no +parameters). On the other hand @TL{} is built for many different systems, +some of them not supporting the C99 standard. Therefore using C99 features +should be avoided if that can easily be done. In particular C code must not +contain declarations after statements or C++ type comments. + +If some C99 (or later) constructs have to be used, the module should verify +that they are available and otherwise provide an alternative. The module +@file{texk/chktex} uses, e.g., the C99 function @code{stpcpy()} that may or +may not be available on a particular system, uses +@code{AC_CHECK_DECLS([stpcpy])} in @file{configure.ac} to test this, and +provides the perhaps slightly less efficient alternative @* @ @ @ @code{#if +!(defined HAVE_DECL_STPCPY && HAVE_DECL_STPCPY)} @* @ @ @ @code{static +inline char * stpcpy(char *dest, const char *src)} @* @ @ @ @code{@{} @* @ @ +@ @code{@ @ @ return strcpy(dest, src) + strlen(src);} @* @ @ @ @code{@}} @* @ @ +@ @code{#endif} @* in the file @file{Utility.h}. + +@subsubsection Static Functions + +Functions used in only one file should be declared @code{static}; they +require no prototype except as forward declaration. + +@subsubsection Extern Functions + +Functions not declared @code{static}, usually because they are used in +several files, require an (@code{extern}) prototype in exactly one +header which is included in the file defining the function and in all files +using that function --- this is the only way to guarantee consistency +between definition and use of functions. You must not have @code{extern} +declarations sprinkled throughout the C code (with or without comment where +that function is defined). + +@subsubsection Variables + +The declaration of global variables must follow analogous rules, they are +either declared @code{static} if used in only one files or declared +@code{extern} in exactly one header and instantiated in exactly one file. + +@subsection Const + +@subsubsection Function Parameters + +Ideally, a function parameter not modified by the function should be +declared as @code{const}. This is important in particular for strings +(@code{char*}) because the actual arguments are often string literals. It +is perfectly legitimate and safe to use a type @code{char*} value for a type +@code{const char*} variable (in an assignment, as initializer, as function +argument, or as return value). It is equally safe to use a type +@code{char**} value for a type @code{const char*const*} variable, but not +for a type @code{const char**} variable since that might cause modification +of a quantity supposed to be constant. Getting all @code{const} qualifiers +right is often quite involved but can be done in most cases. There are, +however, a few notable exceptions: the X11 headers are full of declarations +that ought to use @code{const} but do not and the same is true to some +extent for @file{libfreetype} (but not anymore for @code{zlib}). + +@subsubsection What Must be Avoided + +The @file{gcc} compiler warnings "assignment discards qualifiers@dots{}" and +analogous warnings for "initialization", "passing arg", or "return" must be +avoided under all circumstances, except when caused by X11 headers/macros or +third party code. + +@subsubsection What Should be Avoided + +A type cast, e.g., from @code{const char*} to @code{char*} does not solve +any problems; depending on warning options, it may only hide them. +Therefore such casts should be avoided whenever possible and otherwise must +be carefully analyzed to make sure that they can not cause the modification +of quantities supposed to be constant. + diff --git a/Build/source/doc/texlive.info b/Build/source/doc/texlive.info new file mode 100644 index 00000000000..d9909a9701c --- /dev/null +++ b/Build/source/doc/texlive.info @@ -0,0 +1,1214 @@ +This is texlive.info, produced by makeinfo version 5.1 from +texlive.texi. + +This file documents the TeX Live system, etc. + + Copyright (C) 2013 Xxx & Yyy. + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above conditions for modified +versions, except that this permission notice may be stated in a +translation approved by the TeX Users Group. +INFO-DIR-SECTION TeX +START-INFO-DIR-ENTRY +* TeX Live: (texlive). The TeX Live System. +END-INFO-DIR-ENTRY + + +File: texlive.info, Node: Top, Next: Introduction, Up: (dir) + +The TeX Live System +******************* + +This manual documents how to build, install, and use TeX Live. It +corresponds to version 2014/dev, released in August 2013. + +* Menu: + +* Introduction:: Overview. + +* Build System:: The TeX Live Build System. + +* Index:: General index. + + +File: texlive.info, Node: Introduction, Next: Build System, Prev: Top, Up: Top + +1 Introduction +************** + +This manual corresponds to version 2014/dev of the TeX Live system, +released in August 2013. + + +File: texlive.info, Node: Build System, Next: Index, Prev: Introduction, Up: Top + +2 The TeX Live Build System +*************************** + +The TeX Live build system has been redesigned in 2009, using Autoconf, +Automake, and Libtool. Thus + 'configure && make && make check && make install' +or the more or less equivalent top-level 'Build' script suffice to build +and install the TeX Live programs, where 'make check' performs various +test of the generated programs that are not necessary but strongly +recommend. + + The main components of the TeX Live build system are TeX specific +programs in subdirectories 'texk/PROG', utility programs in +subdirectories 'utils/PROG', TeX specific libraries in the +subdirectories 'texk/kpathsea' and 'texk/ptexenc' used by the TeX +specific programs, and generic libraries in subdirectories 'libs/LIB'. + + The primary design goal is modularity. Each program and library +module (or package) specifies its own requirements and properties, such +as required libraries, whether an installed (system) version of a +library can be used, configure options to be seen at the top-level, and +more. An explicit list of all available modules is only kept in one +central place. + + A second, related goal is to configure and build each library before +configuring any other (program or library) module using that library. +This allows to check for properties and features of a library built as +part of the TeX Live tree in much the same way as for a system version +of that library. + + Most generic libraries and several programs are maintained +independently. The corresponding modules use (parts of) the distributed +source tree and document any modifications of that source tree. + + All this should simplify upgrading of modules maintained +independently and/or integrating new modules into the TeX Live build +system. + +* Menu: + +* Prerequisites:: Requirements to Build TeX Live. +* Building and Installing:: Building and Installing TeX Live. +* Source Tree:: The TeX Live Source Tree. +* Configure Options:: List of all Configure Options. +* Cross Compilation:: Cross Compilation. +* Coding Rules:: Coding Rules for TeX Live. + + +File: texlive.info, Node: Prerequisites, Next: Building and Installing, Up: Build System + +2.1 Requirements to Build TeX Live +================================== + +Building the TeX Live programs requires + + * C and C++ compilers + + * GNU 'make' + +and uses the libraries included in the TeX Live source tree. There are, +however, some additional requirements + + * 'xindy' requires GNU 'clisp' and in addition 'perl', 'latex', and + 'pdflatex' to build the rules and/or documentation. + + * Autodetection of the TeX Live platform name for 'biber' requires + 'perl'. + + * 'xpdfopen' and 'xdvik' require X11 headers and libraries (often a + "development" package, not installed by default). + + * XeTeX requires an Objective C++ compiler under Mac OS X or + otherwise 'libfontconfig' (again both headers and library). + + * Modification of any '.y' or '.l' source files requires 'bison' or + 'flex' to updatete the corresponding C sources. + + * Modification of any part of the build system ('M4' macros, + 'configure.ac', 'Makefile.am', or their fragments) requires GNU M4, + GNU Autoconf, GNU Automake, and GNU Libtool to update the generated + files. + +Without the required tools modifying such files or building these +programs must avoided, e.g., via '--disable-xindy' or '--without-x'. + + +File: texlive.info, Node: Building and Installing, Next: Source Tree, Prev: Prerequisites, Up: Build System + +2.2 Building and Installing TeX Live +==================================== + +The top-level 'Build' script can be used to configure and build +everything in a subdirectory (root of the build tree, default 'Work'), +install everything in an other subdirectory (default 'inst'), and +finally run 'make check'. Several details of this process can be +specified via environment variables and a few leading options; all +remaining arguments (assignments or options) are passed to the +'configure' script. Or one can run 'configure' and 'make' in a suitable +empty subdirectory. + + Running the top-level 'configure' script configures just the +top-level and the subdirectories 'libs', 'utils', and 'texk'. Running +'make' at the top-level iterates over all TeX specific libraries, first +configuring the module if necessary to create the 'Makefile' and then +building it if that is required. Finally 'make' is run in 'libs', +'utils', and 'texk' to iterate over all generic libraries, utility +programs, and TeX specific programs. Running the top-level 'make' a +second time iterates again over all library and program modules but will +find nothing to be done. + + In case configuring or building a module fails, one could fix the +problem, remove the subdirectory for the module from the build tree, and +rerun the top-level 'make' (or 'Build' script with '--no-clean' as +additional first argument). + + With the configure option '--disable-all-pkgs' all program and +library modules are configured but none of them are built. The +'Makefile' for each such module contains all build rules and +dependencies and can be invoked to build an individual program or +library and causes to first build any required libraries. This build +"on demand" procedure is used, e.g., in the 'luatex' repository to build +LuaTeX, essentially from a subset of the complete TeX Live tree. + +2.2.1 Installation Paths +------------------------ + +Running 'make install' (or 'make install-strip') installs executables in +'BINDIR', libraries in 'LIBDIR', headers in 'INCLUDEDIR', data +(including "linked scripts") in 'DATAROOTDIR/texmf-dist', manpages in +'MANDIR', and TeX info files in 'INFODIR'. The values of these +directories is determined by 'configure', either explictly as general +options such as '--prefix=PREFIX' or '--bindir=BINDIR', or by their +usual Autoconf defaults + + PREFIX /usr/local + EXEC_PREFIX PREFIX + BINDIR EXEC_PREFIX/bin + LIBDIR EXEC_PREFIX/lib + INCLUDEDIR PREFIX/include + DATAROOTDIR PREFIX/share + MANDIR DATAROOTDIR/man + INFODIR DATAROOTDIR/info + +modified as follows: + + * If the option '--enable-multiplatform' is given (or implied for a + native TeX Live build), '/HOST', i.e., the canonical host name is + appended to 'BINDIR' and 'LIBDIR'. + + * In a native TeX Live build 'DATAROOTDIR' is set to 'PREFIX', + 'MANDIR' to 'PREFIX/texmf-dist/doc/man', and 'INFODIR' to + 'PREFIX/texmf-dist/doc/info'. + +The top-level 'configure' script displays all these installation paths. + + For a native TeX Live build either for the TeX Live DVD or for an +additional platform the contents of 'BINDIR' should be copied to the +directory 'Master/bin/ARCH' of the TeX Live tree where 'ARCH' is the TeX +Live platform name corresponding to canonical host name 'HOST', the +contents of 'LIBDIR' and 'INCLUDEDIR' can be discarded, and everything +else should match files already present in the TeX Live tree. + +2.2.2 Linked Scripts +-------------------- + +Quite a few executables are architecture independent Shell, Perl, or +other scripts. Some of them are maintained as part of the TeX Live +source tree, but most are maintained elsewhere with copies under +'texk/texlive/linked_scripts'. They are installed under +'DATAROOTDIR/texmf-dist/scripts'; for Unix-like systems there is a +symbolic link pointing, e.g., from 'BINDIR/ps2eps' to +'DATAROOTDIR/texmf-dist/scripts/ps2eps/ps2eps.pl' whereas for Windows +'BINDIR/ps2eps.exe' is a copy of a small standard binary serving the +same purpose. One reason for all this is to avoid having many copies +for the same script, but most importantly this allows to invoke the same +Perl or other script under Windows. + +2.2.3 Distro Builds +------------------- + +For a distro build you must use + '--disable-native-texlive-build' +and should use + '--with-banner-add=/SOMEDISTRO' +to identify your distro. You may specify + '--enable-shared' +to build shared TeX specific libraries and might add + '--disable-static' +to not build the static ones. You would like to use + '--with-system-LIB' for as many libraries as possible and may then +have to add '--with-LIB-includes=DIR' and/or '--with-LIB-libdir=DIR'. + + You should specify + '--prefix=/usr' or perhaps '--prefix=/opt/TeXLive' +and perhaps add + '--libdir=\${exec_prefix}/lib64' +for 64bit bi-arch (Linux) systems. + + To make a usable TeX installation, you have to add (thousands of) +support files in addition to the binaries that are built and installed +here. The support files are maintained completely independently. The +best basis for dealing with them is the TeX Live (plain text) database +and/or the TeX Live installer. + + +File: texlive.info, Node: Source Tree, Next: Configure Options, Prev: Building and Installing, Up: Build System + +2.3 The TeX Live Source Tree +============================ + +The TeX Live source tree is the subtree of the complete TeX Live tree +rooted at 'Build/source' and contains the sources for all TeX Live +executables as well as 'make' rules to build and install them together +with some of their support files. + +* Menu: + +* Top Levels:: The Top-Level Directories. +* Library Modules:: Structure of Library Modules. +* Program Modules:: Structure of Program Modules. +* Extending:: Adding New Modules. + + +File: texlive.info, Node: Top Levels, Next: Library Modules, Up: Source Tree + +2.3.1 The Top-Level Directories +------------------------------- + +In general, the TeX Live build system uses the latest released versions +of the GNU build tools, installed directly from the original GNU +releases (e.g., by building them with + 'configure --prefix=/usr/local/gnu' +and having 'PATH' start with '/usr/local/gnu/bin'). Currently these are + + autoconf (GNU Autoconf) 2.69 + automake (GNU automake) 1.14 + ltmain.sh (GNU libtool) 2.4.2 + bison (GNU Bison) 3.0 + flex 2.5.37 + m4 (GNU M4) 1.4.16 + +These versions should be used to update the generated files (e.g., +'configure' or 'Makefile.in') in all or parts of the TeX Live tree when +some of their sources have been changed. This can be done explicitly +with the top-level 'reautoconf' script or implicitly by using the +configure option '--enable-maintainer-mode'. + + The subdirectories 'm4', 'build-aux', and 'am' contain 'M4' macros, +auxiliary shell scripts, and 'Makefile.am' fragments respectively, all +of them used in many places. + + The file 'm4/kpse-pkgs.m4' contains lists of all program and library +modules. Each such module contributes fragments defining its +capabilities and requirements to the 'configure.ac' scripts at the +top-level and in the subdirectiories 'libs', 'utils', and 'texk'. +Modules absent when generating the 'configure' scripts for these top +levels are, however, silently ignored. The fragments from program +modules supply configure options to disable or enable building them, +those from library modules specify if an installed (system) version of +that library can be used. This decides which modules need to be built, +although all modules must be configured for the benefit of 'make' +targets such as 'dist' or 'distcheck'. + + The subdirectory 'extra' contains things which are not part of the +TeX Live build, but are present for convenience, e.g., 'epstopdf' +developed here or 'xz' required by the TeX Live installer. + + +File: texlive.info, Node: Library Modules, Next: Program Modules, Prev: Top Levels, Up: Source Tree + +2.3.2 Structure of Library Modules +---------------------------------- + +The structure of library modules is best explained with a few examples. + +2.3.2.1 The 'png' library in 'libs/libpng' +.......................................... + +This generic library uses the distributed source tree in, e.g., +'libpng-1.5.17' with all modifications recorded in +'libpng-1.5.17-PATCHES/*'. The 'configure.ac' fragment +'ac/withenable.ac' contains + + KPSE_WITH_LIB([libpng], [zlib]) + +with the module name and indicating the dependency on 'zlib'. A third +argument 'tree' would specify that the library from the TeX Live tree +can not be replaced by a system version. That not being the case, a +second fragment 'ac/libpng.ac' contains + + KPSE_TRY_LIB([libpng], + [#include <png.h>], + [png_structp png; png_voidp io; png_rw_ptr fn; + png_set_read_fn(png, io, fn);]) + +and provides the simple C code + + #include <png.h> + int main () + { png_structp png; png_voidp io; png_rw_ptr fn; + png_set_read_fn(png, io, fn); + return 0; } + +used to verify the usability of a system version. The similar macro +'KPSE_TRY_LIBXX' would provide some C++ code. These fragments are +included by 'configure.ac' at the top levels. + + A proxy build system consisting of 'configure.ac' and 'Makefile.am' +bypasses the distributed one and consequently a few generated files and +auxiliary scripts are removed from the distributed source tree. + + The module is supplemented by the file 'm4/kpse-libpng-flags.m4' that +defines the 'M4' macro 'KPSE_LIBPNG_FLAGS' used by all modules depending +on this library in their 'configure.ac' to generate the 'make' variables +'LIBPNG_INCLUDES' for use in 'CPPFLAGS', 'LIBPNG_LIBS' for use in +'LDADD', 'LIBPNG_DEPEND' for use as dependency, and 'LIBPNG_RULE' +defining 'make' rules to rebuild the library. + + In addition 'm4/kpse-libpng-flags.m4' supplies the configure option +'--with-system-libpng' and uses 'pkg-config' to determine the flags +required for the system library. + +2.3.2.2 The 'zlib' library in 'libs/zlib' +......................................... + +This generic library is quite analogous to 'libpng' but does not depend +on any other library. The file 'm4/kpse-zlib-flags.m4' supplies the +configure option '--with-system-zlib' as well as '--with-zlib-includes' +and '--with-zlib-libdir' to specify non standard locations of the 'zlib' +headers and/or library. + +2.3.2.3 The 'freetype' library in 'libs/freetype2' +.................................................. + +In this case 'configure.ac' is almost trivial and 'Makefile.am' is a +wrapper that invokes 'configure' and 'make' of the distributed source, +followed by 'make install' with the build tree as destination. The +flags required for the system library are obtained through +'freetype-config'. + +2.3.2.4 The 'kpathsea' library in 'texk/kpathsea' +................................................. + +This is one of the TeX specific libraries that are maintained as part of +TeX Live. Other than the generic libraries they are (static and/or +shared) Libtool libraries and are installed together with the programs. +They are, however, not part of the TeX Live DVD as distributed by TeX +user groups. + + It is possible, although quite unusual to specify the configure +option '--with-system-kpathsea' in order to use a system version of the +library and it may then be necessary to specify +'--with-kpathsea-includes' and/or '--with-kpathsea-libdir'. + + In addition to 'ac/withenable.ac' and 'ac/kpathsea.ac' there is a +third fragment 'ac/mktex.ac' included by both 'ac/withenable.ac' and +'configure.ac' that supplies configure options such as +'--enable-mktextfm-default' determining the compile time default whether +or not to run 'mktextfm' to generate a missing '.tfm' file. Note, +however, that this can be changed by the command line options +'-mktex=tfm' and '-no-mktex=tfm' for TeX-like engines. + + +File: texlive.info, Node: Program Modules, Next: Extending, Prev: Library Modules, Up: Source Tree + +2.3.3 Structure of Program Modules +---------------------------------- + +The structure of program modules is again best explained with a few +examples. + +2.3.3.1 The 't1utils' package in 'utils/t1utils' +................................................ + +Once again we use the distributed source tree 't1utils-1.37' with +modifications documented in 't1utils-1.37-PATCHES/*' and a proxy build +system consisting of 'configure.ac' and 'Makefile.am'. The fragment +'ac/withenable.ac' contains + + KPSE_ENABLE_PROG([t1utils]) + +specifying the module name without any dependencies and supplies the +configure option '--disable-t1utils'. + +2.3.3.2 The 'xindy' package in 'utils/xindy' +............................................ + +This module uses the distributed source tree 'xindy-2.4' with +modifications documented in 'xindy-2.4-PATCHES/*', a proxy +'configure.ac', and a 'Makefile.am' that descends into 'xindy-2.4'. The +fragment 'ac/withenable.ac' contains + + KPSE_ENABLE_PROG([xindy], , [disable native]) + m4_include(kpse_TL[utils/xindy/ac/xindy.ac]) + m4_include(kpse_TL[utils/xindy/ac/clisp.ac]) + +where 'disable' in the third argument indicates that 'xindy' is only +built if explicitly enabled by '--enable-xindy' (because it requires +'clisp') and 'native' disallows cross compilation. The additional +fragments 'ac/xindy.ac' and 'ac/clisp.ac' specify more configure options +to be seen at the top-leved with 'ac/xindy.ac' also included by +'configure.ac'. + +2.3.3.3 The 'xdvik' package in 'texk/xdvik' +........................................... + +This package is maintained as part of the TeX Live tree with sources in +its top-level and the subdirectory 'gui'. The fragment +'ac/withenable.ac' contains + + dnl extra_dirs = texk/xdvik/squeeze + KPSE_ENABLE_PROG([xdvik], [kpathsea freetype2], [x]) + m4_include(kpse_TL[texk/xdvik/ac/xdvik.ac]) + +and specifies the dependency on the 'kpathsea', 'freetype', and 'X11' +libraries. The 'M4' comment (following 'dnl') signals the subsidiary +'squeeze/configure.ac'. This is needed because the main executable +'xdvi-bin' (to be installed as, e.g., 'xdvi-xaw') is for the 'host' +system whereas the auxiliary program 'squeeze/squeeze' has to run on the +'build' system and in a cross compilation they differ. The additional +fragment 'ac/xdvik.ac' is also included by 'configure.ac' and supplies +the configure option '--with-xdvi-x-toolkit' also seen at the top-level. + +2.3.3.4 The subdirectory 'utils/asymptote' +.......................................... + +This subdirectory contains the sources for 'asy' and 'xasy' but due to +its complexity and prerequisites (e.g., 'libGL') it is not part the TeX +Live build system. These programs must be built and installed +independently, but are contained in the TeX Live DVD together with their +support files. + + +File: texlive.info, Node: Extending, Prev: Program Modules, Up: Source Tree + +2.3.4 Adding New Modules +------------------------ + +2.3.4.1 Adding a New Program Module +................................... + +A TeX specific program module in a subdirectory 'texk/PROG' may use the +TeX specific libraries and is included by adding its name 'PROG' to the +'M4' list 'kpse_texk_pkgs' defined in 'm4/kpse-pkgs.m4'. A generic +program module in a subdirectory 'utils/PROG' must not use the TeX +specific libraries and is included by adding its name 'PROG' to the 'M4' +list 'kpse_utils_pkgs' in 'm4/kpse-pkgs.m4'. Apart from the program +sources and build system ('configure.ac' and 'Makefile.am') the +subdirectory 'texk/PROG' or 'utils/PROG' must provide a fragment +'ac/withenable.ac' that contains the 'M4' macro 'KPSE_ENABLE_PROG' +defined in 'm4/kpse-setup.m4' with 'PROG' as mandatory first argument +and three optional arguments: a list of required libraries from the TeX +Live tree, a list of options ('disable' if this module is not to be +built without the configure option '--enable-PROG', 'native' if cross +compilation is not possible, 'x' if the program requires X11 libraries), +and a comment added to the help text for the configure option +'--enable-PROG' or '--disable-PROG'. + + If the module requires specific configure options to be seen at the +top-level, they should be defined in an additional fragment 'ac/PROG.ac' +included from 'ac/withenable.ac' and 'configure.ac'. + +2.3.4.2 Adding a New Generic Library Module +........................................... + +A generic library module in a subdirectory 'libs/LIB' must not depend on +TeX specific libraries and is included by adding its name 'LIB' to the +'M4' list 'kpse_libs_pkgs' in 'm4/kpse-pkgs.m4' (before other libraries +from the TeX Live tree it depends on). As for program modules the +subdirectory 'libs/LIB' must contain the sources and build system for +the library (and any installable support programs) and a fragment +'ac/withenable.ac' that contains the 'M4' macro 'KPSE_WITH_LIB' defined +in 'm4/kpse-setup.m4' with 'LIB' as mandatory first argument and two +optional arguments: a list of required libraries from the TeX Live tree, +and a list of options (currently only 'tree' if this library can not be +replaced by a system version). + + If a system version can be used, a second fragment 'ac/LIB.ac' +containing the 'M4' macro 'KPSE_TRY_LIB' (or 'KPSE_TRY_LIBXX') with +'LIB' as mandatory first argument and two additional arguments for the +Autoconf macro 'AC_LANG_PROGRAM' is used to compile and link a small C +(or C++) program as sanity check for using the system library. + + In addition a file 'm4/kpse-LIB-flags' (at the top-level) must define +the 'M4' macro 'KPSE_LIB_FLAGS' (all uppercase) setting up the 'make' +variables 'LIB_INCLUDES', 'LIB_LIBS', 'LIB_DEPEND', and 'LIB_RULE' with +the values required for 'CPPFLAGS', 'LDADD', dependencies, and a +(multiline) make rule to rebuild the library when necessary, all that +for the library from the TeX Live tree or perhaps for a system version. + + If a system library is allowed 'KPSE_LIB_FLAGS' also provides the +configure option '--with-system-LIB' and uses the additional 'M4' macro +'KPSE_LIB_SYSTEM_FLAGS' to generate the 'make' variables for a system +library. Furthermore the definition of the 'M4' macro +'KPSE_ALL_SYSTEM_FLAGS' in 'm4/kpse-pkgs.m4' must be extended by the +line + 'AC_REQUIRE([KPSE_LIB_SYSTEM_FLAGS])' + +2.3.4.3 Adding a New TeX Specific Library Module +................................................ + +A TeX specific library module in a subdirectory 'texk/LIB' may depend on +other TeX specific libraries but must not depend on any generic library +from the TeX Live tree. It is included as is a generic library module +with these modifications: + + * The library name 'LIB' is added to the 'M4' list + 'kpse_texlibs_pkgs' also in 'm4/kpse-pkgs.m4'. + + * The fragment 'ac/withenable.ac' must use 'KPSE_WITH_TEXLIB'. + + +File: texlive.info, Node: Configure Options, Next: Cross Compilation, Prev: Source Tree, Up: Build System + +2.4 List of all Configure Options +================================= + +Corresponding to the large number of program and library modules there +are plenty of configure options, most of which are described here. The +command + 'configure --help' +at the top-level gives an exhaustive list of all global options and a +few important module specific ones, whereas, e.g., + 'texk/lcdf-typetools/configure --help' +also displays the 'lcdf-typetools' specific options not shown at the +top-level. In addition the 'configure' command line may contain +assignments for important variables. + + Defaults for most options are set at the top-level and propagated +explicitly to all subdirectories. Options specified on the command line +are checked for consistency but are never modified. + +* Menu: + +* Global Options:: Global Configure Options. +* Program Specific Options:: Configure Options for Program Modules. +* Library Specific Options:: Configure Options for Library Modules. +* Variable Assignments:: Interesting and/or Important Variables. + + +File: texlive.info, Node: Global Options, Next: Program Specific Options, Up: Configure Options + +2.4.1 Global Configure Options +------------------------------ + +2.4.1.1 '--disable-native-texlive-build' +........................................ + +If enabled (the default), build for a TeX Live binary distribution as +shipped by the user groups; this requires GNU make and implies +'--enable-multiplatform' and '--enable-cxx-runtime-hack' unless they are +explicitly disabled and enforces '--disable-shared'. + + If building TeX Live for a GNU/Linux or other distribution, this +would be disabled and system versions of most libraries would be used +(see below). This may require GNU make, but will also try without it. + + A related option '--enable-texlive-build' is automatically passed to +all subdirectories (and can not be disabled). Subdirectories that could +also be built independent from the TeX Live tree (such as 'utils/xindy' +or 'texk/dvipng') can use this option, e.g., to choose TeX Live specific +installation directories. + +2.4.1.2 '--prefix', '--exec-prefix', '--bindir', ... +.................................................... + +These options specify various installation directories as usual, all of +them still prefixed by the value of an assignment for 'DESTDIR' on the +'make' command line (*note Installation in a temporary location: +(automake)Staged Installs.). + +2.4.1.3 '--enable-multiplatform' +................................ + +If enabled, install executables and libraries in platform dependent +subdirectories of 'EPREFIX/bin' and 'EPREFIX/lib' (unless '--bindir=DIR' +or '--libdir=DIR' is specified), where 'EPREFIX' is the value given or +implied for 'exec_prefix'. The values for 'bindir' and 'libdir' are +automatically propagated to all subdirectories. + +2.4.1.4 '--enable-cxx-runtime-hack' +................................... + +If enabled and when using 'g++', try to statically link with +'libstdc++', somewhat improving portability. + +2.4.1.5 '--enable-libtool-hack' +............................... + +If enabled (at present the default for all platforms), prevents +'libtool' from linking explicitly with 'dependency_libs'. + +2.4.1.6 '--enable-shared' +......................... + +Build shared versions of the TeX specific ('kpathsea' and 'ptexenc') +libraries; this is not allowed for a native TeX Live build. + +2.4.1.7 '--disable-largefile' +............................. + +Omit large file support (LFS), needed on most 32-bit Unix systems for +files with 2GB or more. The size of 'DVI' and 'GF' files must always be +<2GB. With LFS there should be no limit on the size of 'PDF' files +created by 'pdftex' or 'PS' files created by 'dvips'. The size of 'PDF' +images included by 'pdftex' must, however, be <4GB when using 'xpdf' and +<2GB when using older versions of 'poppler' (even on 64-bit systems with +LFS), whereas 'poppler' Version 0.23 and later imposes no limit on the +size of 'PDF' images. + +2.4.1.8 '--without-x' +..................... + +Disable all programs using the X Window System. + +2.4.1.9 '--enable-compiler-warnings=[no|min|yes|max|all]' +......................................................... + +Enable various degrees of compiler warnings for (Objective) C and C++. +The default is 'yes' in maintainer-mode and 'min' otherwise. This +option defines 'WARNING_[OBJ]C[XX]FLAGS' but these flags are not used in +all library and program modules. Using them should help to resolve +portability problems. + + At the moment these warning flags are only defined for the GNU +compilers but flags for other compilers could be added when needed. + +2.4.1.10 '--disable-missing' +............................ + +Immediately terminate the build process if a requested program or +feature must be disabled, e.g., due to missing libraries. + +2.4.1.11 '--enable-silent-rules' +................................ + +Enable the use of less verbose build rules. When using GNU make or +another 'make' implementation that supports nested variable expansions +you can always specify 'V=1' on the make command line to get more +respectively 'V=0' to get less verbosity. + +2.4.1.12 '--without-ln-s' +......................... + +Required to build without working 'ln -s' for a Unix-like system. But +note that 'make install' will not create anything useful and might even +fail. + +2.4.1.13 '--enable-maintainer-mode' +................................... + +Enable 'make' rules and dependencies not useful (and sometimes +confusing) to the casual user. This requires current versions of the +GNU build tools. + + +File: texlive.info, Node: Program Specific Options, Next: Library Specific Options, Prev: Global Options, Up: Configure Options + +2.4.2 Configure Options for Program Modules +------------------------------------------- + +2.4.2.1 '--enable-PROG', '--disable-PROG' +......................................... + +Do or do not not build and install the program(s) of the module 'PROG'. + +2.4.2.2 '--disable-all-pkgs' +............................ + +Do not build any program modules, except those explicitly enabled. +Without this option, all modules are built except those explicitly +disabled and those that specify 'disable' in their 'ac/withenable.ac' +fragment. + +2.4.2.3 Configure options for 'texk/web2c' +.......................................... + +'--with-banner-add=STR' +Add 'STR' to the default version string ('TeX Live YEAR' or 'Web2C +YEAR') appended to banner lines. This is ignored for a native TeX Live +build, but distro builds should specify, e.g., '/SOMEDISTRO'. + +'--with-editor=CMD' +Specify the command 'CMD' to invoke from the 'e' option of TeX-like +engines, replacing the default 'vi +%d '%s'' for Unix or 'texworks +--position=%d "%s"' for Windows. + +'--enable-auto-core' +This option causes TeX & METAFONT to produce a core dump when a +particular hacky filename is encountered. + +'--disable-dump-share' +Make the 'fmt'/'base' dump files architecture dependent (somewhat faster +on little-endian architectures). + +'--disable-ipc' +Disable TeX's '--ipc' option. + +'--disable-tex', '--enable-etex', ... +Do not or do build the various TeX, METAFONT, and MetaPost engines +(defaults are defined in the fragment 'texk/web2c/ac/web2c.ac'). + +'--enable-tex-synctex', '--disable-etex-synctex', ... +Build the various TeX-like engines with or without 'SyncTeX' support +(ignored for a native TeX Live build, defaults are again defined in +'texk/web2c/ac/web2c.ac'). + +'--with-mf-x-toolkit' +Use the X toolkit ('libXt') for METAFONT (default is yes). + +'--enable-*win' +Include various types of other window support for METAFONT. + +'--disable-mf-nowin' +Do not build a separate non-graphically-capable METAFONT. + +'--disable-web-progs' +Do not build the WEB programs 'bibtex', ..., 'weave', e.g., if you just +want to (re)build some engines. + +'--disable-omfonts' +Build the WEB versions of the Omega font utilities 'ofm2opl', 'opl2ofm', +'ovf2ovp', and 'ovp2ovf' instead of the C version 'omfonts'. The WEB +and C versions should be roughly equivalent. + +2.4.2.4 Configure options for 'texk/bibtex-x' +............................................. + +The former modules 'bibtex8' and 'bibtexu' have been merged into +'bibtex-x' (extended BibTeX). + +'--disable-bibtex8' +Do not build the 'bibtex8' program. + +'--disable-bibtexu' +Do not build the 'bibtexu' program (building 'bibtexu' requires 'ICU' +libraries). + +2.4.2.5 Configure options for 'texk/dvipdfm-x' +.............................................. + +The former modules 'dvipdfmx' and 'xdvipdfmx' have been merged into +'dvipdfm-x'. + +'--disable-dvipdfmx' +Do not build the 'dvipdfmx' program. + +'--disable-xdvipdfmx' +Do not build the 'xdvipdfmx' program (building 'xdvipdfmx' requires the +'freetype' library). + +2.4.2.6 Configure options for 'texk/dvisvgm' +............................................ + +'--with-system-libgs' +Build 'dvisvgm' using installed Ghostscript ('gs') headers and library +(not allowed for a native TeX Live build). The default is to load the +'gs' library at runtime if possible, or otherwise disable support for +PostScript specials. + +'--with-libgs-includes=DIR', '--with-libgs-libdir=DIR' +Specify non standard locations of the Ghostscript headers and library. + +2.4.2.7 Configure options for 'texk/xdvik' +.......................................... + +'--with-gs=PATH' +Hardwire the location of Ghostscript ('gs'). + +'--with-xdvi-x-toolkit=KIT' +Use toolkit 'KIT' ('motif'/'xaw'/'xaw3d'/'neXtaw') for 'xdvi'. The +default is 'motif' if available, else 'xaw'. + +2.4.2.8 Configure options for 'utils/xindy' +........................................... + +'--enable-xindy-rules' +Build and install xindy rules (default: yes, except for a native TeX +Live build). + +'--enable-xindy-docs' +Build and install xindy documentation (default: yes, except for a native +TeX Live build). + +'--with-clisp-runtime=PATH' +Specifies the full path of the 'CLISP' runtime ('lisp.run' or +'lisp.exe') to be installed. When specified as 'default' (the default +for a native TeX Live build) the path is determined by the 'CLISP' +executable; the value 'system' (not allowed for a native TeX Live build, +but the default for a non-native one) indicates that 'xindy' will use +the installed version of 'clisp' (that must be identical to the one used +to build 'xindy'). + +'--with-recode' +Use 'recode' instead of 'iconv' to build the xindy rules and +documentation, required for some systems where 'iconv' is missing or +broken. + + +File: texlive.info, Node: Library Specific Options, Next: Variable Assignments, Prev: Program Specific Options, Up: Configure Options + +2.4.3 Configure Options for Library Modules +------------------------------------------- + +2.4.3.1 '--with-system-LIB' +........................... + +Use an installed (system) version of the library 'LIB'; this option +exists for most libraries, but is not allowed for a native TeX Live +build. + + For many libraries there are in addition '--with-LIB-includes=DIR' +and '--with-LIB-libdir=DIR' to indicate non standard search locations, +others use 'pkg-config' or similar to determine the required flags. + + The top-level 'configure' script performs a consistency check for all +required system libraries and bails out early if some of these tests +fail. + +2.4.3.2 Configure Options for 'kpathsea' +........................................ + +'--enable-CMD-default', '--disable-CMD-default' +Determine the compile time default whether or not to run CMD='mktexmf', +'mktexpk', 'mktextfm', 'mkocp', 'mkofm', 'mktexfmt', or 'mktextex' to +generate a missing MF source, PK font, TFM file, OCP file, OFM file, +format file, or TeX source respectively. + +2.4.3.3 Configure Options for 'fontconfig' +.......................................... + +Building 'XeTeX' on non-Mac systems requires 'fontconfig' headers and +library. + +'--with-fontconfig-includes=DIR', '--with-fontconfig-libdir=DIR' +If one or both of these options are given, the required flags are +derived from them; otherwise, they are determined via 'pkg-config' (if +present). + +2.4.3.4 Configure Options for system 'poppler' +.............................................. + +Building 'LuaTeX' and 'XeTeX' requires 'poppler' either from the TeX +Live tree or system headers and library; 'pdfTeX' requires either 'xpdf' +from the TeX Live tree or system 'poppler' headers and library. + +'--with-system-poppler' +Use a system version (0.18 or better) of 'poppler' for 'LuaTeX' and +'XeTeX' (and 'pkg-config' to obtain the required flags). + +'--with-system-xpdf' +Use a system version (0.12 or better) of 'poppler' (and 'pkg-config') +for 'pdfTeX' instead of 'xpdf' from the TeX Live tree. + + REFER to '--disable-largefile' + + +File: texlive.info, Node: Variable Assignments, Prev: Library Specific Options, Up: Configure Options + +2.4.4 Interesting and/or Important Variables +-------------------------------------------- + +The values for these variables can come either from the environment or +from 'configure' arguments of the form 'VAR=value'. + +2.4.4.1 'CC', 'CXX', 'CPPFLAGS', ... +.................................... + +As usual, these variables specify the name (or full path) of compilers, +preprocessor flags, and similar. + +2.4.4.2 'FT2_CONFIG', 'ICU_CONFIG', 'PKG_CONFIG' +................................................ + +These specify the name (or path) for the 'freetype-config', +'icu-config', and 'pkg-config' commands used to determine the flags +required for system versions of 'libfreetype', the 'ICU' libraries, or +many other libraries. + +2.4.4.3 'CLISP' +............... + +Name (or path) of the 'clisp' executable, used to build 'xindy'. + +2.4.4.4 'PERL', 'LATEX', 'PDFLATEX' +................................... + +Name (or path) for the 'perl', 'latex', and 'pdflatex' commands used, +e.g., to build the 'xindy' documentation + +2.4.4.5 'TL_PLATFORM' +..................... + +The utility program 'biber' consists of many components bundled by the +'Par::Packer' mechanism of 'perl'. Therefore they are not built as part +of TeX Live but by the 'biber' maintainers and third-party builders. + + In order that 'make install' creates all executables in 'bindir', the +'biber' module contains pre-made binaries for the platforms for which +they are available. TeX Live merely checks if an executable is present +for the current platform, and if so, installs it. + + The complication is hidden in the phrase "current platform". TeX +Live has its own ideas about platform names, and the mapping from the +canonical system name determined by 'config.guess' or 'config.sub' to +the TeX Live platform name is not trivial. A value given for +'TL_PLATFORM' is used as TeX Live platform name. Otherwise, we use +copies of the standard 'perl' modules 'TeXLive/TLUtils.pm' and +'TeXLive/TLConfig.pm', to avoid duplicating the platform-detection +logic. + +2.4.4.6 'KPSEWHICH' +................... + +Name (or path) of an installed 'kpsewhich' binary, used by 'make check' +to determine the location of, e.g., 'cmbx10.tfm'. + +2.4.4.7 'MAKE', 'SED', ... +.......................... + +Name (or path) of GNU make, GNU sed, and similar; used at the top-level +and propagated to all subdirectories. + + +File: texlive.info, Node: Cross Compilation, Next: Coding Rules, Prev: Configure Options, Up: Build System + +2.5 Cross Compilation +===================== + +In a cross compilation a 'build' system is used to create binaries to be +executed on a 'host' system with different hardware and/or operating +system. + + In simple cases the build system can execute binaries for the host +system. This typically occurs for bi-arch systems where, e.g., +'i386-linux' binaries can run on 'x86_64-linux' systems and 'win32' +binaries can run on 'win64' systems. ALthough sometimes called "native +cross", this is technically no cross compilation. In most such cases it +suffices to specify suitable compiler flags. It might be useful to add +the configure option '--build=HOST' to get the correct canonical host +name, but note that this should not be '--host=HOST' (*note +(autoconf)Hosts and Cross-Compilation::)! + +* Menu: + +* Configuring:: Configuring for Cross Compilation. +* Problems:: Cross Compilation Problems. + + +File: texlive.info, Node: Configuring, Next: Problems, Up: Cross Compilation + +2.5.1 Configuring for Cross Compilation +--------------------------------------- + +In a genuine cross compilation binaries for the host system can not +execute on the build system and it is necessary to specify the configure +options '--host=HOST' and '--build=BUILD' with two different values. +Building binaries requires suitable "cross" tools, e.g., compiler, +linker, and archiver, and perhaps a "cross" version of 'pkg-config' and +similar to locate host system libraries. Autoconf expects that these +cross tools are given by their usual variables or found under their +usual name prefixed with 'HOST-'. Here a list of such tools and +corresponding variables: + + ar AR + freetype-config FT2_CONFIG + g++ CXX + gcc CC + icu-config ICU_CONFIG + objdump OBJDUMP + pkg-config PKG_CONFIG + ranlib RANLIB + strip STRIP + +In order to, e.g., build 'mingw32' binaries on 'x86_64-linux' with a +cross compiler found as 'i386-pc-mingw32-gcc' one would specify + '--host=i386-pc-mingw32 --build=x86_64-linux-gnu' +or perhaps + '--host=mingw32 --build=x86_64-linux CC=i386-pc-mingw32-gcc' +but this might require to add 'CXX' and others. + + Configure arguments such as 'CFLAGS=...' refer to the cross compiler. +If necessary, you can specify compilers and flags for the few auxiliary +C and C++ programs required for the build process as configure arguments + + BUILDCC=... + BUILDCPPFLAGS=... + BUILDCFLAGS=... + BUILDCXX=... + BUILDCXXFLAGS=... + BUILDLDFLAGS=... + + +File: texlive.info, Node: Problems, Prev: Configuring, Up: Cross Compilation + +2.5.2 Cross Compilation Problems +-------------------------------- + +The fact that binaries for the host system can not be executed on the +build system causes some problems. + + One problem is, that configure tests using 'AC_RUN_IFELSE' can +compile and link the test program but can not execute it. Such tests +should be avoided if possible and otherwise must supply a pessimistic +test result. + + An other problem arises if the build process must execute some +(auxiliary or installable) programs. Auxiliary programs can be placed +into a subdirectory that is configured natively as is done for +'texk/dvipsk/squeeze', 'texk/web2c/web2c', and 'texk/xdvik/squeeze'. +The module 'libs/freetype' uses the value of 'CC_BUILD', 'gcc' with or +without the build system as prefix, or 'cc' as compiler for the +auxiliary program. + + The situation for installable programs needed by the build process is +somewhat different. A quite expensive possibility, chosen for the 'ICU' +libraries in module 'libs/icu', is to first compile natively for the +build system and in a second step to use these (uninstalled) programs +during the cross compilation. This would also be possible for the tools +such as 'tangle' used in the module 'texk/web2c' to build the WEB +programs, but that would require to first build a native 'kpathsea' +library. To avoid this complication, cross compilation of the WEB or +CWEB programs in this module requires sufficiently recent installed +versions of 'tangle', 'ctangle', 'otangle', and 'tie'. + + +File: texlive.info, Node: Coding Rules, Prev: Cross Compilation, Up: Build System + +2.6 Coding Rules for TeX Live +============================= + +2.6.1 Declarations +------------------ + +2.6.1.1 ANSI C function prototypes and definitions +.................................................. + +The TeX Live build system no longer supports pre-ANSI C compilers. Thus +all function prototypes and definitions must conform to the ANSI C +standard (including 'void' in the declaration of C functions with no +parameters). On the other hand TeX Live is built for many different +systems, some of them not supporting the C99 standard. Therefore using +C99 features should be avoided if that can easily be done. In +particular C code must not contain declarations after statements or C++ +type comments. + + If some C99 (or later) constructs have to be used, the module should +verify that they are available and otherwise provide an alternative. +The module 'texk/chktex' uses, e.g., the C99 function 'stpcpy()' that +may or may not be available on a particular system, uses +'AC_CHECK_DECLS([stpcpy])' in 'configure.ac' to test this, and provides +the perhaps slightly less efficient alternative + '#if !(defined HAVE_DECL_STPCPY && HAVE_DECL_STPCPY)' + 'static inline char * stpcpy(char *dest, const char *src)' + '{' + ' return strcpy(dest, src) + strlen(src);' + '}' + '#endif' +in the file 'Utility.h'. + +2.6.1.2 Static Functions +........................ + +Functions used in only one file should be declared 'static'; they +require no prototype except as forward declaration. + +2.6.1.3 Extern Functions +........................ + +Functions not declared 'static', usually because they are used in +several files, require an ('extern') prototype in exactly one header +which is included in the file defining the function and in all files +using that function -- this is the only way to guarantee consistency +between definition and use of functions. You must not have 'extern' +declarations sprinkled throughout the C code (with or without comment +where that function is defined). + +2.6.1.4 Variables +................. + +The declaration of global variables must follow analogous rules, they +are either declared 'static' if used in only one files or declared +'extern' in exactly one header and instantiated in exactly one file. + +2.6.2 Const +----------- + +2.6.2.1 Function Parameters +........................... + +Ideally, a function parameter not modified by the function should be +declared as 'const'. This is important in particular for strings +('char*') because the actual arguments are often string literals. It is +perfectly legitimate and safe to use a type 'char*' value for a type +'const char*' variable (in an assignment, as initializer, as function +argument, or as return value). It is equally safe to use a type +'char**' value for a type 'const char*const*' variable, but not for a +type 'const char**' variable since that might cause modification of a +quantity supposed to be constant. Getting all 'const' qualifiers right +is often quite involved but can be done in most cases. There are, +however, a few notable exceptions: the X11 headers are full of +declarations that ought to use 'const' but do not and the same is true +to some extent for 'libfreetype' (but not anymore for 'zlib'). + +2.6.2.2 What Must be Avoided +............................ + +The 'gcc' compiler warnings "assignment discards qualifiers..." and +analogous warnings for "initialization", "passing arg", or "return" must +be avoided under all circumstances, except when caused by X11 +headers/macros or third party code. + +2.6.2.3 What Should be Avoided +.............................. + +A type cast, e.g., from 'const char*' to 'char*' does not solve any +problems; depending on warning options, it may only hide them. +Therefore such casts should be avoided whenever possible and otherwise +must be carefully analyzed to make sure that they can not cause the +modification of quantities supposed to be constant. + + +File: texlive.info, Node: Index, Prev: Build System, Up: Top + +Index +***** + + +* Menu: + +* build system: Build System. (line 6) +* fundamental purpose of TeX Live: Introduction. (line 6) +* introduction: Introduction. (line 6) +* the TeX Live build system: Build System. (line 6) + + + +Tag Table: +Node: Top949 +Node: Introduction1343 +Node: Build System1554 +Node: Prerequisites3775 +Node: Building and Installing5091 +Node: Source Tree10451 +Node: Top Levels11117 +Node: Library Modules13135 +Node: Program Modules17157 +Node: Extending20065 +Node: Configure Options24026 +Node: Global Options25193 +Node: Program Specific Options29679 +Node: Library Specific Options34501 +Node: Variable Assignments36689 +Node: Cross Compilation39130 +Node: Configuring40169 +Node: Problems41837 +Node: Coding Rules43423 +Node: Index47389 + +End Tag Table diff --git a/Build/source/doc/texlive.texi b/Build/source/doc/texlive.texi new file mode 100644 index 00000000000..612ff205604 --- /dev/null +++ b/Build/source/doc/texlive.texi @@ -0,0 +1,111 @@ +\input texinfo +@setfilename texlive.info +@settitle TeX Live: The xxx + +@set version 2014/dev +@set month-year August 2013 + +@macro TL +@TeX{} Live +@end macro + +@copying +This file documents the @TL{} system, etc. + +Copyright @copyright{} 2013 Xxx & Yyy. + +Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + +@ignore +Permission is granted to process this file through TeX and print the +results, provided the printed document carries a copying permission +notice identical to this one except for the removal of this paragraph +(this paragraph not being relevant to the printed manual). +@end ignore + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that this permission notice may be stated in a translation +approved by the @TeX{} Users Group. +@end copying + +@c Define new indices for commands, filenames, and options. +@defcodeindex cm +@defcodeindex fl +@defcodeindex op + +@c Put everything in one index (arbitrarily chosen to be the concept index). +@syncodeindex cm cp +@syncodeindex fl cp +@syncodeindex fn cp +@syncodeindex ky cp +@syncodeindex op cp +@syncodeindex pg cp +@syncodeindex tp cp +@syncodeindex vr cp + +@dircategory TeX +@direntry +* @TL: (texlive). The @TL{} System. +@end direntry + + +@titlepage +@title TeXLive +@subtitle for version @value{version} +@subtitle @value{month-year} +@author Xxx +@author Yxx +@author @url{http://tug.org/tex-live} + +@page +@vskip 0pt plus 1filll +@insertcopying +@end titlepage + + +@contents + + +@ifnottex +@node Top +@top The @TL{} System + +This manual documents how to build, install, and use @TL{}. It corresponds +to version @value{version}, released in @value{month-year}. + +@menu +* Introduction:: Overview. + +* Build System:: The @TL{} Build System. + +* Index:: General index. +@end menu +@end ifnottex + + +@node Introduction +@chapter Introduction + +@cindex introduction +@cindex fundamental purpose of @TL{} + +This manual corresponds to version @value{version} of the @TL{} system, +released in @value{month-year}. + + +@include build.texi + +@node Index +@unnumbered Index + +@printindex cp + +@bye diff --git a/Build/source/libs/gd/config.h.in b/Build/source/libs/gd/config.h.in index d72f0ba93dd..bad61548a46 100644 --- a/Build/source/libs/gd/config.h.in +++ b/Build/source/libs/gd/config.h.in @@ -91,8 +91,14 @@ /* Version number of package */ #undef VERSION +/* Define to 1 if <zlib.h> declares 'z_const'. */ +#undef ZLIB_CONST + /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `unsigned int' if <sys/types.h> does not define. */ #undef size_t + +/* Define as empty if not declared in <zlib.h>. */ +#undef z_const diff --git a/Build/source/libs/gd/configure b/Build/source/libs/gd/configure index c2ebff6caf6..fa8e757f4a6 100755 --- a/Build/source/libs/gd/configure +++ b/Build/source/libs/gd/configure @@ -12796,6 +12796,9 @@ else fi +kpse_save_CPPFLAGS=$CPPFLAGS +kpse_save_LIBS=$LIBS + ## _KPSE_INIT: Initialize TL infrastructure kpse_BLD=`(cd "./../../." && pwd)` kpse_SRC=`(cd "$srcdir/../../." && pwd)` @@ -12834,6 +12837,47 @@ $(ZLIB_DEPEND): ${top_builddir}/../../libs/zlib/include/zconf.h ${top_builddir}/../../libs/zlib/include/zconf.h: cd ${top_builddir}/../../libs/zlib && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if <zlib.h> defines 'z_const'" >&5 +$as_echo_n "checking if <zlib.h> defines 'z_const'... " >&6; } +if ${kpse_cv_have_decl_z_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" +eval LIBS=\"$ZLIB_LIBS \$LIBS\" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <zlib.h> +int +main () +{ +z_const char * foo(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + kpse_cv_have_decl_z_const=yes +else + kpse_cv_have_decl_z_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS=$kpse_save_CPPFLAGS +LIBS=$kpse_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_decl_z_const" >&5 +$as_echo "$kpse_cv_have_decl_z_const" >&6; } +case $kpse_cv_have_decl_z_const in #( + yes) : + +$as_echo "#define ZLIB_CONST 1" >>confdefs.h + ;; #( + *) : + +$as_echo "#define z_const /**/" >>confdefs.h + ;; +esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. @@ -14454,9 +14498,6 @@ fi if test "x$enable_build" != xno || test -f config.force; then -kpse_save_CPPFLAGS=$CPPFLAGS -kpse_save_LIBS=$LIBS - eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" eval LIBS=\"$ZLIB_LIBS \$LIBS\" diff --git a/Build/source/libs/harfbuzz/config.h.in b/Build/source/libs/harfbuzz/config.h.in index fe707d97c31..cf1fdbee4b4 100644 --- a/Build/source/libs/harfbuzz/config.h.in +++ b/Build/source/libs/harfbuzz/config.h.in @@ -138,3 +138,9 @@ /* Version number of package */ #undef VERSION + +/* Define to 1 if <zlib.h> declares 'z_const'. */ +#undef ZLIB_CONST + +/* Define as empty if not declared in <zlib.h>. */ +#undef z_const diff --git a/Build/source/libs/harfbuzz/configure b/Build/source/libs/harfbuzz/configure index e3ab006f630..a8dfa387920 100755 --- a/Build/source/libs/harfbuzz/configure +++ b/Build/source/libs/harfbuzz/configure @@ -16204,6 +16204,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu +kpse_save_CPPFLAGS=$CPPFLAGS +kpse_save_LIBS=$LIBS + ## _KPSE_INIT: Initialize TL infrastructure kpse_BLD=`(cd "./../../." && pwd)` kpse_SRC=`(cd "$srcdir/../../." && pwd)` @@ -16242,6 +16245,47 @@ $(ZLIB_DEPEND): ${top_builddir}/../../libs/zlib/include/zconf.h ${top_builddir}/../../libs/zlib/include/zconf.h: cd ${top_builddir}/../../libs/zlib && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if <zlib.h> defines 'z_const'" >&5 +$as_echo_n "checking if <zlib.h> defines 'z_const'... " >&6; } +if ${kpse_cv_have_decl_z_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" +eval LIBS=\"$ZLIB_LIBS \$LIBS\" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <zlib.h> +int +main () +{ +z_const char * foo(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + kpse_cv_have_decl_z_const=yes +else + kpse_cv_have_decl_z_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS=$kpse_save_CPPFLAGS +LIBS=$kpse_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_decl_z_const" >&5 +$as_echo "$kpse_cv_have_decl_z_const" >&6; } +case $kpse_cv_have_decl_z_const in #( + yes) : + +$as_echo "#define ZLIB_CONST 1" >>confdefs.h + ;; #( + *) : + +$as_echo "#define z_const /**/" >>confdefs.h + ;; +esac ## _KPSE_USE_LIBTOOL: Generate a libtool script for use in configure tests : ${CONFIG_LT=./config.lt} diff --git a/Build/source/libs/libpng/config.h.in b/Build/source/libs/libpng/config.h.in index 466673bf296..1b40eb4d275 100644 --- a/Build/source/libs/libpng/config.h.in +++ b/Build/source/libs/libpng/config.h.in @@ -63,6 +63,9 @@ /* Version number of package */ #undef VERSION +/* Define to 1 if <zlib.h> declares 'z_const'. */ +#undef ZLIB_CONST + /* Define to empty if `const' does not conform to ANSI C. */ #undef const @@ -82,3 +85,6 @@ /* Define to `unsigned int' if <sys/types.h> does not define. */ #undef size_t + +/* Define as empty if not declared in <zlib.h>. */ +#undef z_const diff --git a/Build/source/libs/libpng/configure b/Build/source/libs/libpng/configure index 71fd992b119..558ad9a4bf5 100755 --- a/Build/source/libs/libpng/configure +++ b/Build/source/libs/libpng/configure @@ -5610,6 +5610,9 @@ else fi +kpse_save_CPPFLAGS=$CPPFLAGS +kpse_save_LIBS=$LIBS + ## _KPSE_INIT: Initialize TL infrastructure kpse_BLD=`(cd "./../../." && pwd)` kpse_SRC=`(cd "$srcdir/../../." && pwd)` @@ -5648,6 +5651,47 @@ $(ZLIB_DEPEND): ${top_builddir}/../../libs/zlib/include/zconf.h ${top_builddir}/../../libs/zlib/include/zconf.h: cd ${top_builddir}/../../libs/zlib && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if <zlib.h> defines 'z_const'" >&5 +$as_echo_n "checking if <zlib.h> defines 'z_const'... " >&6; } +if ${kpse_cv_have_decl_z_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" +eval LIBS=\"$ZLIB_LIBS \$LIBS\" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <zlib.h> +int +main () +{ +z_const char * foo(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + kpse_cv_have_decl_z_const=yes +else + kpse_cv_have_decl_z_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS=$kpse_save_CPPFLAGS +LIBS=$kpse_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_decl_z_const" >&5 +$as_echo "$kpse_cv_have_decl_z_const" >&6; } +case $kpse_cv_have_decl_z_const in #( + yes) : + +$as_echo "#define ZLIB_CONST 1" >>confdefs.h + ;; #( + *) : + +$as_echo "#define z_const /**/" >>confdefs.h + ;; +esac if test "x$enable_build" != xno; then @@ -5661,9 +5705,6 @@ fi if test "x$enable_build" != xno || test -f config.force; then -kpse_save_CPPFLAGS=$CPPFLAGS -kpse_save_LIBS=$LIBS - eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" eval LIBS=\"$ZLIB_LIBS \$LIBS\" diff --git a/Build/source/libs/pixman/ChangeLog b/Build/source/libs/pixman/ChangeLog index 4e1c5637605..c813086a75b 100644 --- a/Build/source/libs/pixman/ChangeLog +++ b/Build/source/libs/pixman/ChangeLog @@ -1,3 +1,7 @@ +2013-08-23 Peter Breitenlohner <peb@mppmu.mpg.de> + + * configure.ac: Recover test for sqrtf(). + 2013-08-08 Peter Breitenlohner <peb@mppmu.mpg.de> Import pixman-0.30.2. diff --git a/Build/source/libs/pixman/config.h.in b/Build/source/libs/pixman/config.h.in index 256fef23cd8..bd4c113d85e 100644 --- a/Build/source/libs/pixman/config.h.in +++ b/Build/source/libs/pixman/config.h.in @@ -119,3 +119,6 @@ #ifndef __cplusplus #undef inline #endif + +/* Define to sqrt if you do not have the `sqrtf' function. */ +#undef sqrtf diff --git a/Build/source/libs/pixman/configure b/Build/source/libs/pixman/configure index 5e4b686392c..df979b19c93 100755 --- a/Build/source/libs/pixman/configure +++ b/Build/source/libs/pixman/configure @@ -5595,7 +5595,106 @@ else build_FALSE= fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sqrt" >&5 + +if :; then + +$as_echo "#define PIXMAN_NO_TLS 1" >>confdefs.h + +else + +$as_echo "#define USE_LOONGSON_MMI 1" >>confdefs.h + + +$as_echo "#define USE_X86_MMX 1" >>confdefs.h + + +$as_echo "#define USE_SSE2 1" >>confdefs.h + + +$as_echo "#define USE_VMX 1" >>confdefs.h + + +$as_echo "#define USE_ARM_SIMD 1" >>confdefs.h + + +$as_echo "#define USE_ARM_NEON 1" >>confdefs.h + + +$as_echo "#define USE_ARM_IWMMXT 1" >>confdefs.h + + +$as_echo "#define USE_MIPS_DSPR2 1" >>confdefs.h + + +$as_echo "#define USE_GCC_INLINE_ASM 1" >>confdefs.h + + +$as_echo "#define PIXMAN_TIMERS 1" >>confdefs.h + + +$as_echo "#define TOOLCHAIN_SUPPORTS_ATTRIBUTE_CONSTRUCTOR 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sqrtf" >&5 +$as_echo_n "checking for library containing sqrtf... " >&6; } +if ${ac_cv_search_sqrtf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sqrtf (); +int +main () +{ +return sqrtf (); + ; + return 0; +} +_ACEOF +for ac_lib in '' m; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_sqrtf=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_sqrtf+:} false; then : + break +fi +done +if ${ac_cv_search_sqrtf+:} false; then : + +else + ac_cv_search_sqrtf=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sqrtf" >&5 +$as_echo "$ac_cv_search_sqrtf" >&6; } +ac_res=$ac_cv_search_sqrtf +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + +$as_echo "#define sqrtf sqrt" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sqrt" >&5 $as_echo_n "checking for library containing sqrt... " >&6; } if ${ac_cv_search_sqrt+:} false; then : $as_echo_n "(cached) " >&6 @@ -5651,49 +5750,11 @@ if test "$ac_res" != no; then : fi - -if :; then - -$as_echo "#define PIXMAN_NO_TLS 1" >>confdefs.h - -else - -$as_echo "#define USE_LOONGSON_MMI 1" >>confdefs.h - - -$as_echo "#define USE_X86_MMX 1" >>confdefs.h - - -$as_echo "#define USE_SSE2 1" >>confdefs.h - - -$as_echo "#define USE_VMX 1" >>confdefs.h - - -$as_echo "#define USE_ARM_SIMD 1" >>confdefs.h - - -$as_echo "#define USE_ARM_NEON 1" >>confdefs.h - - -$as_echo "#define USE_ARM_IWMMXT 1" >>confdefs.h - - -$as_echo "#define USE_MIPS_DSPR2 1" >>confdefs.h - - -$as_echo "#define USE_GCC_INLINE_ASM 1" >>confdefs.h - - -$as_echo "#define PIXMAN_TIMERS 1" >>confdefs.h - - -$as_echo "#define TOOLCHAIN_SUPPORTS_ATTRIBUTE_CONSTRUCTOR 1" >>confdefs.h - fi + ac_fn_c_check_decl "$LINENO" "SIZE_MAX" "ac_cv_have_decl_SIZE_MAX" "$ac_includes_default" if test "x$ac_cv_have_decl_SIZE_MAX" = xyes; then : diff --git a/Build/source/libs/pixman/configure.ac b/Build/source/libs/pixman/configure.ac index 5fe61aed6cb..9750a2a676d 100644 --- a/Build/source/libs/pixman/configure.ac +++ b/Build/source/libs/pixman/configure.ac @@ -32,7 +32,6 @@ AC_C_INLINE AC_CONFIG_HEADERS([config.h]) AM_CONDITIONAL([build], [test "x$enable_build" != xno]) -AC_SEARCH_LIBS([sqrt], [m]) if :; then AC_DEFINE([PIXMAN_NO_TLS], 1, [We do not want threading]) @@ -52,6 +51,12 @@ dnl add all these to config.h.in but do not define them in config.h [Whether the tool chain supports __attribute__((constructor))]) fi +dnl Check for missing sqrtf() as, e.g., for Solaris 9 +AC_SEARCH_LIBS([sqrtf], [m], , + [AC_DEFINE([sqrtf], [sqrt], + [Define to sqrt if you do not have the `sqrtf' function.]) + AC_SEARCH_LIBS([sqrt], [m])]) + dnl PIXMAN_LINK_WITH_ENV(env-setup, program, true-action, false-action) dnl dnl Compiles and links the given program in the environment setup by env-setup diff --git a/Build/source/libs/poppler/config.h.in b/Build/source/libs/poppler/config.h.in index ebf5b7b6095..94f471a34b7 100644 --- a/Build/source/libs/poppler/config.h.in +++ b/Build/source/libs/poppler/config.h.in @@ -108,6 +108,9 @@ /* Use fixed point arithmetic */ #undef USE_FIXEDPOINT +/* Define to 1 if <zlib.h> declares 'z_const'. */ +#undef ZLIB_CONST + /* Enable large inode numbers on Mac OS X 10.5. */ #ifndef _DARWIN_USE_64_BIT_INODE # define _DARWIN_USE_64_BIT_INODE 1 @@ -124,3 +127,6 @@ /* Define for MinGW32 to 0x0500 to declare `GetFileSizeEx'. */ #undef _WIN32_WINNT + +/* Define as empty if not declared in <zlib.h>. */ +#undef z_const diff --git a/Build/source/libs/poppler/configure b/Build/source/libs/poppler/configure index 48bceb5b282..89660fe77e5 100755 --- a/Build/source/libs/poppler/configure +++ b/Build/source/libs/poppler/configure @@ -6482,6 +6482,9 @@ cat >>confdefs.h <<_ACEOF _ACEOF +kpse_save_CPPFLAGS=$CPPFLAGS +kpse_save_LIBS=$LIBS + ## _KPSE_INIT: Initialize TL infrastructure kpse_BLD=`(cd "./../../." && pwd)` kpse_SRC=`(cd "$srcdir/../../." && pwd)` @@ -6520,6 +6523,47 @@ $(ZLIB_DEPEND): ${top_builddir}/../../libs/zlib/include/zconf.h ${top_builddir}/../../libs/zlib/include/zconf.h: cd ${top_builddir}/../../libs/zlib && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if <zlib.h> defines 'z_const'" >&5 +$as_echo_n "checking if <zlib.h> defines 'z_const'... " >&6; } +if ${kpse_cv_have_decl_z_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" +eval LIBS=\"$ZLIB_LIBS \$LIBS\" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <zlib.h> +int +main () +{ +z_const char * foo(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + kpse_cv_have_decl_z_const=yes +else + kpse_cv_have_decl_z_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS=$kpse_save_CPPFLAGS +LIBS=$kpse_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_decl_z_const" >&5 +$as_echo "$kpse_cv_have_decl_z_const" >&6; } +case $kpse_cv_have_decl_z_const in #( + yes) : + +$as_echo "#define ZLIB_CONST 1" >>confdefs.h + ;; #( + *) : + +$as_echo "#define z_const /**/" >>confdefs.h + ;; +esac if test "x$enable_build" != xno; then @@ -6533,9 +6577,6 @@ fi if test "x$enable_build" != xno || test -f config.force; then -kpse_save_CPPFLAGS=$CPPFLAGS -kpse_save_LIBS=$LIBS - eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" eval LIBS=\"$ZLIB_LIBS \$LIBS\" diff --git a/Build/source/libs/teckit/config.h.in b/Build/source/libs/teckit/config.h.in index acd02948a8d..7ef5c7da3ed 100644 --- a/Build/source/libs/teckit/config.h.in +++ b/Build/source/libs/teckit/config.h.in @@ -77,3 +77,9 @@ # undef WORDS_BIGENDIAN # endif #endif + +/* Define to 1 if <zlib.h> declares 'z_const'. */ +#undef ZLIB_CONST + +/* Define as empty if not declared in <zlib.h>. */ +#undef z_const diff --git a/Build/source/libs/teckit/configure b/Build/source/libs/teckit/configure index 9dbebe940fb..b958ff03459 100755 --- a/Build/source/libs/teckit/configure +++ b/Build/source/libs/teckit/configure @@ -6561,6 +6561,9 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ac_config_headers="$ac_config_headers config.h" +kpse_save_CPPFLAGS=$CPPFLAGS +kpse_save_LIBS=$LIBS + ## _KPSE_INIT: Initialize TL infrastructure kpse_BLD=`(cd "./../../." && pwd)` kpse_SRC=`(cd "$srcdir/../../." && pwd)` @@ -6599,6 +6602,47 @@ $(ZLIB_DEPEND): ${top_builddir}/../../libs/zlib/include/zconf.h ${top_builddir}/../../libs/zlib/include/zconf.h: cd ${top_builddir}/../../libs/zlib && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if <zlib.h> defines 'z_const'" >&5 +$as_echo_n "checking if <zlib.h> defines 'z_const'... " >&6; } +if ${kpse_cv_have_decl_z_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" +eval LIBS=\"$ZLIB_LIBS \$LIBS\" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <zlib.h> +int +main () +{ +z_const char * foo(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + kpse_cv_have_decl_z_const=yes +else + kpse_cv_have_decl_z_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS=$kpse_save_CPPFLAGS +LIBS=$kpse_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_decl_z_const" >&5 +$as_echo "$kpse_cv_have_decl_z_const" >&6; } +case $kpse_cv_have_decl_z_const in #( + yes) : + +$as_echo "#define ZLIB_CONST 1" >>confdefs.h + ;; #( + *) : + +$as_echo "#define z_const /**/" >>confdefs.h + ;; +esac if test "x$enable_build" != xno; then @@ -6612,9 +6656,6 @@ fi if test "x$enable_build" != xno || test -f config.force; then -kpse_save_CPPFLAGS=$CPPFLAGS -kpse_save_LIBS=$LIBS - eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" eval LIBS=\"$ZLIB_LIBS \$LIBS\" diff --git a/Build/source/libs/zziplib/config.h.in b/Build/source/libs/zziplib/config.h.in index 41a3df87a5e..43758c1fcbe 100644 --- a/Build/source/libs/zziplib/config.h.in +++ b/Build/source/libs/zziplib/config.h.in @@ -142,6 +142,9 @@ # endif #endif +/* Define to 1 if <zlib.h> declares 'z_const'. */ +#undef ZLIB_CONST + /* Enable large inode numbers on Mac OS X 10.5. */ #ifndef _DARWIN_USE_64_BIT_INODE # define _DARWIN_USE_64_BIT_INODE 1 @@ -190,3 +193,6 @@ /* Define to `int' if <sys/types.h> does not define. */ #undef ssize_t + +/* Define as empty if not declared in <zlib.h>. */ +#undef z_const diff --git a/Build/source/libs/zziplib/configure b/Build/source/libs/zziplib/configure index 9439dca2f9a..4f1d2972498 100755 --- a/Build/source/libs/zziplib/configure +++ b/Build/source/libs/zziplib/configure @@ -6625,6 +6625,9 @@ fi done +kpse_save_CPPFLAGS=$CPPFLAGS +kpse_save_LIBS=$LIBS + ## _KPSE_INIT: Initialize TL infrastructure kpse_BLD=`(cd "./../../." && pwd)` kpse_SRC=`(cd "$srcdir/../../." && pwd)` @@ -6663,6 +6666,47 @@ $(ZLIB_DEPEND): ${top_builddir}/../../libs/zlib/include/zconf.h ${top_builddir}/../../libs/zlib/include/zconf.h: cd ${top_builddir}/../../libs/zlib && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if <zlib.h> defines 'z_const'" >&5 +$as_echo_n "checking if <zlib.h> defines 'z_const'... " >&6; } +if ${kpse_cv_have_decl_z_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" +eval LIBS=\"$ZLIB_LIBS \$LIBS\" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <zlib.h> +int +main () +{ +z_const char * foo(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + kpse_cv_have_decl_z_const=yes +else + kpse_cv_have_decl_z_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS=$kpse_save_CPPFLAGS +LIBS=$kpse_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_decl_z_const" >&5 +$as_echo "$kpse_cv_have_decl_z_const" >&6; } +case $kpse_cv_have_decl_z_const in #( + yes) : + +$as_echo "#define ZLIB_CONST 1" >>confdefs.h + ;; #( + *) : + +$as_echo "#define z_const /**/" >>confdefs.h + ;; +esac if test "x$enable_build" != xno; then @@ -6676,9 +6720,6 @@ fi if test "x$enable_build" != xno || test -f config.force; then -kpse_save_CPPFLAGS=$CPPFLAGS -kpse_save_LIBS=$LIBS - eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" eval LIBS=\"$ZLIB_LIBS \$LIBS\" diff --git a/Build/source/m4/ChangeLog b/Build/source/m4/ChangeLog index 8230257245a..cf95c4adc0e 100644 --- a/Build/source/m4/ChangeLog +++ b/Build/source/m4/ChangeLog @@ -1,3 +1,8 @@ +2013-08-18 Peter Breitenlohner <peb@mppmu.mpg.de> + + * kpse-zlib-flags.m4 (KPSE_ZLIB_FLAGS): Test if <<zlib.h> defines + 'z_const' and accordingly define either ZLIB_CONST or z_const. + 2013-08-07 Peter Breitenlohner <peb@mppmu.mpg.de> * cho-libs.m4: Moved ... diff --git a/Build/source/m4/kpse-zlib-flags.m4 b/Build/source/m4/kpse-zlib-flags.m4 index d442e941ff0..e95eb868762 100644 --- a/Build/source/m4/kpse-zlib-flags.m4 +++ b/Build/source/m4/kpse-zlib-flags.m4 @@ -1,5 +1,5 @@ # Public macros for the TeX Live (TL) tree. -# Copyright (C) 2009 Peter Breitenlohner <tex-live@tug.org> +# Copyright (C) 2009-2013 Peter Breitenlohner <tex-live@tug.org> # # This file is free software; the copyright holder # gives unlimited permission to copy and/or distribute it, @@ -12,12 +12,26 @@ # Provide the configure options '--with-system-zlib' (if in the TL tree), # '--with-zlib-includes', and '--with-zlib-libdir'. # +# Also test if <<zlib.h> defines 'z_const' and define ZLIB_CONST or z_const. +# # Set the make variables ZLIB_INCLUDES and ZLIB_LIBS to the CPPFLAGS and # LIBS required for the `-lz' library in libs/zlib/ of the TL tree. -AC_DEFUN([KPSE_ZLIB_FLAGS], -[_KPSE_LIB_FLAGS([zlib], [z], [], - [-IBLD/libs/zlib/include], [BLD/libs/zlib/libz.a], [], - [], [${top_builddir}/../../libs/zlib/include/zconf.h])[]dnl +AC_DEFUN([KPSE_ZLIB_FLAGS], [dnl +AC_REQUIRE([KPSE_SAVE_FLAGS])[]dnl +_KPSE_LIB_FLAGS([zlib], [z], [], + [-IBLD/libs/zlib/include], [BLD/libs/zlib/libz.a], [], + [], [${top_builddir}/../../libs/zlib/include/zconf.h])[]dnl +AC_CACHE_CHECK([if <zlib.h> defines 'z_const'], + [kpse_cv_have_decl_z_const], + [KPSE_ADD_FLAGS([zlib]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <zlib.h>]], + [[z_const char * foo();]])], + [kpse_cv_have_decl_z_const=yes], + [kpse_cv_have_decl_z_const=no]) + KPSE_RESTORE_FLAGS]) +AS_CASE([$kpse_cv_have_decl_z_const], + [yes], [AC_DEFINE([ZLIB_CONST], [1], [Define to 1 if <zlib.h> declares 'z_const'.])], + [AC_DEFINE([z_const], [], [Define as empty if not declared in <zlib.h>.])]) ]) # KPSE_ZLIB_FLAGS # KPSE_ZLIB_OPTIONS([WITH-SYSTEM]) diff --git a/Build/source/texk/dvipdf-x/ChangeLog b/Build/source/texk/dvipdf-x/ChangeLog index 14a39fb0497..9b9819b94f1 100644 --- a/Build/source/texk/dvipdf-x/ChangeLog +++ b/Build/source/texk/dvipdf-x/ChangeLog @@ -1,3 +1,8 @@ +2013-08-18 Peter Breitenlohner <peb@mppmu.mpg.de> + + * xsrc/epdf.c (add_stream_flate): Use z_const. + * (x)src/pdfobj.c (pdf_add_stream_flate): Use z_const. + 2013-08-08 Peter Breitenlohner <peb@mppmu.mpg.de> * src/dvipdfmx.c, src/pdfdoc.[ch], src/spc_pdfm.c, diff --git a/Build/source/texk/dvipdf-x/config.h.in b/Build/source/texk/dvipdf-x/config.h.in index f5e7527b596..684bb4c43a0 100644 --- a/Build/source/texk/dvipdf-x/config.h.in +++ b/Build/source/texk/dvipdf-x/config.h.in @@ -214,6 +214,9 @@ # endif #endif +/* Define to 1 if <zlib.h> declares 'z_const'. */ +#undef ZLIB_CONST + /* Enable large inode numbers on Mac OS X 10.5. */ #ifndef _DARWIN_USE_64_BIT_INODE # define _DARWIN_USE_64_BIT_INODE 1 @@ -261,3 +264,6 @@ /* Define to the type of an unsigned integer type of width exactly 64 bits if such a type exists and the standard includes do not define it. */ #undef uint64_t + +/* Define as empty if not declared in <zlib.h>. */ +#undef z_const diff --git a/Build/source/texk/dvipdf-x/configure b/Build/source/texk/dvipdf-x/configure index c65b9e1b330..6ac4efff518 100755 --- a/Build/source/texk/dvipdf-x/configure +++ b/Build/source/texk/dvipdf-x/configure @@ -15482,6 +15482,47 @@ $(ZLIB_DEPEND): ${top_builddir}/../../libs/zlib/include/zconf.h ${top_builddir}/../../libs/zlib/include/zconf.h: cd ${top_builddir}/../../libs/zlib && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if <zlib.h> defines 'z_const'" >&5 +$as_echo_n "checking if <zlib.h> defines 'z_const'... " >&6; } +if ${kpse_cv_have_decl_z_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" +eval LIBS=\"$ZLIB_LIBS \$LIBS\" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <zlib.h> +int +main () +{ +z_const char * foo(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + kpse_cv_have_decl_z_const=yes +else + kpse_cv_have_decl_z_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS=$kpse_save_CPPFLAGS +LIBS=$kpse_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_decl_z_const" >&5 +$as_echo "$kpse_cv_have_decl_z_const" >&6; } +case $kpse_cv_have_decl_z_const in #( + yes) : + +$as_echo "#define ZLIB_CONST 1" >>confdefs.h + ;; #( + *) : + +$as_echo "#define z_const /**/" >>confdefs.h + ;; +esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. diff --git a/Build/source/texk/dvipdf-x/src/pdfobj.c b/Build/source/texk/dvipdf-x/src/pdfobj.c index ba431d9be9a..55cc96912d9 100644 --- a/Build/source/texk/dvipdf-x/src/pdfobj.c +++ b/Build/source/texk/dvipdf-x/src/pdfobj.c @@ -1815,7 +1815,7 @@ pdf_add_stream_flate (pdf_obj *dst, const void *data, long len) z.zalloc = Z_NULL; z.zfree = Z_NULL; z.opaque = Z_NULL; - z.next_in = (Bytef *) data; z.avail_in = len; + z.next_in = (z_const Bytef *) data; z.avail_in = len; z.next_out = (Bytef *) wbuf; z.avail_out = WBUF_SIZE; if (inflateInit(&z) != Z_OK) { diff --git a/Build/source/texk/dvipdf-x/xsrc/epdf.c b/Build/source/texk/dvipdf-x/xsrc/epdf.c index 73a8ec21f63..53c9fdf554c 100644 --- a/Build/source/texk/dvipdf-x/xsrc/epdf.c +++ b/Build/source/texk/dvipdf-x/xsrc/epdf.c @@ -816,7 +816,7 @@ add_stream_flate (pdf_obj *dst, const void *data, long len) z.zalloc = Z_NULL; z.zfree = Z_NULL; z.opaque = Z_NULL; - z.next_in = (Bytef *) data; z.avail_in = len; + z.next_in = (z_const Bytef *) data; z.avail_in = len; z.next_out = (Bytef *) wbuf; z.avail_out = WBUF_SIZE; if (inflateInit(&z) != Z_OK) { diff --git a/Build/source/texk/dvipdf-x/xsrc/pdfobj.c b/Build/source/texk/dvipdf-x/xsrc/pdfobj.c index 30a9b6bdb3b..6c8d66780f4 100644 --- a/Build/source/texk/dvipdf-x/xsrc/pdfobj.c +++ b/Build/source/texk/dvipdf-x/xsrc/pdfobj.c @@ -1776,7 +1776,7 @@ pdf_add_stream_flate (pdf_obj *dst, const void *data, long len) z.zalloc = Z_NULL; z.zfree = Z_NULL; z.opaque = Z_NULL; - z.next_in = (Bytef *) data; z.avail_in = len; + z.next_in = (z_const Bytef *) data; z.avail_in = len; z.next_out = (Bytef *) wbuf; z.avail_out = WBUF_SIZE; if (inflateInit(&z) != Z_OK) { diff --git a/Build/source/texk/dvipdfm-x/ChangeLog b/Build/source/texk/dvipdfm-x/ChangeLog index b56abb93416..994159c78e3 100644 --- a/Build/source/texk/dvipdfm-x/ChangeLog +++ b/Build/source/texk/dvipdfm-x/ChangeLog @@ -1,3 +1,8 @@ +2013-08-18 Peter Breitenlohner <peb@mppmu.mpg.de> + + * epdf.c (add_stream_flate): Use z_const. + * pdfobj.c (pdf_add_stream_flate): Use z_const. + 2013-08-12 Peter Breitenlohner <peb@mppmu.mpg.de> * dvipdfmx.c (show_usage): Adapt to modified program (stdin). diff --git a/Build/source/texk/dvipdfm-x/config.h.in b/Build/source/texk/dvipdfm-x/config.h.in index f5e7527b596..684bb4c43a0 100644 --- a/Build/source/texk/dvipdfm-x/config.h.in +++ b/Build/source/texk/dvipdfm-x/config.h.in @@ -214,6 +214,9 @@ # endif #endif +/* Define to 1 if <zlib.h> declares 'z_const'. */ +#undef ZLIB_CONST + /* Enable large inode numbers on Mac OS X 10.5. */ #ifndef _DARWIN_USE_64_BIT_INODE # define _DARWIN_USE_64_BIT_INODE 1 @@ -261,3 +264,6 @@ /* Define to the type of an unsigned integer type of width exactly 64 bits if such a type exists and the standard includes do not define it. */ #undef uint64_t + +/* Define as empty if not declared in <zlib.h>. */ +#undef z_const diff --git a/Build/source/texk/dvipdfm-x/configure b/Build/source/texk/dvipdfm-x/configure index 6409a164940..6e5804f4521 100755 --- a/Build/source/texk/dvipdfm-x/configure +++ b/Build/source/texk/dvipdfm-x/configure @@ -15483,6 +15483,47 @@ $(ZLIB_DEPEND): ${top_builddir}/../../libs/zlib/include/zconf.h ${top_builddir}/../../libs/zlib/include/zconf.h: cd ${top_builddir}/../../libs/zlib && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if <zlib.h> defines 'z_const'" >&5 +$as_echo_n "checking if <zlib.h> defines 'z_const'... " >&6; } +if ${kpse_cv_have_decl_z_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" +eval LIBS=\"$ZLIB_LIBS \$LIBS\" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <zlib.h> +int +main () +{ +z_const char * foo(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + kpse_cv_have_decl_z_const=yes +else + kpse_cv_have_decl_z_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS=$kpse_save_CPPFLAGS +LIBS=$kpse_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_decl_z_const" >&5 +$as_echo "$kpse_cv_have_decl_z_const" >&6; } +case $kpse_cv_have_decl_z_const in #( + yes) : + +$as_echo "#define ZLIB_CONST 1" >>confdefs.h + ;; #( + *) : + +$as_echo "#define z_const /**/" >>confdefs.h + ;; +esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. diff --git a/Build/source/texk/dvipdfm-x/epdf.c b/Build/source/texk/dvipdfm-x/epdf.c index e2c9e99878e..43d2f46cdac 100644 --- a/Build/source/texk/dvipdfm-x/epdf.c +++ b/Build/source/texk/dvipdfm-x/epdf.c @@ -883,7 +883,7 @@ add_stream_flate (pdf_obj *dst, const void *data, long len) z.zalloc = Z_NULL; z.zfree = Z_NULL; z.opaque = Z_NULL; - z.next_in = (Bytef *) data; z.avail_in = len; + z.next_in = (z_const Bytef *) data; z.avail_in = len; z.next_out = (Bytef *) wbuf; z.avail_out = WBUF_SIZE; if (inflateInit(&z) != Z_OK) { diff --git a/Build/source/texk/dvipdfm-x/pdfobj.c b/Build/source/texk/dvipdfm-x/pdfobj.c index 711a4aca288..cbad9b8014d 100644 --- a/Build/source/texk/dvipdfm-x/pdfobj.c +++ b/Build/source/texk/dvipdfm-x/pdfobj.c @@ -1828,7 +1828,7 @@ pdf_add_stream_flate (pdf_obj *dst, const void *data, long len) z.zalloc = Z_NULL; z.zfree = Z_NULL; z.opaque = Z_NULL; - z.next_in = (Bytef *) data; z.avail_in = len; + z.next_in = (z_const Bytef *) data; z.avail_in = len; z.next_out = (Bytef *) wbuf; z.avail_out = WBUF_SIZE; if (inflateInit(&z) != Z_OK) { diff --git a/Build/source/texk/dvipng/config.h.in b/Build/source/texk/dvipng/config.h.in index 240ccb9b567..3f7bb5bd45c 100644 --- a/Build/source/texk/dvipng/config.h.in +++ b/Build/source/texk/dvipng/config.h.in @@ -279,6 +279,9 @@ /* Version number of package */ #undef VERSION +/* Define to 1 if <zlib.h> declares 'z_const'. */ +#undef ZLIB_CONST + /* Enable large inode numbers on Mac OS X 10.5. */ #ifndef _DARWIN_USE_64_BIT_INODE # define _DARWIN_USE_64_BIT_INODE 1 @@ -323,3 +326,6 @@ /* Define as `fork' if `vfork' does not work. */ #undef vfork + +/* Define as empty if not declared in <zlib.h>. */ +#undef z_const diff --git a/Build/source/texk/dvipng/configure b/Build/source/texk/dvipng/configure index 752b6637acf..0d501ada4ed 100755 --- a/Build/source/texk/dvipng/configure +++ b/Build/source/texk/dvipng/configure @@ -16019,6 +16019,47 @@ $(ZLIB_DEPEND): ${top_builddir}/../../libs/zlib/include/zconf.h ${top_builddir}/../../libs/zlib/include/zconf.h: cd ${top_builddir}/../../libs/zlib && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if <zlib.h> defines 'z_const'" >&5 +$as_echo_n "checking if <zlib.h> defines 'z_const'... " >&6; } +if ${kpse_cv_have_decl_z_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" +eval LIBS=\"$ZLIB_LIBS \$LIBS\" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <zlib.h> +int +main () +{ +z_const char * foo(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + kpse_cv_have_decl_z_const=yes +else + kpse_cv_have_decl_z_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS=$kpse_save_CPPFLAGS +LIBS=$kpse_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_decl_z_const" >&5 +$as_echo "$kpse_cv_have_decl_z_const" >&6; } +case $kpse_cv_have_decl_z_const in #( + yes) : + +$as_echo "#define ZLIB_CONST 1" >>confdefs.h + ;; #( + *) : + +$as_echo "#define z_const /**/" >>confdefs.h + ;; +esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. diff --git a/Build/source/texk/dvisvgm/config.h.in b/Build/source/texk/dvisvgm/config.h.in index aa5bbd51f51..a05ced4c230 100644 --- a/Build/source/texk/dvisvgm/config.h.in +++ b/Build/source/texk/dvisvgm/config.h.in @@ -172,6 +172,9 @@ /* Version number of package */ #undef VERSION +/* Define to 1 if <zlib.h> declares 'z_const'. */ +#undef ZLIB_CONST + /* Enable large inode numbers on Mac OS X 10.5. */ #ifndef _DARWIN_USE_64_BIT_INODE # define _DARWIN_USE_64_BIT_INODE 1 @@ -210,3 +213,6 @@ /* Define to the type of an unsigned integer type of width exactly 64 bits if such a type exists and the standard includes do not define it. */ #undef uint64_t + +/* Define as empty if not declared in <zlib.h>. */ +#undef z_const diff --git a/Build/source/texk/dvisvgm/configure b/Build/source/texk/dvisvgm/configure index 0426a5455de..f040ac95c3b 100755 --- a/Build/source/texk/dvisvgm/configure +++ b/Build/source/texk/dvisvgm/configure @@ -19089,6 +19089,47 @@ $(ZLIB_DEPEND): ${top_builddir}/../../libs/zlib/include/zconf.h ${top_builddir}/../../libs/zlib/include/zconf.h: cd ${top_builddir}/../../libs/zlib && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if <zlib.h> defines 'z_const'" >&5 +$as_echo_n "checking if <zlib.h> defines 'z_const'... " >&6; } +if ${kpse_cv_have_decl_z_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" +eval LIBS=\"$ZLIB_LIBS \$LIBS\" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <zlib.h> +int +main () +{ +z_const char * foo(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + kpse_cv_have_decl_z_const=yes +else + kpse_cv_have_decl_z_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS=$kpse_save_CPPFLAGS +LIBS=$kpse_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_decl_z_const" >&5 +$as_echo "$kpse_cv_have_decl_z_const" >&6; } +case $kpse_cv_have_decl_z_const in #( + yes) : + +$as_echo "#define ZLIB_CONST 1" >>confdefs.h + ;; #( + *) : + +$as_echo "#define z_const /**/" >>confdefs.h + ;; +esac ## _KPSE_LIB_FLAGS: Setup freetype2 (-lfreetype) flags diff --git a/Build/source/texk/kpathsea/ChangeLog b/Build/source/texk/kpathsea/ChangeLog index 8eba46fcce4..d50b666bf5f 100644 --- a/Build/source/texk/kpathsea/ChangeLog +++ b/Build/source/texk/kpathsea/ChangeLog @@ -1,3 +1,7 @@ +2013-08-17 Peter Breitenlohner <peb@mppmu.mpg.de> + + * configure.ac (AH_TOP): Simplify the generation of c-auto.h. + 2013-08-14 Akira Kakuto <kakuto@fuk.kindai.ac.jp> * win32lib.c, mingw32.c (texlive_gs_init()): Fix a bug. 'n' and 'f' can diff --git a/Build/source/texk/kpathsea/c-auto.in b/Build/source/texk/kpathsea/c-auto.in index 82d09aeb13a..60d6c1c72ec 100644 --- a/Build/source/texk/kpathsea/c-auto.in +++ b/Build/source/texk/kpathsea/c-auto.in @@ -23,7 +23,7 @@ #define KPATHSEA_C_AUTO_H /* kpathsea: the version string. */ -#define KPSEVERSION "REPLACE-WITH-KPSEVERSION" +#define KPSEVERSION "kpathsea version 6.2.0dev" /* Define to 1 if the `closedir' function returns void instead of `int'. */ #undef CLOSEDIR_VOID diff --git a/Build/source/texk/kpathsea/configure b/Build/source/texk/kpathsea/configure index a31863b3aaa..299689b7dda 100755 --- a/Build/source/texk/kpathsea/configure +++ b/Build/source/texk/kpathsea/configure @@ -2751,8 +2751,6 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. KPSEVERSION=6.2.0dev -$as_echo "#define KPSEVERSION \"kpathsea version 6.2.0dev\"" >>confdefs.h - KPSE_LT_VERSINFO=8:0:2 diff --git a/Build/source/texk/kpathsea/configure.ac b/Build/source/texk/kpathsea/configure.ac index 6497629baa6..7a8929756aa 100644 --- a/Build/source/texk/kpathsea/configure.ac +++ b/Build/source/texk/kpathsea/configure.ac @@ -14,7 +14,6 @@ AC_CONFIG_AUX_DIR([../../build-aux]) AC_CONFIG_MACRO_DIR([../../m4]) AC_SUBST([KPSEVERSION], [kpse_version]) -AC_DEFINE([KPSEVERSION], ["kpathsea version kpse_version"]) KPSE_LT_VERSION([kpse]) m4_include([../../version.ac])[] dnl define tex_live_version @@ -139,7 +138,7 @@ AH_TOP([/* c-auto.h: defines for kpathsea, as determined by configure. #define KPATHSEA_C_AUTO_H /* kpathsea: the version string. */ -#define KPSEVERSION "REPLACE-WITH-KPSEVERSION"]) +#define KPSEVERSION "kpathsea version] kpse_version["]) AH_BOTTOM([#endif /* !KPATHSEA_C_AUTO_H */]) AC_CONFIG_FILES([Makefile doc/Makefile man/Makefile win32/Makefile]) diff --git a/Build/source/texk/kpathsea/doc/Makefile.am b/Build/source/texk/kpathsea/doc/Makefile.am index 54e91acabbb..57bea3f26e5 100644 --- a/Build/source/texk/kpathsea/doc/Makefile.am +++ b/Build/source/texk/kpathsea/doc/Makefile.am @@ -1,11 +1,8 @@ ## Makefile.am for the TeX Live subdirectory texk/kpathsea/doc/ ## -## Copyright (C) 2009, 2010 Peter Breitenlohner <tex-live@tug.org> +## Copyright (C) 2009-2013 Peter Breitenlohner <tex-live@tug.org> ## You may freely use, modify and/or distribute this file. - -DISTCLEANFILES = $(DVIS) $(PSS) - -## The info files +## info_TEXINFOS = kpathsea.texi kpathsea_TEXINFOS = bugs.texi hier.texi install.texi unixtex.texi diff --git a/Build/source/texk/kpathsea/doc/Makefile.in b/Build/source/texk/kpathsea/doc/Makefile.in index 8afd2e18ca2..672e3b7ccb8 100644 --- a/Build/source/texk/kpathsea/doc/Makefile.in +++ b/Build/source/texk/kpathsea/doc/Makefile.in @@ -310,7 +310,6 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -DISTCLEANFILES = $(DVIS) $(PSS) info_TEXINFOS = kpathsea.texi kpathsea_TEXINFOS = bugs.texi hier.texi install.texi unixtex.texi all: all-am @@ -567,7 +566,6 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" diff --git a/Build/source/texk/ptexenc/ChangeLog b/Build/source/texk/ptexenc/ChangeLog index eba077e7b40..89d896cd0d4 100644 --- a/Build/source/texk/ptexenc/ChangeLog +++ b/Build/source/texk/ptexenc/ChangeLog @@ -1,3 +1,7 @@ +2013-08-17 Peter Breitenlohner <peb@mppmu.mpg.de> + + * configure.ac (AH_TOP): Simplify the generation of c-auto.h. + 2013-07-06 Peter Breitenlohner <peb@mppmu.mpg.de> * Makefile.am: Use ../../am/rebuild.am. diff --git a/Build/source/texk/ptexenc/c-auto.in b/Build/source/texk/ptexenc/c-auto.in index e50cc5cba72..482385b12e4 100644 --- a/Build/source/texk/ptexenc/c-auto.in +++ b/Build/source/texk/ptexenc/c-auto.in @@ -6,7 +6,7 @@ #define PTEXENC_C_AUTO_H /* ptexenc: the version string. */ -#define PTEXENCVERSION "REPLACE-WITH-PTEXENCVERSION" +#define PTEXENCVERSION "ptexenc version 1.3.2dev" /* Define to 1 if the `closedir' function returns void instead of `int'. */ #undef CLOSEDIR_VOID diff --git a/Build/source/texk/ptexenc/configure b/Build/source/texk/ptexenc/configure index d10f8b2f271..f012f0d0753 100755 --- a/Build/source/texk/ptexenc/configure +++ b/Build/source/texk/ptexenc/configure @@ -2509,8 +2509,6 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. PTEXENCVERSION=1.3.2dev -$as_echo "#define PTEXENCVERSION \"ptexenc version 1.3.2dev\"" >>confdefs.h - PTEXENC_LT_VERSINFO=4:2:3 diff --git a/Build/source/texk/ptexenc/configure.ac b/Build/source/texk/ptexenc/configure.ac index feef29b29c1..cea7b00825b 100644 --- a/Build/source/texk/ptexenc/configure.ac +++ b/Build/source/texk/ptexenc/configure.ac @@ -14,7 +14,6 @@ AC_CONFIG_AUX_DIR([../../build-aux]) AC_CONFIG_MACRO_DIR([../../m4]) AC_SUBST([PTEXENCVERSION], [ptexenc_version]) -AC_DEFINE([PTEXENCVERSION], ["ptexenc version ptexenc_version"]) KPSE_LT_VERSION([ptexenc]) dnl Common code for all programs (or libraries) using libkpathsea. @@ -48,7 +47,7 @@ AH_TOP([/* ptexenc/c-auto.h: defines for ptexenc, as determined by configure. */ #define PTEXENC_C_AUTO_H /* ptexenc: the version string. */ -#define PTEXENCVERSION "REPLACE-WITH-PTEXENCVERSION"]) +#define PTEXENCVERSION "ptexenc version] ptexenc_version["]) AH_BOTTOM([#endif /* !PTEXENC_C_AUTO_H */]) AC_CONFIG_FILES([Makefile]) diff --git a/Build/source/texk/ttf2pk2/config.h.in b/Build/source/texk/ttf2pk2/config.h.in index 08b8ce41a5a..94c996d4369 100644 --- a/Build/source/texk/ttf2pk2/config.h.in +++ b/Build/source/texk/ttf2pk2/config.h.in @@ -130,6 +130,9 @@ /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS +/* Define to 1 if <zlib.h> declares 'z_const'. */ +#undef ZLIB_CONST + /* Enable large inode numbers on Mac OS X 10.5. */ #ifndef _DARWIN_USE_64_BIT_INODE # define _DARWIN_USE_64_BIT_INODE 1 @@ -168,3 +171,6 @@ /* Define to the type of an unsigned integer type of width exactly 64 bits if such a type exists and the standard includes do not define it. */ #undef uint64_t + +/* Define as empty if not declared in <zlib.h>. */ +#undef z_const diff --git a/Build/source/texk/ttf2pk2/configure b/Build/source/texk/ttf2pk2/configure index 7cdd46b53a2..37c43c2664d 100755 --- a/Build/source/texk/ttf2pk2/configure +++ b/Build/source/texk/ttf2pk2/configure @@ -14476,6 +14476,47 @@ $(ZLIB_DEPEND): ${top_builddir}/../../libs/zlib/include/zconf.h ${top_builddir}/../../libs/zlib/include/zconf.h: cd ${top_builddir}/../../libs/zlib && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if <zlib.h> defines 'z_const'" >&5 +$as_echo_n "checking if <zlib.h> defines 'z_const'... " >&6; } +if ${kpse_cv_have_decl_z_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" +eval LIBS=\"$ZLIB_LIBS \$LIBS\" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <zlib.h> +int +main () +{ +z_const char * foo(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + kpse_cv_have_decl_z_const=yes +else + kpse_cv_have_decl_z_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS=$kpse_save_CPPFLAGS +LIBS=$kpse_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_decl_z_const" >&5 +$as_echo "$kpse_cv_have_decl_z_const" >&6; } +case $kpse_cv_have_decl_z_const in #( + yes) : + +$as_echo "#define ZLIB_CONST 1" >>confdefs.h + ;; #( + *) : + +$as_echo "#define z_const /**/" >>confdefs.h + ;; +esac ## _KPSE_LIB_FLAGS: Setup freetype2 (-lfreetype) flags diff --git a/Build/source/texk/web2c/c-auto.in b/Build/source/texk/web2c/c-auto.in index 67b7cd9a10a..5c02f3bd4f3 100644 --- a/Build/source/texk/web2c/c-auto.in +++ b/Build/source/texk/web2c/c-auto.in @@ -317,6 +317,9 @@ `char[]'. */ #undef YYTEXT_POINTER +/* Define to 1 if <zlib.h> declares 'z_const'. */ +#undef ZLIB_CONST + /* Enable large inode numbers on Mac OS X 10.5. */ #ifndef _DARWIN_USE_64_BIT_INODE # define _DARWIN_USE_64_BIT_INODE 1 @@ -361,4 +364,7 @@ such a type exists and the standard includes do not define it. */ #undef uint64_t +/* Define as empty if not declared in <zlib.h>. */ +#undef z_const + #endif /* !WEB2C_C_AUTO_H */ diff --git a/Build/source/texk/web2c/configure b/Build/source/texk/web2c/configure index 26822965fe7..2329aa0ea91 100755 --- a/Build/source/texk/web2c/configure +++ b/Build/source/texk/web2c/configure @@ -23018,6 +23018,47 @@ $(ZLIB_DEPEND): ${top_builddir}/../../libs/zlib/include/zconf.h ${top_builddir}/../../libs/zlib/include/zconf.h: cd ${top_builddir}/../../libs/zlib && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if <zlib.h> defines 'z_const'" >&5 +$as_echo_n "checking if <zlib.h> defines 'z_const'... " >&6; } +if ${kpse_cv_have_decl_z_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" +eval LIBS=\"$ZLIB_LIBS \$LIBS\" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <zlib.h> +int +main () +{ +z_const char * foo(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + kpse_cv_have_decl_z_const=yes +else + kpse_cv_have_decl_z_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS=$kpse_save_CPPFLAGS +LIBS=$kpse_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_decl_z_const" >&5 +$as_echo "$kpse_cv_have_decl_z_const" >&6; } +case $kpse_cv_have_decl_z_const in #( + yes) : + +$as_echo "#define ZLIB_CONST 1" >>confdefs.h + ;; #( + *) : + +$as_echo "#define z_const /**/" >>confdefs.h + ;; +esac ## _KPSE_LIB_FLAGS: Setup lua52 (-llua52) flags LUA52_INCLUDES="-I$kpse_BLD/libs/lua52/include" diff --git a/Build/source/texk/xdvik/c-auto.in b/Build/source/texk/xdvik/c-auto.in index 0c524476920..8978c761130 100644 --- a/Build/source/texk/xdvik/c-auto.in +++ b/Build/source/texk/xdvik/c-auto.in @@ -396,6 +396,9 @@ /* Define to 1 if the X Window System is missing or not being used. */ #undef X_DISPLAY_MISSING +/* Define to 1 if <zlib.h> declares 'z_const'. */ +#undef ZLIB_CONST + /* Enable large inode numbers on Mac OS X 10.5. */ #ifndef _DARWIN_USE_64_BIT_INODE # define _DARWIN_USE_64_BIT_INODE 1 @@ -452,3 +455,6 @@ /* Define as `fork' if `vfork' does not work. */ #undef vfork + +/* Define as empty if not declared in <zlib.h>. */ +#undef z_const diff --git a/Build/source/texk/xdvik/configure b/Build/source/texk/xdvik/configure index 9461bfa997e..ef148f28b72 100755 --- a/Build/source/texk/xdvik/configure +++ b/Build/source/texk/xdvik/configure @@ -18199,6 +18199,47 @@ $(ZLIB_DEPEND): ${top_builddir}/../../libs/zlib/include/zconf.h ${top_builddir}/../../libs/zlib/include/zconf.h: cd ${top_builddir}/../../libs/zlib && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if <zlib.h> defines 'z_const'" >&5 +$as_echo_n "checking if <zlib.h> defines 'z_const'... " >&6; } +if ${kpse_cv_have_decl_z_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\" +eval LIBS=\"$ZLIB_LIBS \$LIBS\" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <zlib.h> +int +main () +{ +z_const char * foo(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + kpse_cv_have_decl_z_const=yes +else + kpse_cv_have_decl_z_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS=$kpse_save_CPPFLAGS +LIBS=$kpse_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_decl_z_const" >&5 +$as_echo "$kpse_cv_have_decl_z_const" >&6; } +case $kpse_cv_have_decl_z_const in #( + yes) : + +$as_echo "#define ZLIB_CONST 1" >>confdefs.h + ;; #( + *) : + +$as_echo "#define z_const /**/" >>confdefs.h + ;; +esac ## _KPSE_LIB_FLAGS: Setup freetype2 (-lfreetype) flags |