]> git.donarmstrong.com Git - lilypond.git/commitdiff
* configure.in (reloc_b): add --enable-static-gxx to statically
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 19 Jul 2005 12:57:33 +0000 (12:57 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 19 Jul 2005 12:57:33 +0000 (12:57 +0000)
link to libstdc++

* lily/GNUmakefile (static-gxx-libs): new target
static-gxx-libs. Create  link to libstdc++.a

* lily/new-lyric-combine-music-iterator.cc: rename to Lyric_combine_music_iterator

* lily/lyric-combine-music-iterator.cc
(Old_lyric_combine_music_iterator): rename to Old_lyric_combine_music_iterator

14 files changed:
ChangeLog
Documentation/user/advanced-notation.itely
config.make.in
configure.in
input/typography-demo.ly
lily/GNUmakefile
lily/lyric-combine-music-iterator.cc
lily/melisma-translator.cc
lily/new-lyric-combine-music-iterator.cc
lily/performer-group-performer.cc
lily/recording-group-engraver.cc
lily/score-engraver.cc
make/lilypond.fedora.spec.in
scm/define-music-types.scm

index 7cd9ac07203abf5826c5cf5783c81ea11329995e..a6fe2bb27f5d4bae554df9dec55c1439bb6361d9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2005-07-19  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
+       * configure.in (reloc_b): add --enable-static-gxx to statically
+       link to libstdc++
+
+       * lily/GNUmakefile (static-gxx-libs): new target
+       static-gxx-libs. Create  link to libstdc++.a
+
+       * lily/new-lyric-combine-music-iterator.cc: rename to Lyric_combine_music_iterator
+
+       * lily/lyric-combine-music-iterator.cc
+       (Old_lyric_combine_music_iterator): rename to Old_lyric_combine_music_iterator
+
        * lily/*-engraver.cc (various): remove double use of
        PRECOMPUTED_VIRTUAL function: only use
        start_translation_timestep() and stop_translation_timestep(), not
index 71d3f10797ebbf6e13a30b34141425f84605d650..ee6b3ae790bdf78ece6483ad5ba9d990b4d8e544 100644 (file)
@@ -1354,7 +1354,7 @@ Cue notes have smaller font sizes.
  when the original part takes over again, this should be marked with
  the name of the original instrument.
 
- @c really?  Are you sure about that last point?  I'll check after 3.0 -gp
+@c really?  Are you sure about that last point?  I'll check after 3.0 -gp
 
 @c Yes, this is good practice.  Otherwise, the start of the original
 @c part can only be seen from the font size.  This is not good enough
@@ -1364,7 +1364,7 @@ Cue notes have smaller font sizes.
 @c -hwn
 
 
- any other changes introduced by the cued part should also be
+Any other changes introduced by the cued part should also be
 undone.  For example, if the cued instrument plays in a different clef,
 the original clef should be stated once again.
 
index 32fd87e39017fafffd2f739788024828992e00d5..004c597be69d797aa6a3f78eb468602d8c61ba29 100644 (file)
@@ -111,3 +111,5 @@ WINDRES = @WINDRES@
 YACC = @YACC@
 ZIP = @ZIP@
 FLEXLEXER_PATH = @FLEXLEXER_PATH@
+
+LINK_GXX_STATICALLY = @LINK_GXX_STATICALLY@
index 1a459b96991ccbb4dfb4eabed49ba5bf725a6f08..e8766fc8fc4e6d18ad20e966ea18fd8a7193fc1f 100644 (file)
@@ -32,6 +32,12 @@ AC_ARG_ENABLE(relocation,
     [  --enable-relocation     compile with dynamic relocation.  Default: off],
     [reloc_b=$enableval])
 
+AC_SUBST(LINK_GXX_STATICALLY)
+LINK_GXX_STATICALLY=no
+AC_ARG_ENABLE(static-gxx,
+    [  --enable-static-gxx     link libstdc++.a statically. Default: off],
+    [LINK_GXX_STATICALLY=$enableval])
+
 # must come before any header checks
 STEPMAKE_COMPILE
 
@@ -103,7 +109,7 @@ STEPMAKE_PERL(OPTIONAL)
 # New makeinfo for multi-page website docs Simply always require new
 # makeinfo should avoid bug reports; if people want to build lily
 # without the docs, they can find this comment and use an older
-# makeinfo -- but hopefully won't report makeinfo problems.
+# makeinfo--but hopefully won't report makeinfo problems.
 STEPMAKE_PROGS(MAKEINFO, makeinfo, REQUIRED, 4.7)
 
 if test "$optimise_b" = yes; then
index d0ad8ebc613b2433a36177356d65fb3b4c766af9..83d4c11acfd780444de2f852b60ad79fc382a27f 100644 (file)
@@ -127,7 +127,7 @@ pianoLH =  \relative c'' \repeat volta 2\new Voice {
               \context Staff #(set-accidental-style 'modern)
               \melody >>
           \lyricsto "singer" \new Lyrics \firstVerse
-%         \lyricsto "singer" \new Lyrics \secondVerse
+          \lyricsto "singer" \new Lyrics \secondVerse
           \new PianoStaff << 
               \set PianoStaff.instrument = \markup {
                   \bold
index 9d34a9b3f0215b386cb56499672df49d189b6688..0dadf1f71fb70710a390d3fb654db6d6e59c7885 100644 (file)
@@ -6,8 +6,11 @@ SUBDIRS = include
 
 MODULE_LIBS=  $(depth)/flower   $(depth)/kpath-guile 
 MODULE_INCLUDES= $(depth)/flower/include 
+
+# need this to convert between function pointers and member function pointers.
 MODULE_CXXFLAGS= -Wno-pmf-conversions
 
+
 HELP2MAN_EXECS = lilypond
 STEPMAKE_TEMPLATES=c c++ executable po help2man
 
@@ -16,8 +19,12 @@ OUT_DIST_FILES=$(addprefix $(outdir)/,parser.cc parser.hh )
 include $(depth)/make/stepmake.make 
 
 ifeq ($(HAVE_LIBKPATHSEA_SO),no)
-MODULE_LDFLAGS+= $(KPATHSEA_LIBS)
+MODULE_LDFLAGS += $(KPATHSEA_LIBS)
 endif
+ifeq ($(LINK_GXX_STATICALLY),yes)
+MODULE_LDFLAGS += -L$(outdir) -static-libgcc
+endif
+
 
 
 # for profiling, link guile statically:
@@ -46,6 +53,14 @@ ETAGS_FLAGS += --regex='{c++}/^LY_DEFINE *([^"]*"\([^"]+\)"/\1/'
 
 default:
 
+
+$(outdir)/libstdc++.a: 
+       ln -s `$(CXX) -print-file-name=libstdc++.a` $(outdir)/
+
+ifeq ($(LINK_GXX_STATICALLY),yes)
+$(outdir)/lilypond: $(outdir)/libstdc++.a
+endif
+
 # force these: Make can't know these have to be generated in advance
 $(outdir)/lily-parser.o: $(outdir)/parser.hh
 $(outdir)/lily-lexer.o: $(outdir)/parser.hh $(outdir)/FlexLexer.h
index 91ec3ab04f3883b574435461815f7d076400128d..9d0e0237220943750aabd3e8a7f536dfbda1ffb0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  lyric-combine-music-iterator.cc -- implement Lyric_combine_music_iterator
+  lyric-combine-music-iterator.cc -- implement Old_lyric_combine_music_iterator
 
   source file of the GNU LilyPond music typesetter
 
 #include "grob.hh"
 #include "music-iterator.hh"
 
-class Lyric_combine_music_iterator : public Music_iterator
+class Old_lyric_combine_music_iterator : public Music_iterator
 {
 public:
-  Lyric_combine_music_iterator ();
-  Lyric_combine_music_iterator (Lyric_combine_music_iterator const &src);
+  Old_lyric_combine_music_iterator ();
+  Old_lyric_combine_music_iterator (Old_lyric_combine_music_iterator const &src);
   DECLARE_SCHEME_CALLBACK (constructor, ());
 protected:
   virtual void construct_children ();
@@ -29,7 +29,7 @@ protected:
   virtual void derived_mark () const;
   virtual void derived_substitute (Context *, Context *);
 private:
-  bool get_busy_status ()const;
+  bool get_busy_status () const;
   bool melisma_busy ();
   Music *get_combine_lyrics () const;
   Music *get_combine_music () const;
@@ -57,7 +57,7 @@ melisma_busy (Context *tr)
 Music *busy_req;
 Music *melisma_playing_req;
 
-Lyric_combine_music_iterator::Lyric_combine_music_iterator ()
+Old_lyric_combine_music_iterator::Old_lyric_combine_music_iterator ()
 {
   music_iter_ = 0;
   lyric_iter_ = 0;
@@ -72,20 +72,20 @@ Lyric_combine_music_iterator::Lyric_combine_music_iterator ()
 }
 
 Moment
-Lyric_combine_music_iterator::pending_moment () const
+Old_lyric_combine_music_iterator::pending_moment () const
 {
   Moment musnext = music_iter_->pending_moment ();
   return musnext;
 }
 
 bool
-Lyric_combine_music_iterator::ok () const
+Old_lyric_combine_music_iterator::ok () const
 {
   return music_iter_->ok ();
 }
 
 void
-Lyric_combine_music_iterator::derived_mark ()const
+Old_lyric_combine_music_iterator::derived_mark ()const
 {
   if (music_iter_)
     scm_gc_mark (music_iter_->self_scm ());
@@ -94,7 +94,7 @@ Lyric_combine_music_iterator::derived_mark ()const
 }
 
 void
-Lyric_combine_music_iterator::derived_substitute (Context *f, Context *t)
+Old_lyric_combine_music_iterator::derived_substitute (Context *f, Context *t)
 {
   if (music_iter_)
     music_iter_->substitute_outlet (f, t);
@@ -103,7 +103,7 @@ Lyric_combine_music_iterator::derived_substitute (Context *f, Context *t)
 }
 
 Music *
-Lyric_combine_music_iterator::get_combine_music () const
+Old_lyric_combine_music_iterator::get_combine_music () const
 {
   SCM l = get_music ()->get_property ("elements");
   if (!scm_is_pair (l))
@@ -112,7 +112,7 @@ Lyric_combine_music_iterator::get_combine_music () const
 }
 
 Music *
-Lyric_combine_music_iterator::get_combine_lyrics () const
+Old_lyric_combine_music_iterator::get_combine_lyrics () const
 {
   SCM l = get_music ()->get_property ("elements");
   if (!scm_is_pair (l))
@@ -124,14 +124,14 @@ Lyric_combine_music_iterator::get_combine_lyrics () const
 }
 
 void
-Lyric_combine_music_iterator::construct_children ()
+Old_lyric_combine_music_iterator::construct_children ()
 {
   music_iter_ = unsmob_iterator (get_iterator (get_combine_music ()));
   lyric_iter_ = unsmob_iterator (get_iterator (get_combine_lyrics ()));
 }
 
 bool
-Lyric_combine_music_iterator::get_busy_status () const
+Old_lyric_combine_music_iterator::get_busy_status () const
 {
   /*
     We have to use both the event and the busyGrobs queue.  The
@@ -161,7 +161,7 @@ Lyric_combine_music_iterator::get_busy_status () const
 }
 
 bool
-Lyric_combine_music_iterator::melisma_busy ()
+Old_lyric_combine_music_iterator::melisma_busy ()
 {
   /* We cannot read the property, since music_iter_->get_outlet () might
      not be the context that sets the melisma properties, but rather a
@@ -170,7 +170,7 @@ Lyric_combine_music_iterator::melisma_busy ()
 }
 
 void
-Lyric_combine_music_iterator::process (Moment m)
+Old_lyric_combine_music_iterator::process (Moment m)
 {
   Moment my_next = music_iter_->pending_moment ();
   if (my_next > m)
@@ -186,7 +186,7 @@ Lyric_combine_music_iterator::process (Moment m)
 }
 
 void
-Lyric_combine_music_iterator::do_quit ()
+Old_lyric_combine_music_iterator::do_quit ()
 {
   if (music_iter_)
     music_iter_->quit ();
@@ -195,7 +195,7 @@ Lyric_combine_music_iterator::do_quit ()
 }
 
 Music_iterator *
-Lyric_combine_music_iterator::try_music_in_children (Music *m) const
+Old_lyric_combine_music_iterator::try_music_in_children (Music *m) const
 {
   Music_iterator *i = music_iter_->try_music (m);
   if (i)
@@ -204,4 +204,4 @@ Lyric_combine_music_iterator::try_music_in_children (Music *m) const
     return lyric_iter_->try_music (m);
 }
 
-IMPLEMENT_CTOR_CALLBACK (Lyric_combine_music_iterator);
+IMPLEMENT_CTOR_CALLBACK (Old_lyric_combine_music_iterator);
index 18549114899b1a1933cd45bd86f43a10e56a865a..97a51df6703a02ce0cf3df8c8748eca793562d30 100644 (file)
@@ -9,6 +9,7 @@
 #include "engraver.hh"
 #include "grob.hh"
 #include "context.hh"
+#include "translator.icc"
 
 /**
    Signal existence of melismas.
@@ -65,7 +66,6 @@ Melisma_translator::Melisma_translator ()
   event_ = 0;
 }
 
-#include "translator.icc"
 
 ADD_TRANSLATOR (Melisma_translator,
                /* descr */ "This translator collects melisma information about ties, beams, and user settings (@code{melismaBusy}, and signals it to the @code{\addlyrics} code.  ",
index 49e496ff707991f0587d519652a8cac78ec62b4c..37f5d67bd8f113c301960077e04d9b2c6ab9344d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  new-lyric-combine-iterator.cc -- implement New_lyric_combine_music_iterator
+  new-lyric-combine-iterator.cc -- implement Lyric_combine_music_iterator
 
   source file of the GNU LilyPond music typesetter
 
 #include "music-iterator.hh"
 #include "input.hh"
 
-class New_lyric_combine_music_iterator : public Music_iterator
+class Lyric_combine_music_iterator : public Music_iterator
 {
 public:
-  New_lyric_combine_music_iterator ();
-  New_lyric_combine_music_iterator (New_lyric_combine_music_iterator const &src);
+  Lyric_combine_music_iterator ();
+  Lyric_combine_music_iterator (Lyric_combine_music_iterator const &src);
   DECLARE_SCHEME_CALLBACK (constructor, ());
 protected:
   virtual void construct_children ();
@@ -48,7 +48,7 @@ static Music *busy_ev;
 static Music *start_ev;
 static Music *melisma_playing_ev;
 
-New_lyric_combine_music_iterator::New_lyric_combine_music_iterator ()
+Lyric_combine_music_iterator::Lyric_combine_music_iterator ()
 {
   music_found_ = false;
   made_association_ = false;
@@ -71,7 +71,7 @@ New_lyric_combine_music_iterator::New_lyric_combine_music_iterator ()
 }
 
 bool
-New_lyric_combine_music_iterator::start_new_syllable ()
+Lyric_combine_music_iterator::start_new_syllable ()
 {
   bool b = music_context_->try_music (busy_ev);
 
@@ -92,7 +92,7 @@ New_lyric_combine_music_iterator::start_new_syllable ()
 }
 
 Moment
-New_lyric_combine_music_iterator::pending_moment () const
+Lyric_combine_music_iterator::pending_moment () const
 {
   Moment m;
 
@@ -102,19 +102,19 @@ New_lyric_combine_music_iterator::pending_moment () const
 }
 
 bool
-New_lyric_combine_music_iterator::run_always () const
+Lyric_combine_music_iterator::run_always () const
 {
   return true;
 }
 
 bool
-New_lyric_combine_music_iterator::ok () const
+Lyric_combine_music_iterator::ok () const
 {
   return lyric_iter_ && lyric_iter_->ok ();
 }
 
 void
-New_lyric_combine_music_iterator::derived_mark ()const
+Lyric_combine_music_iterator::derived_mark ()const
 {
   if (lyric_iter_)
     scm_gc_mark (lyric_iter_->self_scm ());
@@ -125,7 +125,7 @@ New_lyric_combine_music_iterator::derived_mark ()const
 }
 
 void
-New_lyric_combine_music_iterator::derived_substitute (Context *f, Context *t)
+Lyric_combine_music_iterator::derived_substitute (Context *f, Context *t)
 {
   if (lyric_iter_)
     lyric_iter_->substitute_outlet (f, t);
@@ -136,7 +136,7 @@ New_lyric_combine_music_iterator::derived_substitute (Context *f, Context *t)
 }
 
 void
-New_lyric_combine_music_iterator::construct_children ()
+Lyric_combine_music_iterator::construct_children ()
 {
   Music *m = unsmob_music (get_music ()->get_property ("element"));
   lyric_iter_ = unsmob_iterator (get_iterator (m));
@@ -157,7 +157,7 @@ New_lyric_combine_music_iterator::construct_children ()
 }
 
 void
-New_lyric_combine_music_iterator::find_voice ()
+Lyric_combine_music_iterator::find_voice ()
 {
   SCM voice_name = lyricsto_voice_name_;
   SCM running = lyrics_context_ ? lyrics_context_->get_property ("associatedVoice") : SCM_EOL;
@@ -199,7 +199,7 @@ New_lyric_combine_music_iterator::find_voice ()
 }
 
 void
-New_lyric_combine_music_iterator::process (Moment)
+Lyric_combine_music_iterator::process (Moment)
 {
   find_voice ();
   if (!music_context_)
@@ -228,7 +228,7 @@ New_lyric_combine_music_iterator::process (Moment)
 }
 
 void
-New_lyric_combine_music_iterator::do_quit ()
+Lyric_combine_music_iterator::do_quit ()
 {
   if (!music_found_)
     {
@@ -247,9 +247,9 @@ New_lyric_combine_music_iterator::do_quit ()
 }
 
 Music_iterator *
-New_lyric_combine_music_iterator::try_music_in_children (Music *m) const
+Lyric_combine_music_iterator::try_music_in_children (Music *m) const
 {
   return lyric_iter_->try_music (m);
 }
 
-IMPLEMENT_CTOR_CALLBACK (New_lyric_combine_music_iterator);
+IMPLEMENT_CTOR_CALLBACK (Lyric_combine_music_iterator);
index 098def5c970e422142008ce630766a82b8a7d8e3..8c24bbb99664360f5e2150ae696c985bcb8d609a 100644 (file)
@@ -13,8 +13,6 @@
 #include "audio-element.hh"
 #include "warn.hh"
 
-#include "translator.icc"
-
 ADD_TRANSLATOR_GROUP (Performer_group_performer,
                /* descr */ "",
                /* creats*/ "",
index 971c06aca61ced5d6b71c273a313a7750682f1d0..364494e9273838db94269749f515f9fb9a934a45 100644 (file)
@@ -72,8 +72,6 @@ Recording_group_engraver::fetch_precomputable_methods (Translator_group_void_met
   ptrs[STOP_TRANSLATION_TIMESTEP] = &recording_engraver;
 }
 
-#include "translator.icc"
-
 ADD_TRANSLATOR_GROUP (Recording_group_engraver,
                "Engraver_group_engraver that records all music events "
                "for this context. Calls the procedure "
index 658b44ac137523012806b0a1de821418921dfe2f..5fbacd0cb2229f2a3f18b3485003262f63951f7f 100644 (file)
@@ -164,8 +164,6 @@ Score_engraver::try_music (Music *m)
   return false;
 }
 
-#include "translator.icc"
-
 ADD_TRANSLATOR_GROUP (Score_engraver,
                /* descr */ "Top level engraver. Takes care of generating columns and the complete  system (ie. System) "
                "\n\n "
index 3091df8f605ba0bf70cd29ff47323dac6b613449..6efcdee3618c794d61a6c7279c94f14c857cb8ba 100644 (file)
@@ -52,7 +52,8 @@ Documentation and example files of LilyPond.  An index is available at
 # In fact, do not take out the spaces between % and { in the above comment,
 # because RPM will gladly do a substitution anyway.
 
-./configure --without-kpathsea --disable-checking --prefix=%{_prefix} --enable-optimising
+# compile with static libstdc++ for better platform portability.
+./configure --enable-static-gxx --without-kpathsea --disable-checking --prefix=%{_prefix} --enable-optimising
 
 
 make all
index 37364c85acdaed804dda661ea4c2c815aa7c12eb..f7918aaa5853444eb8cc943afe408e3d36338a46 100644 (file)
@@ -239,7 +239,7 @@ Syntax @var{\\oldaddlyrics }@var{music} @var{lyrics}.")
        (types . (general-music lyric-combine-music))
        (length-callback . ,Lyric_combine_music::length_callback)
        (start-callback . ,Music_sequence::first_start_callback)
-       (iterator-ctor . ,Lyric_combine_music_iterator::constructor)
+       (iterator-ctor . ,Old_lyric_combine_music_iterator::constructor)
        ))
     
     (LyricCombineMusic
@@ -249,7 +249,7 @@ Syntax @var{\\oldaddlyrics }@var{music} @var{lyrics}.")
 Syntax @var{\\lyricsto }@var{voicename} @var{lyrics}.")
        (length . ,(ly:make-moment 0 1))
        (types . (general-music lyric-combine-music))
-       (iterator-ctor . ,New_lyric_combine_music_iterator::constructor)
+       (iterator-ctor . ,Lyric_combine_music_iterator::constructor)
        ))
 
     (LyricEvent