Hello, I was experimenting this week end with lilypond called directly from scheme (without using lilypond-bin). I had to make few changes in the stepmake rules in order to generate a .so shared library. Here is a patch, just in case of... `make shared-lib' generates the lib; this is rudimentary, no install rule.
nicolas
Index: lily/GNUmakefile =================================================================== RCS file: /cvsroot/lilypond/lilypond/lily/GNUmakefile,v retrieving revision 1.30 diff -u -r1.30 GNUmakefile --- lily/GNUmakefile 7 Mar 2004 13:07:29 -0000 1.30 +++ lily/GNUmakefile 23 May 2004 16:11:30 -0000 @@ -10,7 +10,7 @@ HELP2MAN_EXECS = lilypond-bin -STEPMAKE_TEMPLATES= c++ executable po help2man +STEPMAKE_TEMPLATES= c++ shared-library executable po help2man include $(depth)/make/stepmake.make @@ -32,6 +32,14 @@ $(outdir)/kpath.o: $(outdir)/version.hh $(outdir)/lily-guile.o: $(outdir)/version.hh $(outdir)/lily-version.o: $(outdir)/version.hh + +$(outdir)/my-lily-parser.lo: $(outdir)/parser.hh +$(outdir)/my-lily-lexer.lo: $(outdir)/parser.hh +$(outdir)/lexer.lo: $(outdir)/parser.hh $(outdir)/version.hh + +$(outdir)/kpath.lo: $(outdir)/version.hh +$(outdir)/lily-guile.lo: $(outdir)/version.hh +$(outdir)/lily-version.lo: $(outdir)/version.hh # ugh. For --srcdir builds, these must exist to satisfy their broken # lexer.dep and parser.dep file entries. Index: stepmake/stepmake/c++-vars.make =================================================================== RCS file: /cvsroot/lilypond/lilypond/stepmake/stepmake/c++-vars.make,v retrieving revision 1.14 diff -u -r1.14 c++-vars.make --- stepmake/stepmake/c++-vars.make 7 Mar 2004 13:07:28 -0000 1.14 +++ stepmake/stepmake/c++-vars.make 23 May 2004 16:11:47 -0000 @@ -18,6 +18,7 @@ ALL_CC_SOURCES += $(HH_FILES) $(INL_FILES) $(CC_FILES) $(YY_FILES) $(LL_FILES) O_FILES+=$(addprefix $(outdir)/, $(CC_FILES:.cc=.o) $(LL_FILES:.ll=.o) $(YY_FILES:.yy=.o)) +LO_FILES+=$(addprefix $(outdir)/, $(CC_FILES:.cc=.lo) $(LL_FILES:.ll=.lo) $(YY_FILES:.yy=.lo)) TAGS_SOURCES += $(TCC_FILES) $(INL_FILES) $(CC_FILES) $(YY_FILES) $(LL_FILES) TAGS_HEADERS += $(HH_FILES) $(INL_FILES) Index: stepmake/stepmake/c-vars.make =================================================================== RCS file: /cvsroot/lilypond/lilypond/stepmake/stepmake/c-vars.make,v retrieving revision 1.8 diff -u -r1.8 c-vars.make --- stepmake/stepmake/c-vars.make 7 Mar 2004 13:07:28 -0000 1.8 +++ stepmake/stepmake/c-vars.make 23 May 2004 16:11:47 -0000 @@ -8,6 +8,7 @@ SOURCE_FILES+=$(Y_FILES) $(C_FILES) $(L_FILES) $(H_FILES) O_FILES+=$(addprefix $(outdir)/, $(Y_FILES:.y=.o) $(C_FILES:.c=.o) $(L_FILES:.l=.o)) +LO_FILES+=$(addprefix $(outdir)/, $(Y_FILES:.y=.lo) $(C_FILES:.c=.lo) $(L_FILES:.l=.lo)) TAGS_SOURCES += $(C_FILES) TAGS_HEADERS += $(H_FILES) Index: stepmake/stepmake/generic-targets.make =================================================================== RCS file: /cvsroot/lilypond/lilypond/stepmake/stepmake/generic-targets.make,v retrieving revision 1.48 diff -u -r1.48 generic-targets.make --- stepmake/stepmake/generic-targets.make 30 Mar 2004 22:50:17 -0000 1.48 +++ stepmake/stepmake/generic-targets.make 23 May 2004 16:11:47 -0000 @@ -4,6 +4,9 @@ all: default $(LOOP) +shared-lib: + $(LOOP) + man: $(LOOP) Index: stepmake/stepmake/library-rules.make =================================================================== RCS file: /cvsroot/lilypond/lilypond/stepmake/stepmake/library-rules.make,v retrieving revision 1.3 diff -u -r1.3 library-rules.make --- stepmake/stepmake/library-rules.make 11 Feb 2004 15:11:02 -0000 1.3 +++ stepmake/stepmake/library-rules.make 23 May 2004 16:11:47 -0000 @@ -4,5 +4,6 @@ # thanks to Nelson Beebe for this trick. $(RANLIB) $@ || $(AR) ts $@ || true - - +$(LLIBRARY): $(outdir)/config.h $(LO_FILES) + $(AR) $(ARFLAGS) $@ $(LO_FILES) + $(RANLIB) $@ || $(AR) ts $@ || true Index: stepmake/stepmake/library-targets.make =================================================================== RCS file: /cvsroot/lilypond/lilypond/stepmake/stepmake/library-targets.make,v retrieving revision 1.5 diff -u -r1.5 library-targets.make --- stepmake/stepmake/library-targets.make 20 Sep 2001 21:49:23 -0000 1.5 +++ stepmake/stepmake/library-targets.make 23 May 2004 16:11:47 -0000 @@ -1,3 +1,6 @@ default: $(LIBRARY) lib: $(LIBRARY) + +shared-lib: $(LLIBRARY) + Index: stepmake/stepmake/library-vars.make =================================================================== RCS file: /cvsroot/lilypond/lilypond/stepmake/stepmake/library-vars.make,v retrieving revision 1.3 diff -u -r1.3 library-vars.make --- stepmake/stepmake/library-vars.make 20 Sep 2001 21:49:23 -0000 1.3 +++ stepmake/stepmake/library-vars.make 23 May 2004 16:11:47 -0000 @@ -1,8 +1,10 @@ LIB_PREFIX = lib LIB_SUFFIX = .a +LLIB_SUFFIX = .la AR=ar # LIBRARY = $(outdir)/$(LIB_PREFIX)$(NAME)$(LIB_SUFFIX) LIBRARY = $(outdir)/$(LIB_PREFIX)rary$(LIB_SUFFIX) +LLIBRARY = $(outdir)/$(LIB_PREFIX)rary$(LLIB_SUFFIX) INSTALL_LIBRARY = $(LIB_PREFIX)$(NAME)$(LIB_SUFFIX) Index: stepmake/stepmake/shared-library-rules.make =================================================================== RCS file: /cvsroot/lilypond/lilypond/stepmake/stepmake/shared-library-rules.make,v retrieving revision 1.3 diff -u -r1.3 shared-library-rules.make --- stepmake/stepmake/shared-library-rules.make 9 Aug 2002 12:39:27 -0000 1.3 +++ stepmake/stepmake/shared-library-rules.make 23 May 2004 16:11:47 -0000 @@ -1,4 +1,5 @@ -$(SHARED_LIBRARY): $(outdir)/config.h $(LO_FILES) - $(LD) $(SHARED_FLAGS) -o $@ $(LO_FILES) $(ALL_LDFLAGS) +$(SHARED_LIBRARY): $(outdir)/config.h $(outdir)/version.hh $(LO_FILES) +# objcopy --redefine-sym `/usr/bin/nm -B ./out/main.lo | sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\(\)\([_A-Za-z][_A-Za-z0-9]*\)$$/\1 \2\3 \3/p' | sed 's/.* //' | sort | uniq | grep -E -e "ly_scheme_init"`=ly_scheme_init ./out/main.lo + $(LD) $(SHARED_FLAGS) -o $@ $(LO_FILES) $(SL_LOADLIBES) $(ALL_LDFLAGS) Index: stepmake/stepmake/shared-library-targets.make =================================================================== RCS file: /cvsroot/lilypond/lilypond/stepmake/stepmake/shared-library-targets.make,v retrieving revision 1.2 diff -u -r1.2 shared-library-targets.make --- stepmake/stepmake/shared-library-targets.make 9 Aug 2002 12:39:27 -0000 1.2 +++ stepmake/stepmake/shared-library-targets.make 23 May 2004 16:11:47 -0000 @@ -1,4 +1,4 @@ -default: $(SHARED_LIBRARY) +shared-lib: $(SHARED_LIBRARY) -$(SHARED_LIB_PREFIX)$(NAME): default \ No newline at end of file +$(SHARED_LIB_PREFIX)$(NAME): shared-lib Index: stepmake/stepmake/shared-library-vars.make =================================================================== RCS file: /cvsroot/lilypond/lilypond/stepmake/stepmake/shared-library-vars.make,v retrieving revision 1.2 diff -u -r1.2 shared-library-vars.make --- stepmake/stepmake/shared-library-vars.make 9 Aug 2002 12:39:27 -0000 1.2 +++ stepmake/stepmake/shared-library-vars.make 23 May 2004 16:11:47 -0000 @@ -1,3 +1,5 @@ +SL_MODULE_LIBES =$(addprefix $(outdir)/../, $(addsuffix /$(outbase)/library.la, $(MODULE_LIBS))) +SL_LOADLIBES = $(SL_MODULE_LIBES) $($(PACKAGE)_LIBES) $(EXTRA_LIBES) ifneq ($(CYGWIN_BUILD),) SHARED_LIB_PREFIX = cyg @@ -8,7 +10,7 @@ else SHARED_LIB_PREFIX = lib SHARED_LIB_SUFFIX = .so - SHARED_LIB_VERSION = $(VERSION) + SHARED_LIB_VERSION = .$(VERSION) SHARED_LIB_VERSION_SUFFIX = endif @@ -18,6 +20,3 @@ lo-dep-out = $(outdir)/$(subst .lo,.dep,$(notdir $@))# DO_LO_DEP = rm -f $(lo-dep-out); DEPENDENCIES_OUTPUT="$(lo-dep-out) $(outdir)/$(notdir $@)" - -LO_FILES += $(addprefix $(outdir)/, $(Y_FILES:.y=.lo) $(C_FILES:.c=.lo) $(L_FILES:.l=.lo)) -
_______________________________________________ lilypond-devel mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/lilypond-devel
