+2005-03-06 Jan Nieuwenhuizen <janneke@gnu.org>
+
+ * 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 <hanwen@xs4all.nl>
* kpath-guile/kpath.c (open_library): dlopen libkpathsea.so
2005-03-06 Jan Nieuwenhuizen <janneke@gnu.org>
+ * 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.
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 && \
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 && \
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 $@
/* 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
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@
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
# 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.
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
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
-# 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)
#include <stdio.h>
#include <string.h>
-/*
-
-The problem, as far as I can tell, is that MacOS X has its getopt
-prototype in <unistd.h>, while I think other operating systems have it
-in other places. <unistd.h> 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 <unistd.h>, while I think other operating
+ systems have it in other places. <unistd.h> 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
-<unistd.h> before defining YAKLUDGE.
-
-*/
+ I (?) found a somewhat more elegant patch for this: Just #include
+ <unistd.h> before defining KPATHSEA_HAS_GETOPT_PROTOTYPE_PROBLEM. */
#include <unistd.h>
-#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 <kpathsea/kpathsea.h>
#include <kpathsea/tex-file.h>
#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)
// "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;
int
open_library ()
{
-#if HAVE_DYNAMIC_LIBKPATHSEA
+#if HAVE_LIBKPATHSEA_SO
struct
{
void **func_pointer;
STEPMAKE_ADD_ENTRY(REQUIRED, $warn)
fi
fi
+
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="-shared $CFLAGS"
+ AC_MSG_CHECKING([for shared libkpathsea])
+ AC_TRY_LINK([#include <kpathsea/kpathsea.h>],
+ [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)
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