X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2FGNUmakefile;h=f3fb922b53f34184794e7d0e0ff84a909db83c03;hb=17efd24bdbf7ed1c5a352ef28eb3c1ccaec2512b;hp=235dc8ad0feb30a1ec827a0432cb29fe37f50e62;hpb=7dfd01bf92557e33629fcc6930a4f97031470fc8;p=lilypond.git diff --git a/lily/GNUmakefile b/lily/GNUmakefile index 235dc8ad0f..f3fb922b53 100644 --- a/lily/GNUmakefile +++ b/lily/GNUmakefile @@ -4,37 +4,86 @@ depth = .. NAME = lilypond SUBDIRS = include -MODULE_LIBS=$(depth)/flower +MODULE_LIBS=$(depth)/flower MODULE_INCLUDES= $(depth)/flower/include -MODULE_CXXFLAGS= + +# need this to convert between function pointers and member function pointers. +MODULE_CXXFLAGS= -Wno-pmf-conversions HELP2MAN_EXECS = lilypond -STEPMAKE_TEMPLATES= c++ executable po help2man +STEPMAKE_TEMPLATES=c c++ executable po help2man + +# list parser.hh first: making parser.hh removes parser.cc +OUT_DIST_FILES=$(addprefix $(outdir)/,parser.hh parser.cc) + +include $(depth)/make/stepmake.make + +ifeq ($(LINK_GXX_STATICALLY),yes) +MODULE_LDFLAGS += -L$(outdir) -static-libgcc +endif + +CXXFLAGS += -Woverloaded-virtual -include $(depth)/make/stepmake.make # for profiling, link guile statically: # -# USER_LDFLAGS += -static -lltdl -ldl +# CONFIG_LDFLAGS += -static -lltdl -ldl # +ifeq ($(PLATFORM_WINDOWS),yes) +WINDRES_FLAGS += -DLilyPond=0 -DLY=1 +O_FILES += $(outdir)/lilypond.rc.o +$(outdir)/lilypond: $(outdir)/lilypond.rc.o + +$(outdir)/lilypond.rc.o: $(outdir)/lilypond.ico $(outdir)/ly.ico +$(top-build-dir)/Documentation/logo/$(outbase)/lilypond.ico: + $(MAKE) -C $(top-build-dir)/Documentation/logo + +$(outdir)/lilypond.ico: $(top-build-dir)/Documentation/logo/$(outbase)/lilypond.ico + cp $< $@ +$(top-build-dir)/Documentation/logo/$(outbase)/ly.ico: + $(MAKE) -C $(top-build-dir)/Documentation/logo + +$(outdir)/ly.ico: $(top-build-dir)/Documentation/logo/$(outbase)/ly.ico + cp $< $@ +endif + ETAGS_FLAGS += --regex='{c++}/^LY_DEFINE *(\([^,]+\)/\1/' ETAGS_FLAGS += --regex='{c++}/^LY_DEFINE *([^"]*"\([^"]+\)"/\1/' default: + +$(outdir)/libstdc++.a: + rm -f $@ + 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)/my-lily-parser.o: $(outdir)/parser.hh -$(outdir)/my-lily-lexer.o: $(outdir)/parser.hh +$(outdir)/lily-parser.o: $(outdir)/parser.hh +$(outdir)/lily-lexer.o: $(outdir)/parser.hh $(outdir)/FlexLexer.h $(outdir)/lexer.o: $(outdir)/parser.hh $(outdir)/version.hh -$(outdir)/kpath.o: $(outdir)/version.hh +ifneq ($(FLEXLEXER_FILE),) +$(outdir)/FlexLexer.h: $(FLEXLEXER_FILE) $(config_h) + cp $< $@ +endif + +$(outdir)/lexer.cc: $(config_h) +$(outdir)/parser.cc: $(config_h) + +$(outdir)/general-scheme.o: $(outdir)/version.hh $(outdir)/lily-guile.o: $(outdir)/version.hh $(outdir)/lily-version.o: $(outdir)/version.hh +local-po: $(outdir)/parser.cc + # ugh. For --srcdir builds, these must exist to satisfy their broken # lexer.dep and parser.dep file entries. -ifneq ($(srcdir), .) +ifneq ($(configure-srcdir),.) .PRECIOUS: $(outdir)/lexer.cc $(outdir)/parser.cc endif