]> git.donarmstrong.com Git - lilypond.git/blob - lily/GNUmakefile
Merge branch 'master' into translation
[lilypond.git] / lily / GNUmakefile
1
2 depth = ..
3
4 NAME = lilypond
5
6 MODULE_LIBS=$(depth)/flower
7 MODULE_INCLUDES= $(depth)/flower/include
8
9
10 HELP2MAN_EXECS = lilypond
11 STEPMAKE_TEMPLATES=c c++ executable po help2man
12
13 OUT_DIST_FILES=$(addprefix $(outdir)/,parser.hh parser.cc)
14
15 include $(depth)/make/stepmake.make
16
17 ifeq ($(LINK_GXX_STATICALLY),yes)
18 MODULE_LDFLAGS += -L$(outdir) -static-libgcc
19 endif
20
21 CXXFLAGS += -Woverloaded-virtual
22
23
24 # for profiling, link guile statically:
25 #
26 # CONFIG_LDFLAGS += -static -lltdl -ldl
27 #
28
29 ifeq ($(PLATFORM_WINDOWS),yes)
30 WINDRES_FLAGS += -DLilyPond=0 -DLY=1
31 O_FILES += $(outdir)/lilypond.rc.o
32 $(outdir)/lilypond: $(outdir)/lilypond.rc.o
33
34 $(outdir)/lilypond.rc.o: $(outdir)/lilypond.ico $(outdir)/ly.ico
35 $(top-build-dir)/Documentation/logo/$(outbase)/lilypond.ico:
36         $(MAKE) -C $(top-build-dir)/Documentation/logo
37
38 $(outdir)/lilypond.ico: $(top-build-dir)/Documentation/logo/$(outbase)/lilypond.ico
39         cp $< $@
40 $(top-build-dir)/Documentation/logo/$(outbase)/ly.ico:
41         $(MAKE) -C $(top-build-dir)/Documentation/logo
42
43 $(outdir)/ly.ico: $(top-build-dir)/Documentation/logo/$(outbase)/ly.ico
44         cp $< $@
45 endif
46
47 ETAGS_FLAGS += --regex='{c++}/^LY_DEFINE *(\([^,]+\)/\1/'
48 ETAGS_FLAGS += --regex='{c++}/^LY_DEFINE *([^"]*"\([^"]+\)"/\1/'
49
50 default:
51
52
53 $(outdir)/libstdc++.a:
54         rm -f $@
55         ln -s `$(CXX) -print-file-name=libstdc++.a` $(outdir)
56
57 ifeq ($(LINK_GXX_STATICALLY),yes)
58 $(outdir)/lilypond: $(outdir)/libstdc++.a
59 endif
60
61 # force these: Make can't know these have to be generated in advance
62 $(outdir)/lily-parser.o $(outdir)/parser.o: $(outdir)/parser.hh
63 $(outdir)/lily-lexer.o: $(outdir)/parser.hh $(outdir)/FlexLexer.h
64 $(outdir)/lexer.o: $(outdir)/parser.hh $(outdir)/version.hh
65 $(outdir)/lily-lexer-scheme.o \
66   $(outdir)/lily-parser-scheme.o \
67   $(outdir)/parse-scm.o: $(outdir)/parser.hh
68
69 ifneq ($(FLEXLEXER_FILE),)
70 $(outdir)/FlexLexer.h: $(FLEXLEXER_FILE) $(config_h)
71         cp $< $@
72 endif
73
74 $(outdir)/lexer.cc: $(config_h)
75 $(outdir)/parser.cc: $(config_h)
76
77 ifneq ($(LILYPOND_EXTERNAL_BINARY),)
78 $(outdir)/lilypond.1: $(LILYPOND_EXTERNAL_BINARY) $(buildscript-dir)/help2man
79         $(buildscript-dir)/help2man $(LILYPOND_EXTERNAL_BINARY) > $@
80 endif
81
82 $(outdir)/general-scheme.o: $(outdir)/version.hh
83 $(outdir)/lily-guile.o: $(outdir)/version.hh
84 $(outdir)/lily-version.o: $(outdir)/version.hh
85 $(outdir)/main.o: $(outdir)/version.hh
86 $(outdir)/relocate.o: $(outdir)/version.hh
87 $(outdir)/warn-scheme.o: $(outdir)/version.hh
88
89 local-po: $(outdir)/parser.cc