3 # This is a make+ file. Make+ is a set of scripts which enhance GNU
4 # make and let you build RPMs, and other package types with just one
5 # control file. To build this package you will need to download make+
6 # from this site: http://www.annexia.org/freeware/makeplus/
11 VERSION := $(VERSION_MAJOR).$(VERSION_MINOR)
13 SUMMARY := Advanced build system for GNU make
14 COPYRIGHT := Public Domain
15 AUTHOR := Richard W.M. Jones <rich@annexia.org>
18 Make+ is a set of scripts which enhance GNU make. The scripts replace
19 the functionality of autoconf, automake, rpm, dpkg and more, allowing
20 you to build, install, make RPMs, make Debian packages and more, all
21 from a single maintainable 'Makefile+' script.
23 Read more at http://www.annexia.org/freeware/makeplus/
25 The original author is Richard W.M. Jones <rich@annexia.org>
27 This software has been explicitly placed in the PUBLIC DOMAIN. You
28 do not need any sort of license or agreement to use or copy this
29 software. You may also copyright this software yourself, and/or
30 relicense it under any terms you want, at any time and at no cost.
31 This allows you (among other things) to include this software with
32 other packages so that the user does not need to download and
33 install make+ separately.
36 RPM_REQUIRES := make >= 3.76, bash
37 RPM_GROUP := Development/Building
39 CFLAGS += -Wall -Werror -g -O2
41 EXTRA_DIST := doc/*.html doc/*.1
52 docs: doc/index.html doc/make+.1 # doc/makeplus.pdf
54 doc/index.html: doc/make+-book.xml
58 doc/make+.1: doc/make+-man.xml
59 -rm -f doc/*.1 ; xmlto man -o doc $^
61 doc/makeplus.pdf: doc/make+-book.xml
67 # Avoid recursively distributing self.
70 install: dist_for_bundles
71 install -d $(DESTDIR)$(bindir)
72 install -d $(DESTDIR)$(sysconfdir)
73 install -d $(DESTDIR)$(pkgdatadir)
74 install -d $(DESTDIR)$(docdir)
75 install -d $(DESTDIR)$(man1dir)
77 install -m 0755 $(srcdir)/make+ $(srcdir)/make+-skeleton \
79 echo "MAKEPLUS_HOME=$(pkgdatadir); export MAKEPLUS_HOME" \
80 > $(DESTDIR)$(sysconfdir)/make+.conf
81 install -m 0755 $(srcdir)/configure $(DESTDIR)$(pkgdatadir)
82 install -m 0644 $(srcdir)/*.mk $(DESTDIR)$(pkgdatadir)
83 install -m 0755 $(srcdir)/*.sh $(DESTDIR)$(pkgdatadir)
84 install -m 0644 $(srcdir)/README $(DESTDIR)$(docdir) ||:
85 # # Built docs might be in $(srcdir) or build directory.
86 install -m 0644 doc/*.html $(DESTDIR)$(docdir) ||:
87 install -m 0644 doc/*.1 $(DESTDIR)$(man1dir) ||:
88 install -m 0644 $(srcdir)/doc/*.html $(DESTDIR)$(docdir) ||:
89 install -m 0644 $(srcdir)/doc/*.1 $(DESTDIR)$(man1dir) ||:
91 # # We do this so that the MP_BUNDLE option works (see dist.mk).
92 install -m 0644 mp-dist_for_bundles.tar.gz \
93 $(DESTDIR)$(pkgdatadir)/$(PACKAGE).tar.gz
94 install -m 0644 $(srcdir)/README.make+_for_bundles \
95 $(DESTDIR)$(pkgdatadir)
96 rm mp-dist_for_bundles.tar.gz
99 # make+ installs a copy of its own distribution so that the MP_BUNDLE
100 # option works (see dist.mk).
103 $(MAKE) -f $(srcdir)/$(_mp_makefile) \
104 MP_SRC_DIST=mp-dist_for_bundles.tar.gz dist
111 <% include page_header.msp %>
113 <h1>makeplus - $(SUMMARY)</h1>
116 Make+ is a set of scripts which enhance GNU make. The scripts replace
117 the functionality of autoconf, automake, rpm, dpkg and more, allowing
118 you to build, install, make RPMs, make Debian packages and more, all
119 from a single maintainable 'Makefile+' script.
127 <li> Latest source release is $(VERSION):
128 <a href="$(PACKAGE)-$(VERSION).tar.gz">$(PACKAGE)-$(VERSION).tar.gz</a>
129 <li> Red Hat 7.x Source RPM package:
130 <a href="$(PACKAGE)-$(VERSION)-1.src.rpm">$(PACKAGE)-$(VERSION)-1.src.rpm</a>
133 <h2>Binary packages</h2>
136 <li> Red Hat 7.x RPM package:
137 <a href="$(PACKAGE)-$(VERSION)-1.i386.rpm">$(PACKAGE)-$(VERSION)-1.i386.rpm</a>
139 <a href="$(PACKAGE)-$(VERSION).bin.tar.gz">$(PACKAGE)-$(VERSION).bin.tar.gz</a>
145 <b>Fri Mar 28 14:25:31 GMT 2003:</b>
146 Fixed case where 'uname -m' has spaces, which would cause
147 the build directory name to contain spaces. Fixed the RPM spec
148 file (autogenerated) so that when building make+, make+ builds
149 itself using itself (thanks to ksonney at redhat.com for
150 identifying this problem).
154 <b>Sat Mar 1 14:28:35 GMT 2003:</b>
155 Make+ now supports a separate <code>./configure</code>
156 scripts, to make it look very much more like autoconf.
157 Added the ability to check that programs exist on the system.
158 Libraries, etc., can now be required (the configure step will
159 fail if they are not present). Make+ can now bundle itself
160 with your distribution so people don't need to download
161 make+ separately. More extensive testing on FreeBSD and
162 Solaris. Manpages install on the right place on FreeBSD
163 (thanks alane at geeksrus.net).
167 <b>Mon Feb 10 09:00:12 GMT 2003:</b>
168 Added missing newline at the end of configure_start.sh, which
169 broke FreeBSD's shell. (Thanks alane at geeksrus.net).
173 <b>Sat Feb 8 17:00:47 GMT 2003:</b>
174 Ported to Solaris, OpenBSD and FreeBSD (thanks to
175 <a href="http://www.azazel.net/">Jeremy Sowden</a>
176 and <a href="http://www.mondaymorning.org/">Richard Baker</a>
177 for help and equipment). Configuration information logged
178 to <code>config.log</code> file. Separate <code>config.mk</code>
179 file for Makefile-specific configuration.
183 <b>Fri Dec 27 10:40:50 GMT 2002:</b>
184 Multiple patches from Alan E at geekrus dot net which fix compatibility
185 issues with FreeBSD (manual page location can now be chosen, <code>CC</code>
186 and <code>CFLAGS</code> variables can be read on the command line).
187 This is an intermediate release which contains incomplete DocBook
188 documentation (to be completed properly later).
192 <b>Fri Dec 20 12:28:09 GMT 2002:</b> A patch which corrects the
193 build directory name on FreeBSD (thanks to Alan E at geeksrus dot
198 <b>Mon Dec 16 22:03:32 GMT 2002:</b> Various improvements to building
199 tar files, binary distributions. This version should work better with
204 <b>Sun Dec 8 12:46:46 GMT 2002:</b> Extra colon in skeleton removed.
205 '/' in headers no longer breaks the $$(MP_CHECK_HEADERS) rule.
206 Fixed building of dynamic libraries in subdirectories. Various
207 extra fixes for <code>pthrlib</code>.
211 <b>Sun Dec 8 11:28:28 GMT 2002:</b> <code>make+</code> on its own now
212 correctly runs the <code>all</code> target.
216 <b>Sun Dec 8 10:50:11 GMT 2002:</b> Fixed
217 several bugs in <code>make+-skeleton</code>.
220 <% include page_footer.msp %>
224 scp $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)-1.*.rpm \
225 $(PACKAGE)-$(VERSION).bin.tar.gz \
226 rich@10.0.0.248:annexia.org/freeware/makeplus/
227 scp index.html rich@10.0.0.248:annexia.org/freeware/makeplus/index.msp
229 .PHONY: build configure docs test upload_website