From e18ce3d8490e20b2a622a43c1af086e48b646c75 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sun, 6 Mar 2005 20:52:49 +0000 Subject: [PATCH] * stepmake/aclocal.m4: Check for libkpathsea.so. * kpath-guile/kpath.c (ly_kpathsea_expand_variable): Use dl_kpse_find_file. --- ChangeLog | 11 ++++++++ GNUmakefile.in | 33 ++++++++++++------------ config.hh.in | 3 +++ config.make.in | 44 +++++++++++++++---------------- configure.in | 13 +++++----- kpath-guile/GNUmakefile | 11 +++----- kpath-guile/kpath.c | 57 +++++++++++++++++++---------------------- stepmake/aclocal.m4 | 14 ++++++++++ ttftool/GNUmakefile | 6 +++-- 9 files changed, 105 insertions(+), 87 deletions(-) diff --git a/ChangeLog b/ChangeLog index e56e84a8a4..b002381144 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2005-03-06 Jan Nieuwenhuizen + + * stepmake/aclocal.m4: Check for libkpathsea.so. + + * kpath-guile/kpath.c (ly_kpathsea_expand_variable): Use + dl_kpse_find_file. + 2005-03-06 Han-Wen Nienhuys * kpath-guile/kpath.c (open_library): dlopen libkpathsea.so @@ -5,6 +12,10 @@ 2005-03-06 Jan Nieuwenhuizen + * configure.in: Set TTFTOOL_ENDIAN iso global CFLAGS. + + * ttftool/GNUmakefile (MODULE_CFLAGS): Add $(TTFTOOL_ENDIAN). + Drop run-time dependency on teTeX. * lily/kpath.cc (initialize_kpathsea): dlopen libkpathsea. diff --git a/GNUmakefile.in b/GNUmakefile.in index c603ed52eb..de3907857f 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -83,33 +83,34 @@ local-WWW-post: cd $(builddir) && ls *.html >> $(outdir)/weblist cat $(outdir)/weblist | (cd $(builddir); GZIP=-9v tar -czf $(outdir)/web.tar.gz -T -) +tree-prefix = $(builddir)/share/lilypond/$(TOPLEVEL_VERSION) src-ext = c cc yy ll hh icc py scm tex ps texi itexi tely itely sh web-clean: $(MAKE) out=www clean - $(MAKE) $(builddir)/share/lilypond-force + $(MAKE) $(tree-prefix)/lilypond-force default: $(config_h) builddir-setup -builddir-setup: $(builddir)/share/lilypond-force +builddir-setup: $(tree-prefix)/lilypond-force PO_FILES = $(wildcard $(srcdir)/po/*.po) HELP_CATALOGS = $(PO_FILES:$(srcdir)/po/%.po=%) CATALOGS = $(HELP_CATALOGS:lilypond=) -$(builddir)/share/lilypond-force: +$(tree-prefix)/lilypond-force: # Preparing LilyPond tree for builddir exec cd $(builddir) && rm -rf lib share mkdir -p $(builddir)/lib/$(package) - mkdir -p $(builddir)/share/$(package) - mkdir -p $(builddir)/share/$(package)/dvips - mkdir -p $(builddir)/share/$(package)/elisp - mkdir -p $(builddir)/share/$(package)/fonts - mkdir -p $(builddir)/share/$(package)/tex - cd $(builddir)/lib/$(package) && \ + mkdir -p $(tree-prefix) + mkdir -p $(tree-prefix)/dvips + mkdir -p $(tree-prefix)/elisp + mkdir -p $(tree-prefix)/fonts + mkdir -p $(tree-prefix)/tex + cd $(builddir)/lib && \ ln -s ../../python/$(outconfbase) python - cd $(builddir)/share/$(package) && \ + cd $(tree-prefix) && \ ln -s $(abs-srcdir)/ly ly && \ ln -s ../../mf/$(outconfbase) otf && \ ln -s ../../mf/$(outconfbase) svg && \ @@ -118,14 +119,14 @@ $(builddir)/share/lilypond-force: ln -s $(abs-srcdir)/ps && \ ln -s ../../python/$(outconfbase) python && \ ln -s $(abs-srcdir)/scm - cd $(builddir)/share/$(package)/dvips && \ + cd $(tree-prefix)/dvips && \ ln -s ./../mf/$(outconfbase) mf-out && \ ln -s $(abs-srcdir)/ps - cd $(builddir)/share/$(package)/tex && \ + cd $(tree-prefix)/tex && \ ln -s $(abs-srcdir)/tex source && \ ln -s ../../../tex/$(outconfbase) tex-out && \ ln -s ../../../mf/$(outconfbase) mf-out - cd $(builddir)/share/$(package)/fonts && \ + cd $(tree-prefix)/fonts && \ ln -s $(abs-srcdir)/mf source && \ ln -s ../../../tex/$(outconfbase) enc && \ ln -s ../../../mf/$(outconfbase) map && \ @@ -133,12 +134,12 @@ $(builddir)/share/lilypond-force: ln -s ../../../mf/$(outconfbase) tfm && \ ln -s ../../../mf/$(outconfbase) svg && \ ln -s ../../../mf/$(outconfbase) type1 - cd $(builddir)/share/$(package)/elisp && \ + cd $(tree-prefix)/elisp && \ ln -sf ../../../elisp/$(outconfbase)/lilypond-words.el . && \ ln -s $(abs-srcdir)/elisp/*.el . $(foreach i,$(CATALOGS), \ - mkdir -p $(builddir)/share/locale/$i/LC_MESSAGES && \ - cd $(builddir)/share/locale/$i/LC_MESSAGES && \ + mkdir -p $(tree-prefix)/locale/$i/LC_MESSAGES && \ + cd $(tree-prefix)/locale/$i/LC_MESSAGES && \ ln -fs ../../../../po/$(outconfbase)/$i.mo lilypond.mo &&) true touch $@ diff --git a/config.hh.in b/config.hh.in index 9e482eab0b..01c1c18ffa 100644 --- a/config.hh.in +++ b/config.hh.in @@ -87,3 +87,6 @@ /* define if you have pango_fc_font_map_add_decoder_find_func */ #define HAVE_PANGO_FC_FONT_MAP_ADD_DECODER_FIND_FUNC 0 + +/* define if you have libkpathsea.so */ +#define HAVE_LIBKPATHSEA_SO 0 diff --git a/config.make.in b/config.make.in index 4508b2a92e..357f05d076 100644 --- a/config.make.in +++ b/config.make.in @@ -7,9 +7,6 @@ MISSING_REQUIRED = @REQUIRED@ package-depth = @package_depth@ -#Alternative for dlopen -#KPATHSEA_LIBS = @KPATHSEA_LIBS@ - USER_CFLAGS = @CPPFLAGS@ @CFLAGS@ @GUILE_CFLAGS@ @PANGO_FT2_CFLAGS@ @FREETYPE2_CFLAGS@ USER_CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@ @GUILE_CFLAGS@ @PANGO_FT2_CFLAGS@ @FREETYPE2_CFLAGS@ USER_LDFLAGS = @LDFLAGS@ @GUILE_LDFLAGS@ @@ -66,48 +63,49 @@ lilypond_omfdir = $(package_omfdir) local_lilypond_datadir = $(local_package_datadir) local_lilypond_libdir = $(local_package_libdir) +BASH = @BASH@ +BISON = @BISON@ CC = @CC@ -GCC = @GCC@ +CONFIGSUFFIX = @CONFIGSUFFIX@ CROSS = @cross_compiling@ CXX = @CXX@ -GXX = @GXX@ -LD = @LD@ -CONFIGSUFFIX = @CONFIGSUFFIX@ -MAKEINFO_PROGRAM = @MAKEINFO@ -SPLITTING_MAKEINFO = @SPLITTING_MAKEINFO@ -MAKEINFO_VERSION = @MAKEINFO_VERSION@ -ICFLAGS = @ICFLAGS@ -ILDFLAGS = @ILDFLAGS@ -TFM_PATH = @TFM_PATH@ -RANLIB = @RANLIB@ -DEFS = @DEFS@ DEFINES = @DEFS@ @DEFINES@ +DEFS = @DEFS@ DOTEXE = @DOTEXE@ -INSTALL = @INSTALL@ -BASH = @BASH@ -BISON = @BISON@ FIND = @FIND@ FLEX = @FLEX@ FONTFORGE = @FONTFORGE@ +GCC = @GCC@ GROFF = @GROFF@ GUILE = @GUILE@ -GUILE_CONFIG = @GUILE_CONFIG@ GUILE_CFLAGS = @GUILE_CFLAGS@ +GUILE_CONFIG = @GUILE_CONFIG@ GUILE_LDFLAGS = @GUILE_LDFLAGS@ +GXX = @GXX@ +ICFLAGS = @ICFLAGS@ +ILDFLAGS = @ILDFLAGS@ INIMETAFONT = @INIMETAFONT@ +INSTALL = @INSTALL@ +KPATHSEA_LIBS = @KPATHSEA_LIBS@ +LD = @LD@ LN = @LN@ LN_S = @LN_S@ +MAKEINFO_PROGRAM = @MAKEINFO@ +MAKEINFO_VERSION = @MAKEINFO_VERSION@ METAFONT = @METAFONT@ -progname=mf MFMODE = @MFMODE@ +MFTRACE = @MFTRACE@ MSGFMT = @MSGFMT@ -ROOTSEP = @ROOTSEP@ +PAPERSIZE=a4 PATHSEP = @PATHSEP@ PERL = @PERL@ -MFTRACE = @MFTRACE@ PYTHON = @PYTHON@ +RANLIB = @RANLIB@ +ROOTSEP = @ROOTSEP@ SHELL = @SHELL@ +SPLITTING_MAKEINFO = @SPLITTING_MAKEINFO@ TAR = @TAR@ +TFM_PATH = @TFM_PATH@ +TTFTOOL_ENDIAN = @TTFTOOL_ENDIAN@ YACC = @YACC@ ZIP = @ZIP@ - -PAPERSIZE=a4 diff --git a/configure.in b/configure.in index 9e207fed52..b4fce2da9b 100644 --- a/configure.in +++ b/configure.in @@ -19,12 +19,6 @@ AC_CONFIG_SRCDIR([lily/main.cc]) # Move to aclocal.m4? AC_CONFIG_HEADER([$CONFIGFILE.hh:config.hh.in]) -AC_C_BIGENDIAN(CFLAGS="$CFLAGS -DBIGENDIAN", - CFLAGS="$CFLAGS -DSMALLENDIAN") - - - - # Uncomment the configuration options your package needs. @@ -64,7 +58,7 @@ STEPMAKE_PATH_PROG(FONTFORGE, fontforge, REQUIRED, 20041208) AC_CHECK_HEADERS([assert.h libio.h sys/stat.h]) AC_LANG_PUSH(C++) -1AC_CHECK_HEADERS([sstream]) +AC_CHECK_HEADERS([sstream]) AC_LANG_POP(C++) AC_HEADER_STAT AC_FUNC_MEMCMP @@ -79,6 +73,11 @@ fi STEPMAKE_FREETYPE2 STEPMAKE_PANGO_FT2 +## TTFTOOL stuff +AC_C_BIGENDIAN(TTFTOOL_ENDIAN="-DBIGENDIAN", + TTFTOOL_ENDIAN="-DSMALLENDIAN") +AC_SUBST(TTFTOOL_ENDIAN) + ## Optional tools for building documentation, website, extra fonts. # guile executable for some scripts diff --git a/kpath-guile/GNUmakefile b/kpath-guile/GNUmakefile index 7d6296be50..eec5e650c3 100644 --- a/kpath-guile/GNUmakefile +++ b/kpath-guile/GNUmakefile @@ -1,21 +1,16 @@ -# title top level makefile for FlowerLib -# file flower/Makefile - -# should reinstate versioning if shared libs are enabled. - depth = .. NAME = kpath-guile MODULE_NAME = kpath-guile SCRIPTS = -STEPMAKE_TEMPLATES=library c po - +STEPMAKE_TEMPLATES = library c po +MODULE_CFLAGS = -std=c99 +#MODULE_LDFLAGS = $(KPATHSEA_LIBS) include $(depth)/make/stepmake.make -CFLAGS += -std=c99 $(outdir)/kpath.o: $(config_hh) diff --git a/kpath-guile/kpath.c b/kpath-guile/kpath.c index 0e1616bd26..1f323477d3 100644 --- a/kpath-guile/kpath.c +++ b/kpath-guile/kpath.c @@ -19,37 +19,33 @@ #include #include -/* - -The problem, as far as I can tell, is that MacOS X has its getopt -prototype in , while I think other operating systems have it -in other places. is included by kpathsea.h, so you end up -renaming both conflicting prototypes to YAKLUDGE. +/* The (?) problem, as far as I (?) can tell, is that MacOS X has its + getopt prototype in , while I think other operating + systems have it in other places. is included by + kpathsea.h, so you end up renaming both conflicting prototypes to + KPATHSEA_HAS_GETOPT_PROTOTYPE_PROBLEM. -I found a somewhat more elegant patch for this: Just #include - before defining YAKLUDGE. - -*/ + I (?) found a somewhat more elegant patch for this: Just #include + before defining KPATHSEA_HAS_GETOPT_PROTOTYPE_PROBLEM. */ #include -#if !HAVE_DYNAMIC_LIBKPATHSEA - -#define popen REALLYUGLYKLUDGE -#define pclose ANOTHERREALLYUGLYKLUDGE -#define getopt YAKLUDGE +#define popen KPATHSEA_HAS_POPEN_PROTOTYPE_PROBLEM +#define pclose KPATHSEA_HAS_PCLOSE_PROTOTYPE_PROBLEM +#define getopt KPATHSEA_HAS_GETOPT_PROTOTYPE_PROBLEM +#if HAVE_KPATHSEA_KPATHSEA_H #include #include #endif -static void *kpathsea_handle = 0; -static char *(*dl_kpse_find_file) (char const*, kpse_file_format_type, boolean) = 0; -static void (*dl_kpse_maketex_option) (char const*, boolean) = 0; -static void (*dl_kpse_set_program_name) (char const*, char const*) = 0; -static char const *(*dl_kpse_init_format) (kpse_file_format_type) = 0; -static char *(*dl_kpse_var_expand) (char const*) = 0; -static kpse_format_info_type (*dl_kpse_format_info)[kpse_last_format] = 0; +static void *kpathsea_handle = 0; +static char *(*dl_kpse_find_file) (char const*, kpse_file_format_type, boolean) = 0; +static void (*dl_kpse_maketex_option) (char const*, boolean) = 0; +static void (*dl_kpse_set_program_name) (char const*, char const*) = 0; +static char const *(*dl_kpse_init_format) (kpse_file_format_type) = 0; +static char *(*dl_kpse_var_expand) (char const*) = 0; +static kpse_format_info_type (*dl_kpse_format_info)[kpse_last_format] = 0; kpse_file_format_type kpathsea_find_format (const char* name) @@ -78,26 +74,25 @@ kpathsea_find_format (const char* name) // "Return the absolute file name of @var{name}, " // "or @code{#f} if not found.") SCM -ly_kpathsea_find_file(SCM name) +ly_kpathsea_find_file (SCM name) { SCM_ASSERT_TYPE (scm_is_string (name), name, SCM_ARG1, __FUNCTION__, "string"); - char const * nm = scm_i_string_chars (name); - char *p = (*dl_kpse_find_file) (nm, kpathsea_find_format (nm), - true); + char const *nm = scm_i_string_chars (name); + char *p = (*dl_kpse_find_file) (nm, kpathsea_find_format (nm), true); if (p) return scm_makfrom0str (p); return SCM_BOOL_F; } // "Return the expanded version @var{var}.") -SCM ly_kpathsea_expand_variable(SCM var) +SCM ly_kpathsea_expand_variable (SCM var) { SCM_ASSERT_TYPE (scm_is_string (var), var, SCM_ARG1, __FUNCTION__, "string"); - char const * nm = scm_i_string_chars (var); - char *result = kpse_var_expand (nm); - SCM ret = scm_makfrom0str (result); + char const *nm = scm_i_string_chars (var); + char *result = (*dl_kpse_var_expand) (nm); + SCM ret = scm_makfrom0str (result); free (result); return ret; @@ -109,7 +104,7 @@ static char const* LIBKPATHSEA = "libkpathsea.so"; int open_library () { -#if HAVE_DYNAMIC_LIBKPATHSEA +#if HAVE_LIBKPATHSEA_SO struct { void **func_pointer; diff --git a/stepmake/aclocal.m4 b/stepmake/aclocal.m4 index 2373646886..0ad2655aaf 100644 --- a/stepmake/aclocal.m4 +++ b/stepmake/aclocal.m4 @@ -790,6 +790,20 @@ AC_DEFUN(STEPMAKE_KPATHSEA, [ STEPMAKE_ADD_ENTRY(REQUIRED, $warn) fi fi + + save_CFLAGS="$CFLAGS" + CFLAGS="-shared $CFLAGS" + AC_MSG_CHECKING([for shared libkpathsea]) + AC_TRY_LINK([#include ], + [kpse_var_expand ("\$TEXMF");], + [have_libkpathsea_so=yes], + [have_libkpathsea_so=no]) + AC_MSG_RESULT($have_libkpathsea_so) + if test "$have_libkpathsea_so" = "yes"; then + AC_DEFINE(HAVE_LIBKPATHSEA_SO) + fi + CFLAGS="$save_CFLAGS" + KPATHSEA_LIBS="$LIBS" LIBS="$save_LIBS" AC_MSG_CHECKING(whether to use kpathsea) diff --git a/ttftool/GNUmakefile b/ttftool/GNUmakefile index a96b2d287c..21777db50c 100644 --- a/ttftool/GNUmakefile +++ b/ttftool/GNUmakefile @@ -11,8 +11,10 @@ SUBDIRS = include SCRIPTS = README_FILES = README -EXTRA_DIST_FILES= $(README_FILES) $(SCRIPTS) -STEPMAKE_TEMPLATES=library c po +EXTRA_DIST_FILES = $(README_FILES) $(SCRIPTS) +STEPMAKE_TEMPLATES = library c po + +MODULE_CFLAGS = $(TTFTOOL_ENDIAN) include $(depth)/make/stepmake.make -- 2.39.5