2 # project LilyPond -- the musical typesetter
3 # title generic make targets
4 # file make/Targets.make
6 # Copyright (c) 1997 by
7 # Jan Nieuwenhuizen <jan@digicash.com>
8 # Han-Wen Nienhuys <hanwen@stack.nl>
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
17 set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i all; done
22 # platform specific variables,
24 include ./$(depth)/make/out/Site.make
28 .PRECIOUS: $(makeout)/Site.make
30 # dependency list of executable:
33 $(EXECUTABLE): $(build) $(OFILES) $(outdir)/version.hh
34 $(MAKE) $(MODULE_LIBDEPS)
36 $(MAKE) -S $(OFILES) $(SILENT_LOG)
38 $(DO_STRIP) $(STABLEOBS)
40 $(LD_COMMAND) $(OFILES) $(LOADLIBES)
45 $(build): $(depth)/.version
48 # dependency list of library:
50 LIBRARY = $(outdir)/$(LIB_PREFIX)$(NAME).a
51 $(LIBRARY): $(build) $(OFILES)
53 $(MAKE) $(OFILES) $(SILENT_LOG)
54 $(AR_COMMAND) $(OFILES)
57 SHAREDLIBRARY=$(outdir)/$(LIB_PREFIX)$(NAME).so
58 $(SHAREDLIBRARY): $(build) $(OFILES) $(MODULE_LIBDEPS)
60 $(MAKE) $(OFILES) $(SILENT_LOG)
61 $(LD_COMMAND) $(OFILES) -o $@
62 # ln -sf $(outdir)/$(LIB_PREFIX)$(NAME).so.$(VERSION) $(outdir)/$(LIB_PREFIX)$(NAME).so
66 TOCLEAN= $(allobs) $(alldeps)
68 # be careful about deletion.
81 set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i clean; done
84 distclean: localdistclean
86 set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i localdistclean; done
100 dummydep: $(DUMMYDEPS)
103 # value of $(OSTYPE) on windhoos...; "make $OSTYPE" if you use bash :-)
105 win32: windows32 # win/lose?
108 $(MAKE) -C . "CXX=g++ -D_WINDOWS32"
115 $(MAKE) -C . CXX="gcc-go32 -I/usr/i386-go32/include -I/usr/i386-go32/include/g++ -D_WINDOWS32 -Dcaddr_t=char* -DMAP_SHARED=0"
122 @echo " $(MAKE) ["VARIABLE=value" ...] [target]"
125 @echo " all clean config dist distclean doc doc++"
126 @echo " exe help lib moduledist TAGS"
127 @echo " dos: xcomplile to dos"
128 @echo " windows32: native cygnus-gnu compile"
132 $(MAKE) -C $(depth)/Documentation do-doc
134 # doc++ documentation of classes
136 doc++ -k -p -d $(DOCDIR) $^
141 chmod -Rf a+rX $(distdir)
143 (cd ./$(depth); $(TAR) cf $(DIST_NAME).tar $(DIST_NAME);)
144 (cd $(depth); gzip -9 $(DIST_NAME).tar)
148 localdist: $(DISTFILES)
149 if [ -d out ]; then mkdir $(distdir)/$(localdir)/out; fi
150 ln $(DISTFILES) $(distdir)/$(localdir)
152 set -e; for i in $(SUBDIRS); do mkdir $(distdir)/$(localdir)/$$i; \
153 $(MAKE) localdir=$(localdir)/$$i -C $$i localdist; done
157 -mkdir $(module-distdir)
158 $(MAKE) localmoduledist
159 (cd ./$(depth); $(TAR) cfz $(MODULE_DIST_NAME).tar.gz $(MODULE_DIST_NAME))
160 rm -rf $(module-distdir)/
163 ln $(DISTFILES) $(module-distdir)/$(localdir)
165 set -e; for i in $(SUBDIRS); do mkdir $(module-distdir)/$(localdir)/$$i; done
166 set -e; for i in $(SUBDIRS); do $(MAKE) localdir=$(localdir)/$$i -C $$i localmoduledist; done
169 TAGS:$(all-tag-sources)
170 ifdef all-tag-sources
171 -etags -CT $(all-tag-sources) $(ERROR_LOG)
172 -ctags -CT $(all-tag-sources) $(ERROR_LOG)
175 set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i TAGS ; done
182 $(outdir)/version.hh: .version
183 ./$(lily_bindir)/make_version > $@
186 # should this be in Rules?
187 configure: configure.in
194 install: localinstall
196 set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i install; done
201 uninstall: localuninstall
203 set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i uninstall; done
210 $(LIBFLOWER): check-flower-deps
213 $(MAKE) -C $(depth)/flower/ default
215 check-lily-deps: check-flower-deps
216 $(MAKE) -C $(depth)/lib
219 $(MAKE) -C $(depth)/Documentation
222 $(MAKE) ./$(outdir)/$(@F) -C $(depth)/lib
225 # RedHat rpm package:
227 rpm: check-rpm-doc-deps
228 -cp $(depth)/lilypond-$(TOPLEVEL_VERSION).tar.gz $(rpm-sources)
229 -cp $< $(rpm-sources)
230 $(MAKE) -C $(make-dir) spec
231 rpm -ba $(makeout)/lilypond.spec
234 $(MAKE) -C $(depth)/Documentation/ xpms
238 $(INSTALL) -d $(bindir)
239 $(INSTALL) -m 755 $(EXECUTABLES) $(bindir)
242 for a in $(EXECUTABLES); do rm -f $(bindir)/`basename $$a`; done