]> git.donarmstrong.com Git - lilypond.git/blob - stepmake/stepmake/generic-targets.make
patch::: 1.1.16.jcn1: fixjes
[lilypond.git] / stepmake / stepmake / generic-targets.make
1 # title    generic make targets
2 # file     make/Targets.make
3
4 .PHONY : all clean config default dist doc doc++  exe help html lib TAGS\
5          po
6 # VPATH=$(outdir)/              #ugh?
7 # target all:
8 #
9 all:     default
10         $(LOOP)
11
12
13 # be careful about deletion.
14 clean: localclean
15         -rm -f $(outdir)/*
16         $(LOOP)
17
18 ifneq ($(strip $(depth)),.)
19 dist:
20         make -C $(depth) dist
21 endif
22
23 distclean: clean 
24         $(LOOP)
25         $(MAKE) local-distclean
26
27 maintainerclean: 
28         $(LOOP)
29         $(MAKE) local-maintainerclean
30         $(MAKE) local-distclean
31
32
33 # configure:
34 #
35 config:
36         ./$(depth)/configure
37 #
38
39
40 # target help:
41 #
42 generic-help:
43         @echo -e "\
44 Makefile for $(PACKAGE_NAME) $(TOPLEVEL_VERSION)\n\
45 Usage: $(MAKE) ["VARIABLE=value"]... [TARGET]\n\
46 \n\
47 Targets:\n"
48
49 help: generic-help local-help
50         @echo -e "\
51   all         update everything\n\
52   clean       remove all genated stuff in $(oudir)\n\
53   config      rerun configure\n\
54   deb         build Debian package\n\
55   default     same as the empty target\n\
56   diff        generate patch: $(depth)/$(outdir)/$(distname).diff.gz\n\
57   .           Options:\n\
58   .             from=0.1.74\n\
59   .             help==\n\
60   .             release==\n\
61   .             to=0.1.74.jcn2\n\
62   dist        roll tarball: $(depth)/$(outdir)/$(distname).tar.gz\n\
63   distclean   cleaner than clean (duh)\n\
64   doc         update all documentation\n\
65   doc++       make doc++ documentation\n\
66   exe         update all executables\n\
67   help        this help\n\
68   install     install programs and data (prefix=$(prefix))\n\
69   lib         update all libraries\n\
70   release     roll tarball and generate patch\n\
71   rpm         build RedHat package\n\
72   po          make new po database\n\
73   po-update   update po database\n\
74   tar         same as dist\n\
75   TAGS        genarate tagfiles\n\
76   zip         build binary doze distribution\n\
77 \n\
78 Make may be invoked from any subdirectory\n\
79 Note that all commands recurse into SUBSDIRS\n\
80 "\
81 #
82
83 local-help:
84
85 doc:
86 #UGH
87         true #  $(MAKE) -C $(depth)/Documentation all
88
89
90 # Ugh.  C++ specific.
91 doc++:
92         (cd $(outdir); sh ../$(step-bindir)/tar-docxx.sh $(package)-$(TOPLEVEL_VERSION).tar.gz)
93
94
95
96 local-dist: $(DIST_FILES) $(OUT_DIST_FILES) $(NON_ESSENTIAL_DIST_FILES)
97 #       echo topdir=$(topdir)
98 #       echo distdir=$(distdir)
99 #       echo locladir=$(localdir)
100         mkdir -p $(distdir)/$(localdir)
101         $(LN) $(DIST_FILES) $(distdir)/$(localdir)
102
103 #UGH UGH . make ifdef doesn't mix with string substitution semantics (late expansion vs. early expansion)
104
105         case "$(NON_ESSENTIAL_DIST_FILES)x" in x) ;; *) \
106                 $(LN) $(NON_ESSENTIAL_DIST_FILES) $(distdir)/$(localdir);; \
107         esac
108
109         case "$(OUT_DIST_FILES)x" in x) ;; *) \
110                 mkdir $(distdir)/$(localdir)/out; \
111                 $(LN) $(OUT_DIST_FILES) $(distdir)/$(localdir)/out;; \
112         esac
113 #       $(foreach i, $(SUBDIRS), $(MAKE) distdir=../$(distdir) localdir=$(localdir)/$(i) -C $(i) local-dist &&) true
114 # absolute for installed stepmake
115         $(foreach i, $(SUBDIRS), $(MAKE) topdir=$(topdir) distdir=$(distdir) localdir=$(localdir)/$(notdir $(i)) -C $(i) local-dist &&) true
116
117
118
119 html: $(HTML_FILES)
120
121 TAGS:
122         -if [ "$(TAGS_FILES)" != "" ]; then \
123                 etags -CT $(TAGS_FILES) || \
124                 ctags -h ".h.hh.tcc.icc" $(TAGS_FILES) $(ERROR_LOG); \
125         fi
126
127         $(LOOP)
128
129 # ugh . -> $(outdir)
130 $(outdir)/VERSION: $(depth)/VERSION
131         cp $< $@
132
133 $(outdir)/version.hh: $(outdir)/VERSION
134         sh $(step-bindir)/make-version.sh $< > $@
135
136 # should this be in Rules?
137 configure: configure.in aclocal.m4
138         autoconf - < $<> $@
139         chmod +x configure
140
141 localclean:
142
143 local-distclean:
144
145 local-maintainerclean:
146
147 install-strip:
148         $(MAKE) INSTALL="$(INSTALL) -s" install
149
150 install: localinstall
151         $(LOOP)
152
153 localinstall:
154
155 uninstall: localuninstall
156         $(LOOP)
157
158 localuninstall:
159
160 installextradoc:
161         -$(INSTALL) -d $(prefix)/doc/$(package)
162         $(foreach i, $(EXTRA_DOC_FILES),\
163                 cp -r $(i) $(prefix)/doc/$(package) &&) true
164
165 WWW: local-WWW
166         $(LOOP)
167
168 local-WWW:
169
170 include $(stepdir)/package.make
171
172 include $(outdir)/dummy.dep $(DEP_FILES)
173
174 $(outdir)/dummy.dep:
175         -mkdir $(outdir)
176         touch $(outdir)/dummy.dep
177
178
179 check: local-check
180         $(LOOP)
181
182 local-check:
183
184 # ugh.  ugh ugh ugh
185 $(depth)/$(configuration).make: $(depth)/configure
186         @echo "**************************************"
187         @echo "configure changed! You should probably reconfigure manually."
188         @echo "**************************************"
189         (cd $(depth); ./config.status)
190         touch $@                # do something for multiple simultaneous configs.