From 0b7b2c69ec83497d9accab064da0f4ad07662d42 Mon Sep 17 00:00:00 2001 From: Peter Breitenlohner Date: Thu, 19 Mar 2009 13:59:30 +0000 Subject: prepare for new build system git-svn-id: svn://tug.org/texlive/trunk@12429 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/kpathsea/Makefile.in.orig | 258 +++++++++++++++++++++++++++ Build/source/texk/kpathsea/common.ac.orig | 117 ++++++++++++ Build/source/texk/kpathsea/configure.in.orig | 73 ++++++++ 3 files changed, 448 insertions(+) create mode 100644 Build/source/texk/kpathsea/Makefile.in.orig create mode 100644 Build/source/texk/kpathsea/common.ac.orig create mode 100644 Build/source/texk/kpathsea/configure.in.orig (limited to 'Build/source/texk/kpathsea') diff --git a/Build/source/texk/kpathsea/Makefile.in.orig b/Build/source/texk/kpathsea/Makefile.in.orig new file mode 100644 index 00000000000..3fb569e9f1c --- /dev/null +++ b/Build/source/texk/kpathsea/Makefile.in.orig @@ -0,0 +1,258 @@ +# $Id$ +# @configure_input@ +# Makefile for kpathsea. Public domain. +version = @KPSEVERSION@ + +# Add -DNO_DEBUG to disable debugging, for vanishingly better performance. + +kpse_include ../make/paths.mk +kpse_include ../make/makevars.mk +kpse_include ../make/common.mk +kpse_include ../make/library.mk +kpse_include ../make/programs.mk +kpse_include ../make/texi.mk + +@MAINT@warn_more = -Wmissing-prototypes -Wwrite-strings -Wshadow +@MAINT@MAKEINFO_FLAGS := $(MAKEINFO_FLAGS) --no-split + +# Install these header files (except acconfig.h). +install_headers = *.h $(srcdir)/*.h + +# Put tex-file.o first, because it's what depends on the paths, and may +# reduce frustration if the paths are wrong by doing it first. + +objects = tex-file.lo absolute.lo atou.lo cnf.lo concat.lo concat3.lo \ +concatn.lo db.lo debug.lo dir.lo elt-dirs.lo expand.lo extend-fname.lo \ +file-p.lo find-suffix.lo fn.lo fontmap.lo getopt.lo getopt1.lo hash.lo \ +kdefault.lo kpathsea.lo line.lo magstep.lo make-suffix.lo mingw32.lo path-elt.lo \ +pathsearch.lo proginit.lo progname.lo readable.lo rm-suffix.lo \ +str-list.lo str-llist.lo tex-glyph.lo tex-hush.lo tex-make.lo \ +tilde.lo truncate.lo uppercasify.lo variable.lo version.lo xbasename.lo \ +xcalloc.lo xdirname.lo xfopen.lo xfseek.lo xfseeko.lo xftell.lo xftello.lo xgetcwd.lo xmalloc.lo \ +xopendir.lo xputenv.lo xrealloc.lo xstat.lo xstrdup.lo $(liblobjs) $(malloc) +liblobjs = @LTLIBOBJS@ + +library = kpathsea + +# We want to compile almost everything with libtool ... +KPATHSEA_CC = $(LIBTOOL) --mode=compile $(CC) +.SUFFIXES: .lo +.c.lo: + $(KPATHSEA_CC) $(ALL_CFLAGS) -DMAKE_KPSE_DLL -c $< + +default all: kpsewhich kpsestat kpseaccess kpsereadlink $(library).info manfiles + +kpsewhich: $(kpathsea) kpsewhich.o + $(kpathsea_link) kpsewhich.o $(LOADLIBES) + +kpsestat: kpsestat.o + $(link_command) kpsestat.o + +kpseaccess: access.o + $(link_command) access.o + +kpsereadlink: readlink.o + $(link_command) readlink.o + +$(kpathsea): $(objects) + $(kpathsea_link) -rpath $(libdir) -version-info @KPSE_LT_VERS@ $(objects) + +# First null out comments and leading/trailing whitespace, then remove +# lines that define invalid C identifiers, then remove blank lines and +# lines that define lowercase values (those are never path values). Each +# line remaining looks like +# = +# (but = and surrounding spaces are optional, hence can't remove all spaces). +# Change this to #ifndef DEFAULT_name@#define DEFAULT_name "value"@#endif, +# then change the @'s to newlines (sed isn't good at multiline replacements). +# +# No backslash-newline escapes in the long sed replacement because that +# will turn into a space in the output. +# +# We replace the $TEXMF* references with nonexisting directories. These +# are the compile-time defaults and are not useful in the native TL +# builds; we rely completely on the self-location. (Previously, the +# random build-time paths would get included in the binaries, to +# consequent confusion.) +# +# We preserve the $SELFAUTO* references, since the selfauto-using +# compile-time path for cnf files is how texmf.cnf gets found, which +# determines everything else. +# +# The definition of DEFAULT_TEXMF (and other variables) +# that winds up in the final paths.h will not be used. +# +# We don't want to rewrite paths.h when we have only changed comments +# in texmf.cnf that have no effect on paths.h, since that would cause +# almost everything to be rebuilt. +# +# We also replace all semicolons with colons in the paths. +# The path-splitting code should be changed to understand both. +# +$(kpathsea_dir)/paths.h: stamp-paths +stamp-paths: $(srcdir)/texmf.cnf + echo "/* paths.h: Generated from texmf.cnf. */" >paths.tmp + sed -e 's/%.*//' -e 's/^[ ]*//' -e 's/[ ]*$$//' $(srcdir)/texmf.cnf \ + | grep '^[ ]*[A-Z0-9_]*[ =]' \ + | sed '/^$$/d' \ + | sed 's/^\([^ =]*\)[ ]*=*[ ]*\(.*\)/#ifndef DEFAULT_\1%#define DEFAULT_\1 "\2"%#endif/' \ + | tr '%' '\012' \ + | sed -e 's%\$$TEXMFCONFIG%/nonesuch/texmfconfig%g' \ + -e 's%\$$TEXMFDIST%/nonesuch/texmfdist%g' \ + -e 's%\$$TEXMFDOCDIR%/nonesuch/texmfdocdir%g' \ + -e 's%\$$TEXMFLOCAL%/nonesuch/texmflocal%g' \ + -e 's%\$$TEXMFMAIN%/nonesuch/texmfmain%g' \ + -e 's%\$$TEXMFSYSCONFIG%/nonesuch/texmfsysconfig%g' \ + -e 's%\$$TEXMFSYSVAR%/nonesuch/texmfsysvar%g' \ + -e 's%\$$TEXMFVAR%/nonesuch/texmfvar%g' \ + -e 's%\$$TEXMF%/nonesuch/texmf%g' \ + -e 's%\$$VARTEXFONTS%/nonesuch/vartexfonts%g' \ + | sed -e 's%;%:%g' \ + >>paths.tmp + @if cmp -s paths.h paths.tmp 2>/dev/null; then \ + echo "paths.h is unchanged"; \ + else \ + echo "cp paths.tmp paths.h"; \ + cp paths.tmp paths.h; \ + fi + rm -f paths.tmp + date >stamp-paths + +# Need an extra definition for this. Dependencies included below. +tex-file.o: + $(KPATHSEA_CC) -DDEFAULT_FONT_SIZES='\"$(default_texsizes)\"' $(srcdir)/tex-file.c + +check: kpsewhich + ./kpsewhich -expand-var '$$TEXMF' + +install: install-exec install-data +uninstall: uninstall-exec uninstall-data + +install-exec: kpsewhich + $(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir) $(scriptdir) \ + $(libdir) $(web2cdir) + if grep 'original mktexpk --' $(scriptdir)/mktexpk >/dev/null 2>&1\ + || test ! -r $(scriptdir)/mktexpk; then \ + $(INSTALL_SCRIPT) $(srcdir)/mktexpk $(scriptdir)/mktexpk; \ + else true; fi + if grep 'original mktexmf --' $(scriptdir)/mktexmf >/dev/null 2>&1\ + || test ! -r $(scriptdir)/mktexmf; then \ + $(INSTALL_SCRIPT) $(srcdir)/mktexmf $(scriptdir)/mktexmf; \ + else true; fi + if grep 'original mktextfm --' $(scriptdir)/mktextfm >/dev/null 2>&1\ + || test ! -r $(scriptdir)/mktextfm; then \ + $(INSTALL_SCRIPT) $(srcdir)/mktextfm $(scriptdir)/mktextfm; \ + else true; fi + if grep 'original mktexlsr --' $(scriptdir)/mktexlsr >/dev/null 2>&1\ + || test ! -r $(scriptdir)/mktexlsr; then \ + $(INSTALL_SCRIPT) $(srcdir)/mktexlsr $(scriptdir)/mktexlsr; \ + else true; fi + $(INSTALL_DATA) $(srcdir)/mktex.opt $(web2cdir)/mktex.opt + $(INSTALL_SCRIPT) $(srcdir)/mktexdir $(web2cdir)/mktexdir + $(INSTALL_DATA) $(srcdir)/mktexdir.opt $(web2cdir)/mktexdir.opt + $(INSTALL_SCRIPT) $(srcdir)/mktexnam $(web2cdir)/mktexnam + $(INSTALL_DATA) $(srcdir)/mktexnam.opt $(web2cdir)/mktexnam.opt + $(INSTALL_SCRIPT) $(srcdir)/mktexupd $(web2cdir)/mktexupd + $(INSTALL_LIBTOOL_LIBS) lib$(library).la $(libdir) + $(INSTALL_LIBTOOL_PROG) kpsewhich $(bindir) + $(INSTALL_PROGRAM) kpsestat $(bindir) + $(INSTALL_PROGRAM) kpseaccess $(bindir) + $(INSTALL_PROGRAM) kpsereadlink $(bindir) +uninstall-exec: + $(UNINSTALL_LIBTOOL_LIBS) $(libdir)/lib$(library).la + $(UNINSTALL_LIBTOOL_PROG) $(bindir)/kpsewhich + $(UNINSTALL_PROGRAM) $(bindir)/kpsestat + $(UNINSTALL_PROGRAM) $(bindir)/kpseaccess + $(UNINSTALL_PROGRAM) $(bindir)/kpsereadlink + +install-data: $(srcdir)/texmf.cnf kpathsea.info install-man + $(SHELL) $(top_srcdir)/../mkinstalldirs $(texmf) $(infodir) $(web2cdir) + if grep 'original texmf.cnf --' $(web2cdir)/texmf.cnf >/dev/null 2>&1 \ + || test ! -r $(web2cdir)/texmf.cnf; then \ + $(INSTALL_DATA) $(srcdir)/texmf.cnf $(web2cdir)/texmf.cnf; \ + else true; fi +# Info files. + $(INSTALL_DATA) $(srcdir)/kpathsea.i* $(infodir)/ +# Should we install the headers? They are not just system-dependent, +# which is bad enough, but even compiler-dependent. + $(SHELL) $(top_srcdir)/../mkinstalldirs $(includedir)/kpathsea + for f in $(install_headers); do \ + $(INSTALL_DATA) $$f $(includedir)/kpathsea/; done + rm -f $(includedir)/kpathsea/acconfig.h +# Post. + $(POST_INSTALL) + if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \ + install-info --info-dir=$(infodir) $(infodir)/kpathsea.info; \ + else true; fi + +uninstall-data: + $(PRE_UNINSTALL) + if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \ + install-info --delete --info-dir=$(infodir) $(infodir)/kpathsea.info; \ + else true; fi + $(NORMAL_UNINSTALL) + rm -f $(infodir)/kpathsea.i* +# for f in $(install_headers); do rm -f $(includedir)/`basename $$f`; done + +# distdir is used by other distributions; they define $(distdir). +distdir: doc $(library).dvi $(library).h + rm -rf $(distdir) + mkdir -p $(distdir) + ln $(ln_files) $(distdir) + touch *.info* + ln mktex* *.info* *.texi *.ftp $(library).aux $(library).cps $(distdir) + rm -f $(distdir)/*.1 $(distdir)/*.man + ln *.man $(distdir) + ln BUGS README.CONFIGURE HIER PROJECTS *.ac $(distdir) + touch kpathsea.h # to avoid .cps.h rule on Solaris + cd $(distdir) && rm -f paths.h + +# I don't use this, but other programmers want it. acconfig.h is an +# autoheader input file, not an includable C header. Bad name. +$(library).h: always + rm -f $@ + echo '/* This is a generated file */' >$@ + echo '/* collecting all kpathsea headers. */' >>$@ + echo '#include ' >>$@ + ls -1 *.h \ + | grep -v '\(acconfig\|config\|kpathsea\|win32lib\)\.h' \ + | sed -e 's,^,#include ,' >>$@ + touch -r `ls -1t *.h | tail +2 | head -1` $@ +always: +.PHONY: always + +kpse_include ../make/config.mk + +info: $(library).info +dvi: $(library).dvi + +$(library).info: bugs.texi hier.texi install.texi unixtex.texi + +@MAINT@INSTALL: install.texi +@MAINT@ $(MAKEINFO) $(one_info) $(MAKEINFO_FLAGS) $< -o $@ +@MAINT@ $(top_srcdir)/../add-info-toc $@ +@MAINT@BUGS: bugs.texi +@MAINT@ $(MAKEINFO) $(one_info) $(MAKEINFO_FLAGS) $< -o $@ +@MAINT@ $(top_srcdir)/../add-info-toc $@ +@MAINT@HIER: hier.texi +@MAINT@ $(MAKEINFO) $(one_info) $(MAKEINFO_FLAGS) $< -o $@ +@MAINT@unixtex.ftp: unixtex.texi +@MAINT@ $(MAKEINFO) $(one_info) $(MAKEINFO_FLAGS) $< -o $@ +@MAINT@doc: info HIER BUGS INSTALL unixtex.ftp + +kpse_include ../make/clean.mk + +mostlyclean:: + rm -f kpsewhich kpsestat kpseaccess kpsereadlink *.lo + $(LIBTOOL) --mode=clean $(RM) lib$(library).la +distclean:: + rm -f paths.h stamp-paths + +# The manual pages +manfiles = kpseaccess.1 kpsestat.1 kpsewhich.1 kpsereadlink.1 \ + mktexlsr.1 mktexmf.1 mktextfm.1 mktexpk.1 + +kpse_include ../make/man.mk + +kpse_include ../make/rdepend.mk +kpse_include depend.mk diff --git a/Build/source/texk/kpathsea/common.ac.orig b/Build/source/texk/kpathsea/common.ac.orig new file mode 100644 index 00000000000..79d0789f750 --- /dev/null +++ b/Build/source/texk/kpathsea/common.ac.orig @@ -0,0 +1,117 @@ +dnl Public domain. +dnl Originally written by Karl Berry +dnl +dnl Common Autoconf sinclude file for kpathsea-using programs. (Have to +dnl use the m4 `sinclude' builtin instead of `include', since Autoconf +dnl disables `include'.) + +AC_PROG_CC +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_MAKE_SET + +sinclude(../libtool.m4) + +AC_PROG_LIBTOOL + +AC_SYS_LARGEFILE +AC_FUNC_FSEEKO + +AC_HEADER_DIRENT +AC_HEADER_STDC +AC_FUNC_CLOSEDIR_VOID +AC_CHECK_HEADERS([assert.h float.h limits.h memory.h pwd.h stdlib.h \ + string.h strings.h sys/param.h unistd.h]) +AC_CHECK_DECLS([putenv, strstr]) + +dnl Libtool supporting objects that may be required on ancient broken system. +AC_CHECK_FUNCS(putenv,, LTLIBOBJS="$LTLIBOBJS putenv.lo") +AC_CHECK_FUNCS(strcasecmp,, LTLIBOBJS="$LTLIBOBJS strcasecmp.lo") +AC_CHECK_FUNCS(strtol,, LTLIBOBJS="$LTLIBOBJS strtol.lo") +AC_CHECK_FUNCS(strstr,, LTLIBOBJS="$LTLIBOBJS strstr.lo") +AC_SUBST(LTLIBOBJS) + +AC_CHECK_FUNCS(bcmp bcopy bzero getcwd getwd index memcmp memcpy rindex strchr strrchr) + +AC_C_CONST + +# Check whether struct stat provides high-res time. +AC_CHECK_MEMBERS([struct stat.st_mtim]) + +# Check whether prototypes work. +AC_MSG_CHECKING(whether the compiler accepts prototypes) +AC_CACHE_VAL(kb_cv_c_prototypes, +[AC_TRY_COMPILE([#include ], [extern void foo(int i,...);], + kb_cv_c_prototypes=yes, kb_cv_c_prototypes=no)])dnl +AC_MSG_RESULT($kb_cv_c_prototypes) +if test "$kb_cv_c_prototypes" = yes; then + AC_DEFINE([HAVE_PROTOTYPES], 1, + [Define to 1 if your compiler understands prototypes.]) +fi + +# This is a GNU libc invention. +AC_MSG_CHECKING([whether program_invocation_name is predefined]) +AC_CACHE_VAL([kb_cv_var_program_inv_name], +[AC_TRY_LINK(, + [extern char *program_invocation_name; program_invocation_name = "love";], + [kb_cv_var_program_inv_name=yes], [kb_cv_var_program_inv_name=no])])dnl +AC_MSG_RESULT([$kb_cv_var_program_inv_name]) +if test "$kb_cv_var_program_inv_name" = yes; then + AC_DEFINE([HAVE_PROGRAM_INVOCATION_NAME], 1, + [Define to 1 if you are using GNU libc or otherwise have global + variables `program_invocation_name' and `program_invocation_short_name'.]) +fi + +if test $ac_cv_func_getcwd = yes; then +# We only need to run this if we have getcwd. +AC_MSG_CHECKING([whether getcwd uses fork or vfork]) +AC_CACHE_VAL([kb_cv_func_getcwd_forks], +[AC_TRY_RUN([ +int fork() { exit(1); } +int vfork() { exit(1); } +extern char *getcwd(); +char path[100]; +int main() { +getcwd(path,100); +return 0; +}], [kb_cv_func_getcwd_forks=no], [kb_cv_func_getcwd_forks=yes], + [kb_cv_func_getcwd_forks=no])])dnl +AC_MSG_RESULT([$kb_cv_func_getcwd_forks]) +if test $kb_cv_func_getcwd_forks = yes; then + AC_DEFINE([GETCWD_FORKS], 1, + [Define to 1 if getcwd is implemented using fork or vfork. Let me know + if you have to add this by hand because configure failed to detect it.]) +fi +fi + +# Common --with and --enable options. +sinclude(../../texk/kpathsea/withenable.ac) + +# Implementation of those options. +AC_DEFUN([_KPSE_DEFINE_MAKE_BY_DEFAULT], +[if test "x$with_$1_default" = xyes; then + AC_DEFINE([MAKE_$2_BY_DEFAULT], 1, + [Define to 1 if you want to run $1 if $3 missing, and to 0 if you don't.]) +else + AC_DEFINE([MAKE_$2_BY_DEFAULT], 0) +fi +])# _KPSE_DEFINE_MAKE_BY_DEFAULT + +_KPSE_DEFINE_MAKE_BY_DEFAULT([mktexmf], [TEX_MF], [MF source]) +_KPSE_DEFINE_MAKE_BY_DEFAULT([mktexpk], [TEX_PK], [PK font]) +_KPSE_DEFINE_MAKE_BY_DEFAULT([mktextex], [TEX_TEX], [TeX source]) +_KPSE_DEFINE_MAKE_BY_DEFAULT([mktexfmt], [TEX_FMT], [format file]) +_KPSE_DEFINE_MAKE_BY_DEFAULT([mktextfm], [TEX_TFM], [TFM file]) +_KPSE_DEFINE_MAKE_BY_DEFAULT([mkocp], [OMEGA_OCP], [OCP file]) +_KPSE_DEFINE_MAKE_BY_DEFAULT([mkofm], [OMEGA_OFM], [OFM file]) + +# Is libm present. FIXME: do we need it at all? +AC_CHECK_LIB(m, main) + +# If you're cross-compiling, these macros set up the variables in +# ../make/cross.mk: BUILDCC, BUILDCFLAGS, BUILDCCLD etc. +KPSE_CROSS_BUILD_VAR(CC, cc) +KPSE_CROSS_BUILD_VAR(CFLAGS, $(BUILDXCFLAGS)) +KPSE_CROSS_BUILD_VAR(CPPFLAGS, $(BUILDXCPPFLAGS)) +KPSE_CROSS_BUILD_VAR(LDFLAGS, $(BUILDXLDFLAGS)) +KPSE_CROSS_BUILD_VAR(CCLD, $(BUILDCC)) diff --git a/Build/source/texk/kpathsea/configure.in.orig b/Build/source/texk/kpathsea/configure.in.orig new file mode 100644 index 00000000000..67c9b4b9bb2 --- /dev/null +++ b/Build/source/texk/kpathsea/configure.in.orig @@ -0,0 +1,73 @@ +dnl Process this file with autoconf to produce a configure script. +dnl +dnl Kpathsea package version: +dnl Starting development: +dnl kpse_devel_version = dev; +dnl Making releases: +dnl kpse_micro_version += 1; +dnl kpse_devel_version = ; +dnl +dnl Kpathsea shared library version: +dnl Only bug fixes: +dnl kpse_lib_micro += 1; +dnl Adding new interfaces (backwards compatible) +dnl kpse_lib_minor += 1; +dnl kpse_lib_micro = 0; +dnl Modifying or revoking interfaces (not backwards compatible) +dnl kpse_lib_major += 1; +dnl kpse_lib_minor = 0; +dnl kpse_lib_micro = 0; +dnl +m4_define([kpse_major_version], [3])[]dnl +m4_define([kpse_minor_version], [5])[]dnl +m4_define([kpse_micro_version], [7])[]dnl +m4_define([kpse_devel_version], [dev])[]dnl +m4_define([kpse_version], [kpse_major_version.kpse_minor_version.kpse_micro_version[]kpse_devel_version])[]dnl + +m4_define([kpse_lib_major], [5])[]dnl +m4_define([kpse_lib_minor], [0])[]dnl +m4_define([kpse_lib_micro], [0])[]dnl +m4_define([kpse_lt_version],[m4_eval(kpse_lib_major + kpse_lib_minor):kpse_lib_micro:kpse_lib_minor])[]dnl + +AC_INIT([kpathsea], [kpse_version], [tex-k@mail.tug.org]) +AC_CONFIG_SRCDIR([pathsearch.c]) + +AC_SUBST([KPSEVERSION], [kpse_version]) +AC_DEFINE([KPSEVERSION], ["kpathsea version kpse_version"]) +AC_SUBST([KPSE_LT_VERS], [kpse_lt_version]) + +dnl Write output here, instead of putting a zillion -D's on the command line. +AC_CONFIG_HEADERS([c-auto.h:c-auto.in], + [sed 's/^#define PACKAGE_/#define KPSE_PACKAGE_/' c-auto.h >c-auto.tmp && mv -f c-auto.tmp c-auto.h + date >stamp-auto]) + +sinclude(common.ac) + +AH_TOP([/* c-auto.h: defines for kpathsea, as determined by configure. + + Copyright 1994-97, 2008 Karl Berry. + Copyright 1997-99, 2002, 2005 Olaf Weber. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this library; if not, see . */ + +/* Guard against double inclusion. */ +#ifndef KPATHSEA_C_AUTO_H +#define KPATHSEA_C_AUTO_H + +/* kpathsea: the version string. */ +#define KPSEVERSION "REPLACE-WITH-KPSEVERSION"]) +AH_BOTTOM([#endif /* !KPATHSEA_C_AUTO_H */]) + +KPSE_CONFIG_FILES([Makefile]) +AC_OUTPUT -- cgit v1.2.3