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