]> git.donarmstrong.com Git - lilypond.git/blob - make/Variables.make
release: 0.0.44
[lilypond.git] / make / Variables.make
1 #
2 # project  LilyPond -- the musical typesetter
3 # title    generic variables
4 # file     make/Variables.make
5 # abstract do not change this file for site-wide extensions;
6 # please edit settings in User.make 
7 #
8 # Copyright (c) 1997 by    
9 #       Jan Nieuwenhuizen <jan@digicash.com>
10 #       Han-Wen Nienhuys <hanwen@stack.nl>
11
12 # toplevel version info, might be handy?
13 #
14 include ./$(depth)/.version
15 #
16 include ./$(depth)/make/out/Configure_variables.make
17
18 ifeq (0,${MAKELEVEL})
19 MAKE:=$(MAKE) --no-builtin-rules
20 endif
21
22
23 # directory names:
24 #
25 outdir = out# "objects" won-t do, used for libs and deps as well
26 lily_bindir = ./$(depth)/bin
27 distdir = ./$(depth)/$(DIST_NAME)
28 module-distdir = ./$(depth)/$(MODULE_DIST_NAME)
29 depdir = $(outdir)
30 flowerout = ./$(depth)/flower/$(outdir)
31 libout = ./$(depth)/lib/$(outdir)
32 libdir = $(outdir)
33 lilyout = ./$(depth)/lily/$(outdir)
34 mi2muout = ./$(depth)/mi2mu/$(outdir)
35 makeout = ./$(depth)/make/$(outdir)
36 flower-dir = ./$(depth)/flower
37 lib-dir = ./$(depth)/lib
38 lily-dir = ./$(depth)/lily
39 mi2mu-dir = ./$(depth)/mi2mu
40 make-dir = ./$(depth)/make
41 include-lib = ./$(depth)/lib/include
42 include-flower = ./$(depth)/flower/include
43 #
44
45 # user settings:
46 #
47 include ./$(depth)/make/User.make
48 #
49 #
50 # need to be defined in local Makefiles:
51 # build = ./$(depth)/lily/$(outdir)/.build ######## UGR!
52 BUILD = $(shell cat $(build))
53 INCREASE_BUILD = echo `expr \`cat $(build)\` + 1` > .b; mv .b $(build)
54 #
55
56 # ugh, for win32 make
57 export CXX
58
59 # the version:
60 #
61 VERSION=$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_LEVEL)$(MY_PATCH_LEVEL)
62 TOPLEVEL_VERSION=$(TOPLEVEL_MAJOR_VERSION).$(TOPLEVEL_MINOR_VERSION).$(TOPLEVEL_PATCH_LEVEL)$(TOPLEVEL_MY_PATCH_LEVEL)
63 #
64
65
66 # module and top level dist:
67 #
68 # fix naming, use TOPLEVEL_ prefix _or_ MODULE?
69 MODULE_DIST_NAME = $(MODULE_NAME)-$(VERSION)
70 DIST_NAME = lilypond-$(TOPLEVEL_VERSION)
71 #
72
73 # list of object files:
74 #
75 SOURCE_FILES = $(CCFILES) $(EXTRA_SOURCE_FILES)
76 OFILEC = $(SOURCE_FILES:.c=.o)
77 OFILECC = $(OFILEC:.cc=.o)
78 OFILEL = $(OFILECC:.l=.o)
79 OFILEY = $(OFILEL:.y=.o)
80 OFILES = $(patsubst %,$(outdir)/%,$(OFILEY))
81 #
82
83 # dummydeps
84 #
85 DUMMYDEPS=\
86  $(flowerout)/dummy.dep\
87  $(libout)/dummy.dep\
88  $(lilyout)/dummy.dep\
89  $(mi2muout)/dummy.dep\
90
91 #
92
93 # clean file lists:
94 #
95 ERROR_LOG = 2> /dev/null
96 SILENT_LOG = >& /dev/null
97 allexe = $(lily_bindir)/lilypond $(lily_bindir)/mi2mu
98 allhh := $(shell $(FIND) -name "*.hh" $(ERROR_LOG))
99 allcc := $(shell $(FIND) -name "*.cc" $(ERROR_LOG))
100 allobs := $(shell $(FIND) $(outdir) -name "*.o" $(ERROR_LOG))
101 allibs := $(shell $(FIND) $(libdir) -name "*.lib" $(ERROR_LOG))
102 alldeps := $(shell $(FIND) $(outdir) -name "*.dep" $(ERROR_LOG))
103
104 # version stuff:
105 #
106 lily-version = $(lilyout)/version.hh
107 flower-version = $(flowerout)/version.hh
108 mi2mu-version = $(mi2muout)/version.hh
109 #
110
111 # custom libraries:
112 #
113 LIBFLOWER = $(depth)/flower/$(outdir)/$(LIB_PREFIX)flower$(LIB_SUFFIX)
114 LIBLILY = $(depth)/lib/$(outdir)/$(LIB_PREFIX)lily$(LIB_SUFFIX)
115 #
116
117 # compile and link options:
118 #
119 ARFLAGS = ru
120 CFLAGS = $(DEFINES) $(INCLUDES) $(USER_CFLAGS) $(EXTRA_CFLAGS)
121 CXXFLAGS = $(CFLAGS) $(USER_CXXFLAGS) $(EXTRA_CXXFLAGS)
122 INCLUDES = -Iinclude -I$(outdir) -I$(include-lib) -I$(libout) -I$(include-flower) -I$(flowerout) 
123 CXX_OUTPUT_OPTION = $< -o $@
124 LDFLAGS = $(EXTRA_LDFLAGS)
125 LOADLIBES = $(EXTRA_LIBES) $(CUSTOMLIBES)
126 #
127
128 # librarian:
129 #
130 AR = ar
131 AR_COMMAND = $(AR) $(ARFLAGS) $@
132 #
133 RANLIB_COMMAND=$(RANLIB) $@
134 # compiler:
135 #
136
137 DO_CXX_COMPILE=$(DODEP)\
138         $(CXX) -c $(CXXFLAGS) $(CXX_OUTPUT_OPTION) 
139 # "CC = $(CC)"
140 # "CXX = $(CXX)"
141 #
142
143 # linker:
144 #
145 LD = $(CXX)
146 LD_COMMAND = $(LD) $(LDFLAGS) -o $@
147 #
148
149 # dependencies:
150 #
151 depfile = ./$(depdir)/$(subst .o,.dep,$(notdir $@)) 
152 DODEP=rm -f $(depfile); DEPENDENCIES_OUTPUT="$(depfile) $(outdir)/$(notdir $@)"
153 #
154
155 # utils:
156 #
157 #FLEX = flex
158 #BISON = bison
159 #
160
161 # generic target names:
162 #
163 EXECUTABLE = $(NAME)$(EXE)
164 LIB_PREFIX = lib
165 LIB_SUFFIX = .a
166 LIBRARY = $(LIB_PREFIX)$(NAME)$(LIB_SUFFIX)
167 #
168
169 STRIPDEBUG=true #replace to do stripping of certain objects
170
171 DISTFILES=$(EXTRA_DISTFILES) Makefile $(ALL_SOURCES)
172 DOCDIR=$(depth)/doc++
173
174
175 progdocs=$(allhh) $(allcc)