+1.3.37.jcn2
+===========
+
+* Fixed srcdir build, so that you can do:
+
+ tar xzf releases/lilypond-x.y.z
+ mkdir <build>
+ cd <build>
+ ../lilypond-x.y.z/configure
+ make
+
+ as with any other gnu package. All build output goes to <build>/out.
+
+* Changed and fixed use of different configurations, and different output
+ directories. Finally, you can use different configurations alongside
+ eachother. From make/stepmake.make:
+
+ # Use alternate configurations alongside eachother:
+ #
+ # ./configure --enable-configsuffix=debug
+ # make conf=debug
+ #
+ # uses config-debug.make and config-debug.h; output goes to out-debug.
+ #
+
+ # Use same configuration, but different output directory:
+ #
+ # make out=WWW
+ #
+ # uses config.make and config.h; output goes to out-WWW.
+ #
+
1.3.37.jcn1
===========
MAJOR_VERSION=1
MINOR_VERSION=3
PATCH_LEVEL=37
-MY_PATCH_LEVEL=jcn1
+MY_PATCH_LEVEL=jcn2
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
-dnl WARNING WARNING WARNING WARNING
-dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
-dnl WARNING WARNING WARNING WARNING
-dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
-dnl WARNING WARNING WARNING WARNING
-dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
dnl aclocal.m4 -*-shell-script-*-
dnl StepMake subroutines for configure.in
AC_DEFUN(AC_STEPMAKE_END, [
AC_OUTPUT($CONFIGFILE.make:config.make.in)
- rm -f GNUmakefile
- cp make/toplevel.make.in ./GNUmakefile
- chmod 444 GNUmakefile
+ rm -f $srcdir/GNUmakefile
+ cp $srcdir/make/toplevel.make.in $srcdir/GNUmakefile
+ chmod 444 $srcdir/GNUmakefile
+ if test "$builddir" != "."; then
+ rm -f GNUmakefile
+ cp $srcdir/make/srcdir.make.in GNUmakefile
+ chmod 444 GNUmakefile
+ fi
])
AC_DEFUN(AC_STEPMAKE_GXX, [
AC_MSG_CHECKING(Package)
if test "x$PACKAGE" = "xSTEPMAKE"; then
AC_MSG_RESULT(Stepmake package!)
- (cd stepmake; rm -f stepmake; ln -s ../stepmake .)
- (cd stepmake; rm -f bin; ln -s ../bin .)
+
+ #if test "x$builddir" != "x"; then
+ # builddir="../$builddir"
+ #else
+ # builddir=..
+ #fi
+ if test "$srcdir" != "."; then
+ absolute_builddir="`pwd`"
+ package_absolute_builddir="`dirname $absolute_builddir`"
+ package_srcdir="`dirname $srcdir`"
+ builddir="`dirname $package_srcdir`/`basename $package_absolute_builddir`/`basename $absolute_builddir`"
+ else
+ builddir=.
+ fi
+
+ (cd stepmake 2>/dev/null || mkdir stepmake)
+ (cd stepmake; rm -f stepmake; ln -s ../$srcdir/stepmake .)
+ (cd stepmake; rm -f bin; ln -s ../$srcdir/bin .)
AC_CONFIG_AUX_DIR(bin)
stepmake=stepmake
else
AC_MSG_RESULT($PACKAGE)
+
+ if test "$srcdir" != "."; then
+ absolute_builddir="`pwd`"
+ builddir="`dirname $srcdir`/`basename $absolute_builddir`"
+ else
+ builddir=.
+ fi
+
AC_MSG_CHECKING(for stepmake)
# Check for installed stepmake
if test -d $stepmake; then
AC_MSG_RESULT($stepmake)
else
- stepmake='$(depth)'/stepmake
- AC_MSG_RESULT(./stepmake ($datadir/stepmake not found))
+ stepmake='$(depth)'/$srcdir/stepmake
+ AC_MSG_RESULT($srcdir/stepmake ($datadir/stepmake not found))
fi
AC_CONFIG_AUX_DIR(\
$HOME/usr/local/share/stepmake/bin\
/usr/share/stepmake/bin\
/usr/lib/stepmake/bin\
stepmake/bin\
+ $srcdir/stepmake/bin\
)
fi
+ AC_SUBST(builddir)
AC_SUBST(stepmake)
AC_SUBST(package)
AC_SUBST(PACKAGE)
AUTOGENERATE="This file was automatically generated by configure"
AC_SUBST(AUTOGENERATE)
- absolute_builddir="`pwd`"
- AC_SUBST(absolute_builddir)
STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null`
if test "x$STATE_VECTOR" != "x"; then
CONFIGSUFFIX=
AC_ARG_ENABLE(config,
[ enable-config=FILE put configure settings in config-FILE.make],
- [CONFIGSUFFIX=$enableval])
+ [CONFIGSUFFIX=-$enableval])
- if test "$CONFIGSUFFIX" != "" ; then
- CONFIGFILE=config-$CONFIGSUFFIX
- else
- CONFIGFILE=config
- fi
+ CONFIGFILE=config$CONFIGSUFFIX
AC_SUBST(CONFIGSUFFIX)
AC_CANONICAL_HOST
echo
(set -x; TEX_TFMDIR=$TEX_TFMDIR ./configure --prefix=$prefix --enable-debugging --enable-printing --enable-checking --disable-optimise)
-echo "making tags in background"
-make TAGS >& log &
+echo "Making tags in background..."
+make TAGS > /dev/null 2>&1 &
MAKEINFO = @MAKEINFO@
ICFLAGS = @ICFLAGS@
ILDFLAGS = @ILDFLAGS@
+builddir = @builddir@
libdir = @libdir@
prefix = @prefix@
+srcdir = @srcdir@
TEXPREFIX = @TEXPREFIX@
TEXDIR = @TEXDIR@
MFDIR = @MFDIR@
$(outdir)/lexer.o: $(outdir)/parser.hh
$(outdir)/lily-version.o: $(outdir)/version.hh
-
-
= arithmetic_multiplier * arithmetic_basicspace
- { choose: arithmetic_multiplier = 0.9*quartwidth (why?)}
+ { choose: arithmetic_multiplier = 1.0*quartwidth (why?)}
- = 0.9*quartwidth * arithmetic_basicspace
+ = quartwidth * arithmetic_basicspace
=>
- arithmetic_basicspace = 2/0.9 = 2.2
+ arithmetic_basicspace = 2/1 = 2
If you want to space your music wider, use something like:
arithmetic_basicspace = 4.;
%}
+% We use 0.9*\quartwidth, because 1.0 seems to wide.
+% We don't adjust arithmetic_basicspace accordingly (why not?)
arithmetic_multiplier = 0.9 * \quartwidth ;
-arithmetic_basicspace = 2.2;
+arithmetic_basicspace = 2.0;
#'Stem_tremolo::beam-width = 1.5 * \quartwidth ;
# $(footify) $(outdir)/index.html
local-web:
- $(MAKE) CONFIGSUFFIX=www local-WWW
+ $(MAKE) conf=www local-WWW
convert-mudela: local-convert-mudela
$(LOOP)
--- /dev/null
+# -*-Makefile-*-
+# specific srcdir makefile for LilyPond
+
+depth=.
+
+# Don't try to outsmart us, you puny computer!
+ifeq (0,${MAKELEVEL})
+ MAKE:=$(MAKE) --no-builtin-rules
+endif
+
+# Use alternate configurations alongside eachother:
+#
+# ./configure --enable-configsuffix=debug
+# make conf=debug
+#
+# uses config-debug.make and config-debug.h; output goes to out-debug.
+#
+ifdef conf
+ CONFIGSUFFIX=-$(conf)
+endif
+
+# Use same configuration, but different output directory:
+#
+# make out=WWW
+#
+# uses config.make and config.h; output goes to out-WWW.
+#
+ifdef out
+ outbase=out-$(out)
+else
+ outbase=out$(CONFIGSUFFIX)
+endif
+
+config = config$(CONFIGSUFFIX).make
+
+include $(config)
+
+SRCDIR=$(MAKE) -C $(srcdir) builddir=$(builddir) $@
+
+default: all
+
+%:
+ $(SRCDIR)
endif
.SUFFIXES:
+# Use alternate configurations alongside eachother:
+#
+# ./configure --enable-configsuffix=debug
+# make conf=debug
+#
+# uses config-debug.make and config-debug.h; output goes to out-debug.
+#
+ifdef conf
+ CONFIGSUFFIX=-$(conf)
+endif
-ifndef config
- configuration=config
+# Use same configuration, but different output directory:
+#
+# make out=WWW
+#
+# uses config.make and config.h; output goes to out-WWW.
+#
+ifdef out
+ outbase=out-$(out)
else
- configuration=config-$(config)
+ outbase=out$(CONFIGSUFFIX)
endif
-include $(depth)/$(configuration).make
+ifdef config
+ configuration=$(config)
+else
+ ifeq ($(builddir),.)
+ configuration=$(depth)/config$(CONFIGSUFFIX).make
+ else
+ # user package
+ configuration=$(depth)/$(builddir)/config$(CONFIGSUFFIX).make
+ # stepmake package
+ #configuration=$(depth)/../$(builddir)/stepmake/config$(CONFIGSUFFIX).make
+ endif
+endif
-ifdef CONFIGSUFFIX
-outdir=out-$(CONFIGSUFFIX)
+include $(configuration)
+
+ifeq ($(builddir),.)
+ outroot=.
else
-outdir=out
+ outroot=$(depth)/$(builddir)/$(patsubst $(shell cd $(depth); pwd)%,%,$(shell cd .; pwd))
endif
+outdir=$(outroot)/$(outbase)
+config_h=$(depth)/$(builddir)/config$(CONFIGSUFFIX).h
+
# user package
stepdir = $(stepmake)/stepmake
-# for stepmake packageg
+# for stepmake package
# stepdir = $(depth)/stepmake
STEPMAKE_TEMPLATES := generic $(STEPMAKE_TEMPLATES)
# descent order into subdirectories:
#
SUBDIRS = scripts buildscripts flower lily mf midi2ly po debian \
- Documentation ly input tex make mutopia intl stepmake\
+ Documentation ly input tex make mutopia intl $(builddir)/stepmake\
ps scm
#
htmldoc:
- $(MAKE) CONFIGSUFFIX='www' local-WWW
- $(MAKE) CONFIGSUFFIX='www' -C Documentation WWW
+ $(MAKE) out='www' local-WWW
+ $(MAKE) out='www' -C Documentation WWW
rm -f `find . -name \*.html~ -print`
$(footify-all-command)
find `find Documentation -type d -name 'out-www'` -not -name '*dvi' -not -name '*ly' -not -name '*tex' -not -name '*.ps' -not -name 'out-www' > wwwlist
tar cfz $(outdir)/htmldoc.tar.gz `cat wwwlist` `ls *.png $(ERRORLOG)` index.html
examples:
- $(MAKE) CONFIGSUFFIX='www' -C input WWW
- $(MAKE) CONFIGSUFFIX='www' -C mutopia WWW
+ $(MAKE) out='www' -C input WWW
+ $(MAKE) out='www' -C mutopia WWW
$(footify-all-command)
$(PYTHON) $(buildscripts)/mutopia-index.py -o short-examples.html input/
$(PYTHON) $(buildscripts)/mutopia-index.py -o long-examples.html mutopia/
+pl 82
+ - allow srcdir builds
+
pl 81
- Yodl-free (tm)
- bf: package-zet: too many symlinks
-dnl WARNING WARNING WARNING WARNING
-dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
-dnl WARNING WARNING WARNING WARNING
-dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
dnl aclocal.m4 -*-shell-script-*-
dnl StepMake subroutines for configure.in
AC_DEFUN(AC_STEPMAKE_END, [
AC_OUTPUT($CONFIGFILE.make:config.make.in)
- rm -f GNUmakefile
- cp make/toplevel.make.in ./GNUmakefile
- chmod 444 GNUmakefile
+ rm -f $srcdir/GNUmakefile
+ cp $srcdir/make/toplevel.make.in $srcdir/GNUmakefile
+ chmod 444 $srcdir/GNUmakefile
+ if test "$builddir" != "."; then
+ rm -f GNUmakefile
+ cp $srcdir/make/srcdir.make.in GNUmakefile
+ chmod 444 GNUmakefile
+ fi
])
AC_DEFUN(AC_STEPMAKE_GXX, [
AC_MSG_CHECKING(Package)
if test "x$PACKAGE" = "xSTEPMAKE"; then
AC_MSG_RESULT(Stepmake package!)
- (cd stepmake; rm -f stepmake; ln -s ../stepmake .)
- (cd stepmake; rm -f bin; ln -s ../bin .)
+
+ #if test "x$builddir" != "x"; then
+ # builddir="../$builddir"
+ #else
+ # builddir=..
+ #fi
+ if test "$srcdir" != "."; then
+ absolute_builddir="`pwd`"
+ package_absolute_builddir="`dirname $absolute_builddir`"
+ package_srcdir="`dirname $srcdir`"
+ builddir="`dirname $package_srcdir`/`basename $package_absolute_builddir`/`basename $absolute_builddir`"
+ else
+ builddir=.
+ fi
+
+ (cd stepmake 2>/dev/null || mkdir stepmake)
+ (cd stepmake; rm -f stepmake; ln -s ../$srcdir/stepmake .)
+ (cd stepmake; rm -f bin; ln -s ../$srcdir/bin .)
AC_CONFIG_AUX_DIR(bin)
stepmake=stepmake
else
AC_MSG_RESULT($PACKAGE)
+
+ if test "$srcdir" != "."; then
+ absolute_builddir="`pwd`"
+ builddir="`dirname $srcdir`/`basename $absolute_builddir`"
+ else
+ builddir=.
+ fi
+
AC_MSG_CHECKING(for stepmake)
# Check for installed stepmake
if test -d $stepmake; then
AC_MSG_RESULT($stepmake)
else
- stepmake='$(depth)'/stepmake
- AC_MSG_RESULT(./stepmake ($datadir/stepmake not found))
+ stepmake='$(depth)'/$srcdir/stepmake
+ AC_MSG_RESULT($srcdir/stepmake ($datadir/stepmake not found))
fi
AC_CONFIG_AUX_DIR(\
$HOME/usr/local/share/stepmake/bin\
/usr/share/stepmake/bin\
/usr/lib/stepmake/bin\
stepmake/bin\
+ $srcdir/stepmake/bin\
)
fi
+ AC_SUBST(builddir)
AC_SUBST(stepmake)
AC_SUBST(package)
AC_SUBST(PACKAGE)
AUTOGENERATE="This file was automatically generated by configure"
AC_SUBST(AUTOGENERATE)
- absolute_builddir="`pwd`"
- AC_SUBST(absolute_builddir)
STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null`
if test "x$STATE_VECTOR" != "x"; then
CONFIGSUFFIX=
AC_ARG_ENABLE(config,
[ enable-config=FILE put configure settings in config-FILE.make],
- [CONFIGSUFFIX=$enableval])
+ [CONFIGSUFFIX=-$enableval])
- if test "$CONFIGSUFFIX" != "" ; then
- CONFIGFILE=config-$CONFIGSUFFIX
- else
- CONFIGFILE=config
- fi
+ CONFIGFILE=config$CONFIGSUFFIX
AC_SUBST(CONFIGSUFFIX)
AC_CANONICAL_HOST
MAKEINFO = @MAKEINFO@
ICFLAGS = @ICFLAGS@
ILDFLAGS = @ILDFLAGS@
+builddir = @builddir@
libdir = @libdir@
prefix = @prefix@
+srcdir = @srcdir@
TEXPREFIX = @TEXPREFIX@
TEXDIR = @TEXDIR@
MFDIR = @MFDIR@
# Bootstrap the init proces. List a file identifies your package.
AC_INIT(make/stepmake.lsm.in)
-AC_CONFIG_HEADER($CONFIGFILE.hh:config.hh.in)
+AC_CONFIG_HEADER($CONFIGFILE.h:config.hh.in)
# Bootstrap StepMake configure
AC_STEPMAKE_INIT
--- /dev/null
+# -*-Makefile-*-
+# specific srcdir makefile for StepMake
+
+depth=..
+
+# Don't try to outsmart us, you puny computer!
+ifeq (0,${MAKELEVEL})
+ MAKE:=$(MAKE) --no-builtin-rules
+endif
+
+# Use alternate configurations alongside eachother:
+#
+# ./configure --enable-configsuffix=debug
+# make conf=debug
+#
+# uses config-debug.make and config-debug.h; output goes to out-debug.
+#
+ifdef conf
+ CONFIGSUFFIX=-$(conf)
+endif
+
+# Use same configuration, but different output directory:
+#
+# make out=WWW
+#
+# uses config.make and config.h; output goes to out-WWW.
+#
+ifdef out
+ outbase=out-$(out)
+else
+ outbase=out$(CONFIGSUFFIX)
+endif
+
+config = config$(CONFIGSUFFIX).make
+
+include $(config)
+
+SRCDIR=$(MAKE) -C $(srcdir) builddir=$(builddir) $@
+
+default: all
+
+%:
+ $(SRCDIR)
endif
.SUFFIXES:
+# Use alternate configurations alongside eachother:
+#
+# ./configure --enable-configsuffix=debug
+# make conf=debug
+#
+# uses config-debug.make and config-debug.h; output goes to out-debug.
+#
+ifdef conf
+ CONFIGSUFFIX=-$(conf)
+endif
-ifndef config
- configuration=config
+# Use same configuration, but different output directory:
+#
+# make out=WWW
+#
+# uses config.make and config.h; output goes to out-WWW.
+#
+ifdef out
+ outbase=out-$(out)
else
- configuration=config-$(config)
+ outbase=out$(CONFIGSUFFIX)
endif
-include $(depth)/$(configuration).make
+ifdef config
+ configuration=$(config)
+else
+ ifeq ($(builddir),.)
+ configuration=$(depth)/config$(CONFIGSUFFIX).make
+ else
+ # user package
+ # configuration=$(depth)/$(builddir)/config$(CONFIGSUFFIX).make
+ # stepmake package
+ configuration=$(depth)/../$(builddir)/stepmake/config$(CONFIGSUFFIX).make
+ endif
+endif
-ifdef CONFIGSUFFIX
-outdir=out-$(CONFIGSUFFIX)
+include $(configuration)
+
+ifeq ($(builddir),.)
+ outroot=.
else
-outdir=out
+ outroot=$(depth)/$(builddir)/$(patsubst $(shell cd $(depth); pwd)%,%,$(shell cd .; pwd))
endif
+outdir=$(outroot)/$(outbase)
+config_h=$(depth)/$(builddir)/config$(CONFIGSUFFIX).h
+
# user package
# stepdir = $(stepmake)/stepmake
-# for stepmake packageg
+# for stepmake package
stepdir = $(depth)/stepmake
STEPMAKE_TEMPLATES := generic $(STEPMAKE_TEMPLATES)
# EXTRA_CXXFLAGS= -Wall -Winline -W -Wmissing-prototypes -Wmissing-declarations -Wconversion
EXTRA_CXXFLAGS= -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wconversion
-
- CXXFLAGS = $(ICFLAGS) $(DEFINES) $(addprefix -I,$(INCLUDES)) $(USER_CFLAGS) $(EXTRA_CFLAGS) $(MODULE_CFLAGS) $($(PACKAGE)_CFLAGS) $($(PACKAGE)_CXXFLAGS) $(USER_CXXFLAGS) $(EXTRA_CXXFLAGS) $(MODULE_CXXFLAGS)
+CXXFLAGS = $(ICFLAGS) $(DEFINES) $(addprefix -I,$(INCLUDES)) $(USER_CFLAGS) $(EXTRA_CFLAGS) $(MODULE_CFLAGS) $($(PACKAGE)_CFLAGS) $($(PACKAGE)_CXXFLAGS) $(USER_CXXFLAGS) $(EXTRA_CXXFLAGS) $(MODULE_CXXFLAGS)
CXX_OUTPUT_OPTION = $< -o $@
DO_CXX_COMPILE=$(DODEP) $(CXX) -c $(CXXFLAGS) $(CXX_OUTPUT_OPTION)
default: $(EXECUTABLE)
-$(EXECUTABLE): $(depth)/config.h $(O_FILES) $(outdir)/version.hh
+$(EXECUTABLE): $(outdir)/config.h $(O_FILES) $(outdir)/version.hh
$(foreach a, $(MODULE_LIBS), $(MAKE) -C $(a) && ) true
$(LD_COMMAND) $(O_FILES) $(LOADLIBES) $(USER_LDFLAGS)
# empty
LDFLAGS = $(ILDFLAGS) $(EXTRA_LDFLAGS) $(MODULE_LDFLAGS) $($(PACKAGE)_LDFLAGS)
-MODULE_LIBES =$(addsuffix /$(outdir)/library.a, $(MODULE_LIBS))
+## urg, silly name: library.a
+MODULE_LIBES =$(addprefix $(outdir)/../, $(addsuffix /$(outbase)/library.a, $(MODULE_LIBS)))
LOADLIBES = $(MODULE_LIBES) $($(PACKAGE)_LIBES) $(EXTRA_LIBES)
.PHONY : all clean config default dist doc doc++ exe help html lib TAGS\
po
-# VPATH=$(outdir)/ #ugh?
-# target all:
-#
+
all: default
$(LOOP)
$(outdir)/version.hh: $(outdir)/VERSION
$(PYTHON) $(step-bindir)/make-version.py $< > $@
+$(outdir)/config.h: $(config_h)
+ cp $< $@
+
# should this be in Rules?
configure: configure.in aclocal.m4
autoconf
include $(outdir)/dummy.dep $(DEP_FILES)
$(outdir)/dummy.dep:
- -mkdir $(outdir)
+ -mkdir -p $(outdir)
touch $(outdir)/dummy.dep
#
ARFLAGS = ru
-INCLUDES = $(depth) include $(outdir) $($(PACKAGE)_INCLUDES) $(MODULE_INCLUDES)
+#INCLUDES = $(depth)/$(builddir) include $(outdir) $($(PACKAGE)_INCLUDES) $(MODULE_INCLUDES)
+INCLUDES = include $(outdir) $($(PACKAGE)_INCLUDES) $(MODULE_INCLUDES)
# urg: for windows ?
# LOADLIBES = $(MODULE_LIBES) $($(PACKAGE)_LIBES) $(EXTRA_LIBES) -lstdc++
default: $(LIBRARY)
-$(outdir)/library.a: $(depth)/config.h $(O_FILES) $(MODULE_LIBES)
+$(outdir)/library.a: $(outdir)/config.h $(O_FILES) $(MODULE_LIBES)
$(AR_COMMAND) $(O_FILES)
$(RANLIB_COMMAND)
-$(SHAREDLIBRARY): $(depth)/config.h $(O_FILES) $(MODULE_LIBES)
+$(SHAREDLIBRARY): $(outdir)/config.h $(O_FILES) $(MODULE_LIBES)
$(LD_COMMAND) $(O_FILES) -o $@.$(VERSION)
rm -f $@
ln -sf $(outdir)/$(LIB_PREFIX)$(NAME).so.$(VERSION) $@.$(MAJOR_VERSION)
$(sed-version) < Documentation/topdocs/$(outdir)/topweb.html > $@
WWW-clean: local-WWW-clean
- $(MAKE) CONFIGSUFFIX='www' clean
+ $(MAKE) out='www' clean
local-WWW-clean: