]> git.donarmstrong.com Git - lilypond.git/blob - stepmake/stepmake/generic-targets.make
a726c9f6d0668004182ff00f37f9e89668935fb5
[lilypond.git] / stepmake / stepmake / generic-targets.make
1 # title    generic make targets
2 # file     make/Targets.make
3
4 .PHONY : all clean config default diff dist doc exe help html lib TAGS\
5          po
6
7 all:     default
8         $(LOOP)
9
10 man:
11         $(LOOP)
12
13 # be careful about deletion.
14 clean: local-clean
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 $(outdir)\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   exe         update all executables\n\
66   help        this help\n\
67   install     install programs and data (prefix=$(prefix))\n\
68   lib         update all libraries\n\
69   release     roll tarball and generate patch\n\
70   rpm         build Red Hat package\n\
71   po          make new translation Portable Object database\n\
72   po-replace  do po-update and replace catalogs with msgmerged versions\n\
73   po-update   update translation Portable Object database\n\
74   TAGS        genarate tagfiles\n\
75 \n\
76 Make may be invoked from any subdirectory\n\
77 Note that all commands recurse into SUBDIRS;\n\
78 prepend \`local-' to do only cwd, eg: local-clean\n\
79 "\
80 #
81
82 local-help:
83
84 doc: local-doc
85         $(LOOP)
86
87 local-doc:
88
89 local-dist: $(DIST_FILES) $(OUT_DIST_FILES) $(NON_ESSENTIAL_DIST_FILES)
90         mkdir -p $(distdir)/$(localdir)
91         $(LN) $(DIST_FILES) $(distdir)/$(localdir)
92
93         case "$(NON_ESSENTIAL_DIST_FILES)x" in x) ;; *) \
94                 $(LN) $(NON_ESSENTIAL_DIST_FILES) $(distdir)/$(localdir);; \
95         esac
96
97         case "$(OUT_DIST_FILES)x" in x) ;; *) \
98                 mkdir -p $(distdir)/$(localdir)/out; \
99                 $(LN) $(OUT_DIST_FILES) $(distdir)/$(localdir)/out;; \
100         esac
101 #       $(foreach i, $(SUBDIRS), $(MAKE) distdir=../$(distdir) localdir=$(localdir)/$(i) -C $(i) local-dist &&) true
102 # absolute for installed stepmake
103         $(foreach i, $(SUBDIRS), $(MAKE) topdir=$(topdir) distdir=$(distdir) localdir=$(localdir)/$(notdir $(i)) -C $(i) local-dist &&) true
104
105
106
107 html: $(HTML_FILES)
108
109 TAGS:
110         -if [ "$(TAGS_FILES)" != "" ]; then \
111                 etags $(ETAGS_FLAGS) $(TAGS_FILES) || \
112                 ctags $(CTAGS_FLAGS) ".h.hh.tcc.icc" $(TAGS_FILES) $(ERROR_LOG); \
113         fi
114
115         $(LOOP)
116
117 # ugh . -> $(outdir)
118 $(outdir)/VERSION: $(depth)/VERSION
119         cp -p $< $@
120
121 $(outdir)/version.hh: $(outdir)/VERSION
122         $(PYTHON) $(step-bindir)/make-version.py $< > $@
123
124 $(outdir)/config.h: $(config_h)
125         cp -p $< $@
126
127 # should this be in Rules?
128 configure: configure.in aclocal.m4
129         autoconf 
130         chmod +x configure
131
132 local-clean:
133
134 local-distclean:
135
136 local-maintainerclean:
137
138 install-strip:
139         $(MAKE) INSTALL="$(INSTALL) -s" install
140
141 install: local-install
142         $(LOOP)
143
144 local-install:
145
146 uninstall: local-uninstall
147         $(LOOP)
148
149 local-uninstall:
150
151 installextradoc:
152         -$(INSTALL) -d $(prefix)/doc/$(package)
153         $(foreach i, $(EXTRA_DOC_FILES),\
154                 cp -r $(i) $(prefix)/doc/$(package) &&) true
155
156 WWW: local-WWW
157         $(LOOP)
158
159 local-WWW:
160
161 include $(stepdir)/package.make
162
163 include $(outdir)/dummy.dep $(DEP_FILES)
164
165 $(outdir)/dummy.dep:
166         -mkdir -p $(outdir)
167         touch $(outdir)/dummy.dep
168
169
170 check: local-check
171         $(LOOP)
172
173 local-check:
174
175 # ugh.  ugh ugh ugh
176 $(depth)/$(configuration).make: $(depth)/configure
177         @echo "**************************************"
178         @echo "configure changed! You should probably reconfigure manually."
179         @echo "**************************************"
180         (cd $(depth); ./config.status)
181         touch $@                # do something for multiple simultaneous configs.