]> git.donarmstrong.com Git - lilypond.git/blob - make/Targets.make
release: 0.0.56
[lilypond.git] / make / Targets.make
1 #
2 # project  LilyPond -- the musical typesetter
3 # title    generic make targets
4 # file     make/Targets.make
5 #
6 # Copyright (c) 1997 by    
7 #       Jan Nieuwenhuizen <jan@digicash.com>
8 #       Han-Wen Nienhuys <hanwen@stack.nl>
9
10 .PHONY : all clean config default dist doc doc++ dummy exe help lib TAGS html\
11         check-flower-deps check-lily-deps check-doc-deps
12
13 # target all:
14 #
15 all:     default
16 ifdef SUBDIRS
17         set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i all; done
18 endif
19
20 #
21
22 # platform specific variables,
23 #
24 include ./$(depth)/make/out/Site.make
25 #
26
27 # where to do this ?
28 .PRECIOUS:  $(makeout)/Site.make
29
30 # dependency list of executable:
31 #
32 EXECUTABLE = $(lily_bindir)/$(NAME)
33 $(EXECUTABLE): $(build) $(OFILES)
34         $(MAKE) $(MODULE_LIBDEPS) 
35         $(INCREASE_BUILD)
36         $(MAKE) -S $(OFILES)  $(SILENT_LOG)
37 ifdef STABLEOBS
38         $(DO_STRIP) $(STABLEOBS)
39 endif
40         $(LD_COMMAND) $(OFILES) $(LOADLIBES)
41
42 exe: $(EXECUTABLE)
43 #
44
45 $(build): $(depth)/.version
46         echo 0 > $@
47
48 # dependency list of library:
49 #
50 LIBRARY = $(outdir)/$(LIB_PREFIX)$(NAME).a
51 $(LIBRARY): $(build) $(OFILES)
52         $(INCREASE_BUILD)
53         $(MAKE) $(OFILES)  $(SILENT_LOG)
54         $(AR_COMMAND) $(OFILES)
55         $(RANLIB_COMMAND)
56
57 SHAREDLIBRARY=$(outdir)/$(LIB_PREFIX)$(NAME).so
58 $(SHAREDLIBRARY):  $(build) $(OFILES) $(MODULE_LIBDEPS)
59         $(INCREASE_BUILD)
60         $(MAKE) $(OFILES)  $(SILENT_LOG)
61         $(LD_COMMAND) $(OFILES) -o $@
62 #       ln -sf $(outdir)/$(LIB_PREFIX)$(NAME).so.$(VERSION) $(outdir)/$(LIB_PREFIX)$(NAME).so
63 #
64 lib: $(LIBRARY)
65 #
66 TOCLEAN= $(allobs) $(alldeps)
67 clean: localclean
68 ifdef allobs
69         rm -f $(allobs)
70 endif
71 ifdef alldeps
72         rm -f $(alldeps)
73 endif
74 ifdef SUBDIRS
75         set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i clean; done
76 endif
77
78 distclean: localdistclean 
79 ifdef SUBDIRS
80         set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i localdistclean; done
81 endif
82
83 localdistclean:
84
85
86 # configure:
87 #
88 config:
89         ./$(depth)/configure
90 #
91
92 # dummydeps:
93 #
94 dummydep: $(DUMMYDEPS)
95 #
96
97 # value of $(OSTYPE) on windhoos; "make $OSTYPE" if you use bash :-)
98 #
99 win32: 
100         $(MAKE) -C . CXX=g++ 
101 #
102
103 # xcompile to doze:
104 #
105 doze:   dos
106 dos: 
107         $(MAKE) -C . CXX="gcc-go32 -I/usr/i386-go32/include -I/usr/i386-go32/include/g++ -D_WIN32 -Dcaddr_t=char* -DMAP_SHARED=0"
108 #
109
110 # target help:
111 #
112 help:
113         @echo "Usage:"
114         @echo " $(MAKE) ["VARIABLE=value" ...] [target]"
115         @echo
116         @echo "targets:"
117         @echo " all clean config dist distclean doc doc++"
118         @echo " exe help lib moduledist TAGS"
119         @echo " dos:    xcomplile to dos"
120         @echo " win32:  native cygnus-win32 compile" 
121 #
122
123 doc:
124         $(MAKE) -C $(depth)/Documentation do-doc
125
126 # doc++ documentation of classes
127 doc++: $(progdocs)      
128         doc++ -k -p -d $(DOCDIR) $^
129
130 dist:
131         -mkdir $(distdir)
132         $(MAKE) localdist
133         chmod -Rf a+rX $(distdir)
134
135         (cd ./$(depth); tar cfz $(DIST_NAME).tar.gz $(DIST_NAME))
136 # should be trapped
137         rm -rf $(distdir)/
138
139 localdist: $(DISTFILES)
140         if [ -d out ]; then mkdir $(distdir)/$(localdir)/out; fi
141         ln $(DISTFILES) $(distdir)/$(localdir)
142 ifdef SUBDIRS
143         set -e; for i in $(SUBDIRS); do mkdir $(distdir)/$(localdir)/$$i; \
144                 $(MAKE) localdir=$(localdir)/$$i -C $$i localdist; done
145 endif
146
147 moduledist:
148         -mkdir $(module-distdir)
149         $(MAKE) localmoduledist
150         (cd ./$(depth); tar cfz $(MODULE_DIST_NAME).tar.gz $(MODULE_DIST_NAME))
151         rm -rf $(module-distdir)/ 
152
153 localmoduledist:
154         ln $(DISTFILES) $(module-distdir)/$(localdir)
155 ifdef SUBDIRS
156         set -e; for i in $(SUBDIRS); do mkdir $(module-distdir)/$(localdir)/$$i; done
157         set -e; for i in $(SUBDIRS); do $(MAKE) localdir=$(localdir)/$$i -C $$i localmoduledist; done
158 endif
159
160 TAGS:$(all-tag-sources)
161 ifdef all-tag-sources
162         -etags -CT $(all-tag-sources) /dev/null
163 endif
164 ifdef SUBDIRS
165         set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i TAGS ; done
166 endif
167
168
169 # version stuff:
170 #
171
172 $(outdir)/version.hh: .version
173         ./$(lily_bindir)/make_version > $@
174
175
176 # should this be in Rules?
177 configure: configure.in
178         autoconf - < $<> $@
179         chmod +x configure
180
181 localclean:
182
183
184 install: localinstall
185 ifdef SUBDIRS
186         set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i install; done
187 endif
188
189 localinstall:
190
191 uninstall: localuninstall
192 ifdef SUBDIRS
193         set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i uninstall; done
194 endif
195
196 localuninstall:
197
198 # specific stuff:
199 #
200 $(LIBFLOWER): check-flower-deps
201
202 check-flower-deps:
203         $(MAKE)  -C $(depth)/flower/ default
204
205 check-lily-deps: check-flower-deps
206         $(MAKE)  -C $(depth)/lib
207
208 check-doc-deps:
209         $(MAKE) -C $(depth)/Documentation
210
211 $(LIBLILY): dummy
212         $(MAKE) ./$(outdir)/$(@F) -C $(depth)/lib
213 #
214
215 # RedHat rpm package:
216 #
217 rpm:
218         -cp $(depth)/lilypond-$(TOPLEVEL_VERSION).tar.gz $(rpm-sources)
219         -cp $(doc-dir)/*.gif $(rpm-sources)
220         $(MAKE) -C $(make-dir) spec
221         rpm -ba $(makeout)/lilypond.spec
222 #
223