klibtool works for the most part. However, on HP-UX, it does not *relink* executables at install time resulting in relative paths in the executables (HP embeds the path specified with -L in the executable). Rather than fixing klibtool, I made the switch to libtool.
libtool.m4 and ltmain.sh need to be copied to texk/. I have not included a version in this patch due to their size. I would *really* like to see this integrated. If additional work needs to be done to integrate it better, please let me know. A big question is the version number for the shared libkpathsea library. I've used 4:0:0 only to move away from the 3.x.y version currently used. Maybe something else is more suitable. -- albert chin ([EMAIL PROTECTED]) -- snip snip --- texk/make/programs.mk.orig Mon Feb 3 20:03:10 2003 +++ texk/make/programs.mk Mon Feb 3 20:24:46 2003 @@ -15,5 +15,6 @@ # When we link with Kpathsea, have to take account that it might be a # shared library, etc. -kpathsea_link = $(LIBTOOL) link $(link_command) +kpathsea_link = $(LIBTOOL) --mode=link $(link_command) \ + -rpath $(libdir) # End of programs.mk. --- texk/makeindexk/Makefile.in.orig Mon Feb 3 21:58:45 2003 +++ texk/makeindexk/Makefile.in Mon Feb 3 21:58:59 2003 @@ -20,7 +20,7 @@ install-exec: $(programs) $(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir) - $(INSTALL_LIBTOOL_PROG) $(bindir) $(program) + $(INSTALL_LIBTOOL_PROG) $(program) $(bindir) $(INSTALL_SCRIPT) $(srcdir)/mkindex $(scriptdir)/mkindex uninstall-exec: cd $(bindir) && rm -f $(program) --- texk/web2c/otps/Makefile.in.orig Mon Feb 3 21:50:58 2003 +++ texk/web2c/otps/Makefile.in Mon Feb 3 21:51:08 2003 @@ -36,7 +36,7 @@ install-programs: $(programs) $(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir) - for p in $(programs); do $(INSTALL_LIBTOOL_PROG) $(bindir) $$p; done + for p in $(programs); do $(INSTALL_LIBTOOL_PROG) $$p $(bindir); done for p in $(scripts); do $(INSTALL_SCRIPT) $(srcdir)/$$p $(scriptdir); done Makefile: Makefile.in ../config.status --- texk/web2c/pdftexdir/pdftex.mk.orig Mon Feb 3 20:49:53 2003 +++ texk/web2c/pdftexdir/pdftex.mk Mon Feb 3 20:50:06 2003 @@ -33,7 +33,7 @@ ttf2afm: ttf2afm.o $(kpathsea_link) ttf2afm.o $(kpathsea) ttf2afm.o: ttf2afm.c macnames.c - $(compile) $< + $(compile) -c $< -o $@ ttf2afm.c: $(LN) $(srcdir)/pdftexdir/ttf2afm.c . macnames.c: --- texk/web2c/omegadir/omega.mk.orig Mon Feb 3 21:48:22 2003 +++ texk/web2c/omegadir/omega.mk Mon Feb 3 21:48:33 2003 @@ -117,7 +117,7 @@ # The actual binary executables and pool files. install-omega-programs: $(omega_programs) $(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir) - for p in omega; do $(INSTALL_LIBTOOL_PROG) $(bindir) $$p; done + for p in omega; do $(INSTALL_LIBTOOL_PROG) $$p $(bindir); done cd otps && $(MAKE) $(install_makeargs) install-programs cd omegafonts && $(MAKE) $(install_makeargs) install-programs --- texk/web2c/mpware/Makefile.in.orig Mon Feb 3 21:45:08 2003 +++ texk/web2c/mpware/Makefile.in Mon Feb 3 21:45:25 2003 @@ -47,8 +47,8 @@ install-exec: $(programs) $(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir) $(scriptdir) $(INSTALL_PROGRAM) newer $(bindir)/newer - $(INSTALL_LIBTOOL_PROG) $(bindir) dmp - $(INSTALL_LIBTOOL_PROG) $(bindir) mpto + $(INSTALL_LIBTOOL_PROG) dmp $(bindir) + $(INSTALL_LIBTOOL_PROG) mpto $(bindir) $(INSTALL_SCRIPT) makempx $(scriptdir)/makempx install-data: --- texk/web2c/omegafonts/Makefile.in.orig Mon Feb 3 21:49:28 2003 +++ texk/web2c/omegafonts/Makefile.in Mon Feb 3 21:49:39 2003 @@ -53,7 +53,7 @@ install-programs: $(programs) $(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir) - for p in $(programs); do $(INSTALL_LIBTOOL_PROG) $(bindir) $$p; done + for p in $(programs); do $(INSTALL_LIBTOOL_PROG) $$p $(bindir); done install-links: install-programs for f in ""$(linked_programs); do \ --- texk/web2c/Makefile.in.orig Mon Feb 3 20:45:43 2003 +++ texk/web2c/Makefile.in Mon Feb 3 21:47:18 2003 @@ -38,7 +38,7 @@ CXX = @CXX@ CXXLD = $(CXX) cxx_link_command = $(CXXLD) -o $@ $(LDFLAGS) -kpathsea_cxx_link = $(LIBTOOL) link $(cxx_link_command) +kpathsea_cxx_link = $(LIBTOOL) --mode=link $(cxx_link_command) @MAINT@ifeq ($(CC), gcc) @MAINT@XDEFS = -Wimplicit -Wreturn-type -Wcomment -Wformat @@ -180,7 +180,7 @@ @MFW@$(mfw): $(mf_o) $(windowlib) @MFW@ $(kpathsea_link) $(mf_o) $(windowlink) $(LOADLIBES) @[EMAIL PROTECTED]: mfnowin.c -@MFN@ $(compile) -DMFNOWIN $< +@MFN@ $(compile) -DMFNOWIN -c $< -o $@ @MFN@$(mfn): $(mf_nowin_o) window/trap.o @MFN@ $(kpathsea_link) $(mf_nowin_o) window/trap.o $(LOADLIBES) @MFW@@MFN@mf: $(mfw) @@ -581,7 +581,7 @@ $(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir) $(texpooldir) \ $(mfpooldir) $(mppooldir) cd mpware && $(MAKE) $(install_makeargs) install-exec - for p in $(programs); do $(INSTALL_LIBTOOL_PROG) $(bindir) $$p; done + for p in $(programs); do $(INSTALL_LIBTOOL_PROG) $$p $(bindir); done @OMEGA@ cd omegafonts && $(MAKE) $(install_makeargs) install-programs install-links @OMEGA@ cd otps && $(MAKE) $(install_makeargs) install-programs --- texk/xdvik/Makefile.in.orig Mon Feb 3 22:06:36 2003 +++ texk/xdvik/Makefile.in Mon Feb 3 22:06:47 2003 @@ -103,7 +103,7 @@ install-exec: $(program) $(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir) - for p in $(program); do $(INSTALL_LIBTOOL_PROG) $(bindir) $$p; done + for p in $(program); do $(INSTALL_LIBTOOL_PROG) $$p $(bindir); done $(INSTALL_SCRIPT) $(srcdir)/$(perlprog) $(scriptdir)/$(perlprog) $(INSTALL_SCRIPT) $(srcdir)/xdvi-sh $(scriptdir)/xdvi $(INSTALL_SCRIPT) $(srcdir)/xdvizilla $(scriptdir)/xdvizilla --- texk/kpathsea/common.ac.orig Mon Feb 3 18:15:42 2003 +++ texk/kpathsea/common.ac Mon Feb 3 18:26:09 2003 @@ -20,17 +20,12 @@ string.h sys/param.h unistd.h) -dnl We would to do the klibtool stuff only in kpathsea (i.e., in -dnl kpathsea/configure.in instead of here in common.ac), but then -dnl HAVE_PUTENV etc. are not defined when compiling the programs, -dnl because <kpathsea/config.h> includes <c-auto.h> (the programs'), -dnl not <kpathsea/c-auto.h>. Should it include both? But then we will -dnl have many benign redefinitions that some compilers may not consider -dnl benign. And it's a big change. -sinclude(../../texk/acklibtool.m4) -kb_AC_PROG_LIBTOOL dnl If the list of functions here changes, also change acconfig.h. */ -kb_AC_KLIBTOOL_REPLACE_FUNCS(putenv strcasecmp strtol strstr) +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) --- texk/dvipdfm/Makefile.in.orig Mon Feb 3 21:54:04 2003 +++ texk/dvipdfm/Makefile.in Mon Feb 3 21:54:18 2003 @@ -50,8 +50,8 @@ install-exec: $(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir) - $(INSTALL_LIBTOOL_PROG) $(bindir) $(program) - $(INSTALL_LIBTOOL_PROG) $(bindir) ebb + $(INSTALL_LIBTOOL_PROG) $(program) $(bindir) + $(INSTALL_LIBTOOL_PROG) ebb $(bindir) uninstall-exec: cd $(bindir); rm -f $(programs) --- texk/dviljk/Makefile.in.orig Mon Feb 3 21:01:09 2003 +++ texk/dviljk/Makefile.in Mon Feb 3 21:53:13 2003 @@ -36,17 +36,13 @@ $(kpathsea_link) $(objects4l) $(LOADLIBES) dvilj.o: - $(compile) -DLJ $(srcdir)/dvi2xx.c - mv dvi2xx.o $@ + $(compile) -DLJ -c $(srcdir)/dvi2xx.c -o $@ dvilj2p.o: - $(compile) -DLJ2P $(srcdir)/dvi2xx.c - mv dvi2xx.o $@ + $(compile) -DLJ2P -c $(srcdir)/dvi2xx.c -o $@ dvilj4.o: - $(compile) -DLJ4 $(srcdir)/dvi2xx.c - mv dvi2xx.o $@ + $(compile) -DLJ4 -c $(srcdir)/dvi2xx.c -o $@ dvilj4l.o: - $(compile) -DLJ4 -DLJ4L $(srcdir)/dvi2xx.c - mv dvi2xx.o $@ + $(compile) -DLJ4 -DLJ4L -c $(srcdir)/dvi2xx.c -o $@ dvilj.o dvilj2p.o dvilj4.o dvilj4l.o: dvi2xx.c @@ -58,13 +54,13 @@ install-exec: $(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir) $(scriptdir) test ! -f $(program) \ - || $(INSTALL_LIBTOOL_PROG) $(bindir) $(program) + || $(INSTALL_LIBTOOL_PROG) $(program) $(bindir) test ! -f $(program2p) \ - || $(INSTALL_LIBTOOL_PROG) $(bindir) $(program2p) + || $(INSTALL_LIBTOOL_PROG) $(program2p) $(bindir) test ! -f $(program4) \ - || $(INSTALL_LIBTOOL_PROG) $(bindir) $(program4) + || $(INSTALL_LIBTOOL_PROG) $(program4) $(bindir) test ! -f $(program4l) \ - || $(INSTALL_LIBTOOL_PROG) $(bindir) $(program4l) + || $(INSTALL_LIBTOOL_PROG) $(program4l) $(bindir) $(INSTALL_SCRIPT) $(srcdir)/dvihp $(scriptdir)/dvihp rm -f $(bindir)/$(program6); $(LN) $(program4) $(bindir)/$(program6) uninstall-exec: --- texk/dvipsk/Makefile.in.orig Mon Feb 3 21:54:37 2003 +++ texk/dvipsk/Makefile.in Mon Feb 3 21:54:49 2003 @@ -73,7 +73,7 @@ install-exec: all $(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir) $(scriptdir) $(fontdir) - for p in $(programs); do $(INSTALL_LIBTOOL_PROG) $(bindir) $$p; done + for p in $(programs); do $(INSTALL_LIBTOOL_PROG) $$p $(bindir); done uninstall-exec: for p in $(programs); do rm -f $(bindir)/$$p; done --- texk/oxdvik/Makefile.in.orig Mon Feb 3 22:01:42 2003 +++ texk/oxdvik/Makefile.in Mon Feb 3 22:01:55 2003 @@ -102,7 +102,7 @@ install-exec: $(program) $(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir) - for p in $(program); do $(INSTALL_LIBTOOL_PROG) $(bindir) $$p; done + for p in $(program); do $(INSTALL_LIBTOOL_PROG) $$p $(bindir); done $(INSTALL_SCRIPT) $(srcdir)/oxdvi-sh $(scriptdir)/oxdvi uninstall-exec: --- texk/ps2pkm/Makefile.in.orig Mon Feb 3 22:04:19 2003 +++ texk/ps2pkm/Makefile.in Mon Feb 3 22:04:29 2003 @@ -36,7 +36,7 @@ install-exec: $(programs) $(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir) - for p in $(programs); do $(INSTALL_LIBTOOL_PROG) $(bindir) $$p; done + for p in $(programs); do $(INSTALL_LIBTOOL_PROG) $$p $(bindir); done uninstall-exec: for p in $(programs); do rm -f $(bindir)/$$p; done --- texk/odvipsk/Makefile.in.orig Mon Feb 3 22:00:45 2003 +++ texk/odvipsk/Makefile.in Mon Feb 3 22:00:54 2003 @@ -61,7 +61,7 @@ install-exec: all $(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir) $(scriptdir) - for p in $(programs); do $(INSTALL_LIBTOOL_PROG) $(bindir) $$p; done + for p in $(programs); do $(INSTALL_LIBTOOL_PROG) $$p $(bindir); done uninstall-exec: for p in $(programs); do rm -f $(bindir)/$$p; done --- texk/gsftopk/Makefile.in.orig Mon Feb 3 21:56:13 2003 +++ texk/gsftopk/Makefile.in Mon Feb 3 21:57:06 2003 @@ -35,7 +35,7 @@ install-exec: $(program) $(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir) - $(INSTALL_LIBTOOL_PROG) $(bindir) $(program) + $(INSTALL_LIBTOOL_PROG) $(program) $(bindir) uninstall-exec: rm -f $(bindir)/$(program) --- texk/configure.in.orig Mon Feb 3 18:12:42 2003 +++ texk/configure.in Mon Feb 3 18:26:15 2003 @@ -32,11 +32,13 @@ dnl If the other programs ever acquire their own --with or --enable dnl options, they must be added, so configure --help at the top level dnl will show all the options. -sinclude(acklibtool.m4) +sinclude(libtool.m4) sinclude(withenable.ac) sinclude(kpathsea/withenable.ac) sinclude(web2c/withenable.ac) sinclude(xdvik/withenable.ac) + +AC_PROG_LIBTOOL if test "x$with_omega" = xno; then with_odvipsk=no --- texk/Makefile.in.orig Mon Feb 3 19:00:22 2003 +++ texk/Makefile.in Mon Feb 3 19:00:33 2003 @@ -51,7 +51,7 @@ (cd $$d && $(MAKE) $(makeargs) $@) || exit 1; else true; fi; done distclean realclean:: - rm -f Makefile config.status config.cache config.log klibtool.config + rm -f Makefile config.status config.cache config.log # Unconditionally remake the library, since we don't want to write out # the dependencies here. --- texk/make/common.mk.orig Mon Feb 3 19:46:16 2003 +++ texk/make/common.mk Mon Feb 3 23:31:38 2003 @@ -12,28 +12,28 @@ LDFLAGS = @LDFLAGS@ $(XLDFLAGS) # Kpathsea needs this for compiling, programs need it for linking. -LIBTOOL = $(kpathsea_srcdir_parent)/klibtool +LIBTOOL = $(SHELL) $(kpathsea_parent)/libtool # You can change [X]CPPFLAGS, [X]CFLAGS, or [X]DEFS, but # please don't change ALL_CPPFLAGS or ALL_CFLAGS. # prog_cflags is set by subdirectories of web2c. ALL_CPPFLAGS = $(DEFS) -I. -I$(srcdir) -I$(kpathsea_parent) \ -I$(kpathsea_srcdir_parent) $(prog_cflags) $(CPPFLAGS) -ALL_CFLAGS = $(ALL_CPPFLAGS) $(CFLAGS) -c +ALL_CFLAGS = $(ALL_CPPFLAGS) $(CFLAGS) compile = $(CC) $(ALL_CFLAGS) .SUFFIXES: -.SUFFIXES: .c .o # in case the suffix list has been cleared, e.g., by web2c +.SUFFIXES: .c .o .lo # in case the suffix list has been cleared, e.g., by web2c .c.o: - $(compile) $< + $(compile) -c $< -o $@ # Installation. INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_DATA = @INSTALL_DATA@ -INSTALL_LIBTOOL_LIBS = INSTALL_DATA='$(INSTALL_DATA)' $(LIBTOOL) install-lib -INSTALL_LIBTOOL_PROG = INSTALL_PROGRAM='$(INSTALL_PROGRAM)' $(LIBTOOL) install-prog +INSTALL_LIBTOOL_LIBS = $(LIBTOOL) --mode=install $(INSTALL_DATA) +INSTALL_LIBTOOL_PROG = $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) # Creating (symbolic) links. LN = @LN_S@ --- texk/kpathsea/Makefile.in.orig Mon Feb 3 08:24:08 2003 +++ texk/kpathsea/Makefile.in Tue Feb 4 00:32:26 2003 @@ -33,10 +33,10 @@ library = kpathsea # We want to compile almost everything with libtool ... -KPATHSEA_CC = $(LIBTOOL) compile "$(CC)" +KPATHSEA_CC = $(LIBTOOL) --mode=compile "$(CC)" .SUFFIXES: .lo .c.lo: - $(KPATHSEA_CC) $< $(ALL_CFLAGS) + $(KPATHSEA_CC) $(ALL_CFLAGS) -c $< -o $@ default all: kpsewhich kpsestat access readlink $(library).info manfiles @@ -52,15 +52,8 @@ readlink: readlink.o $(link_command) readlink.o -$(kpathsea): $(objects) klibtool.version - $(LIBTOOL) archive $(AR) $(ARFLAGS) $@ $(objects) - -# All the objects depend on the klibtool configuration file. -$(objects): ../klibtool.config - -# Create klibtool.version in the build tree -klibtool.version: - $(LN) $(srcdir)/kpathsea.version $@ +$(kpathsea): $(objects) + $(kpathsea_link) -version-info 4:0:0 $(objects) # Make variable substitutions for paths.h. texmf.cnf: texmf.in texmf.sed @@ -123,8 +116,8 @@ sed -e 's/%.*//' -e 's/^[ ]*//' -e 's/[ ]*$$//' texmf.cnf \ | grep '^[ ]*[A-Z0-9_]*[ =]' \ | sed '/^$$/d' \ - | sed 's/^\([^ =]*\)[ ]*=*[ ]*\(.*\)/#ifndef DEFAULT_\1@#define DEFAULT_\1 "\2"@#endif/' \ - | tr '@' '\012' \ + | sed 's/^\([^ =]*\)[ ]*=*[ ]*\(.*\)/#ifndef DEFAULT_\1~#define DEFAULT_\1 +"\2"~#endif/' \ + | tr '~' '\012' \ | sed -e 's%\$$TEXMFMAIN%$(texmf)%g' \ -e 's%\$$TEXMF%$(texmf)%g' \ -e 's%\$$VARTEXFONTS%$(vartexfonts)%g' \ @@ -180,8 +173,8 @@ $(INSTALL_SCRIPT) $(srcdir)/mktexnam $(web2cdir)/mktexnam $(INSTALL_DATA) $(srcdir)/mktexnam.opt $(web2cdir)/mktexnam.opt $(INSTALL_SCRIPT) $(srcdir)/mktexupd $(web2cdir)/mktexupd - $(INSTALL_LIBTOOL_LIBS) $(libdir) lib$(library).la - $(INSTALL_LIBTOOL_PROG) $(bindir) kpsewhich + $(INSTALL_LIBTOOL_LIBS) lib$(library).la $(libdir) + $(INSTALL_LIBTOOL_PROG) kpsewhich $(bindir) $(INSTALL_PROGRAM) kpsestat $(bindir) $(INSTALL_PROGRAM) access $(bindir) $(INSTALL_PROGRAM) readlink $(bindir) @@ -259,7 +252,7 @@ ac_include ../make/clean.mk mostlyclean:: - rm -f kpsewhich kpsestat access readlink *.lo klibtool.version + rm -f kpsewhich kpsestat access readlink *.lo rm -rf PROF PROF_SHARED SHARED STATIC distclean:: rm -f paths.h texmf.cnf texmf.sed stamp-paths