[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
makefile changes for lilypond shared lib
From: |
Nicolas Sceaux |
Subject: |
makefile changes for lilypond shared lib |
Date: |
Sun, 23 May 2004 18:41:04 +0200 |
User-agent: |
Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux) |
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))
-
- makefile changes for lilypond shared lib,
Nicolas Sceaux <=