lilypond-devel
[Top][All Lists]
Advanced

[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))
-

reply via email to

[Prev in Thread] Current Thread [Next in Thread]