2 # PlanetLab RPM generation
4 # Copyright (c) 2003 The Trustees of Princeton University (Trustees).
7 # Redistribution and use in source and binary forms, with or without
8 # modification, are permitted provided that the following conditions are
11 # * Redistributions of source code must retain the above copyright
12 # notice, this list of conditions and the following disclaimer.
14 # * Redistributions in binary form must reproduce the above
15 # copyright notice, this list of conditions and the following
16 # disclaimer in the documentation and/or other materials provided
17 # with the distribution.
19 # * Neither the name of the copyright holder nor the names of its
20 # contributors may be used to endorse or promote products derived
21 # from this software without specific prior written permission.
23 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE TRUSTEES OR
27 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
28 # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
29 # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30 # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31 # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32 # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35 # $Id: Makefile,v 1.47 2004/10/04 22:29:18 mlhuang Exp $
42 # CVSROOT: CVSROOT to use
43 # INITIAL: CVS tag to use for Source0 tarball
44 # TAG: CVS tag to patch to
45 # MODULE: CVS module name to use
46 # SPEC: RPM spec file template
47 # RPMBUILD: If not rpmbuild
48 # RPMFLAGS: Miscellaneous RPM flags
50 # ALL: default targets
52 # If INITIAL is different than TAG, PatchSets will be generated
53 # automatically with cvsps(1) to bring Source0 up to TAG. If TAG is
54 # HEAD, a %{date} variable will be defined in the generated spec
55 # file. If a Patch: tag in the spec file matches a generated PatchSet
56 # number, the name of the patch will be as specified. Otherwise, the
57 # name of the patch will be the PatchSet number. %patch tags in the
58 # spec file are generated automatically.
65 kernel-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
66 kernel-INITIAL := HEAD
68 kernel-MODULE := linux-2.6
69 kernel-SPEC := linux-2.6/scripts/kernel-2.6-planetlab.spec
76 vnet-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
80 vnet-SPEC := vnet/vnet.spec
81 vnet-RPMFLAGS := --define "kernelver $(shell rpmquery --queryformat '%{VERSION}-%{RELEASE}\n' --specfile SPECS/$(notdir $(kernel-SPEC)) | head -1)"
84 # Build kernel first so we can bootstrap off of its build
91 vsh-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
94 vsh-MODULE := trampoline
95 vsh-SPEC := trampoline/vsh.spec
98 # Build kernel first so we can bootstrap off of its build
105 util-vserver-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
106 util-vserver-INITIAL := HEAD
107 util-vserver-TAG := HEAD
108 util-vserver-MODULE := util-vserver
109 util-vserver-SPEC := util-vserver/util-vserver.spec
112 # Build kernel first so we can bootstrap off of its build
119 vserver-reference-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
120 vserver-reference-INITIAL := HEAD
121 vserver-reference-TAG := HEAD
122 vserver-reference-MODULE := vserver-reference
123 vserver-reference-SPEC := vserver-reference/vserver-reference.spec
124 # Package must be built as root
125 vserver-reference-RPMBUILD := sudo rpmbuild
126 ALL += vserver-reference
128 # Build these first so that the reference copies are not stale
129 vserver-reference: yum pycurl PlanetLabKeys
135 lkcdutils-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
136 lkcdutils-INITIAL := HEAD
137 lkcdutils-TAG := HEAD
138 lkcdutils-MODULE := lkcdutils
139 lkcdutils-SPEC := lkcdutils/spec/lkcdutils.spec
142 # Build kernel first so we can bootstrap off of its build
149 yum-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
153 yum-SPEC := yum/yum.spec
160 ksymoops-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
161 ksymoops-INITIAL := ksymoops-2_4_9
163 ksymoops-MODULE := ksymoops
164 ksymoops-SPEC := ksymoops/ksymoops.spec
171 PlanetLabAccounts-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
172 PlanetLabAccounts-INITIAL := HEAD
173 PlanetLabAccounts-TAG := HEAD
174 PlanetLabAccounts-MODULE := PlanetLabAccounts
175 PlanetLabAccounts-SPEC := PlanetLabAccounts/PlanetLabAccounts.spec
176 ALL += PlanetLabAccounts
182 NodeUpdate-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
183 NodeUpdate-INITIAL := HEAD
184 NodeUpdate-TAG := HEAD
185 NodeUpdate-MODULE := NodeUpdate
186 NodeUpdate-SPEC := NodeUpdate/NodeUpdate.spec
193 PlanetLabConf-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
194 PlanetLabConf-INITIAL := HEAD
195 PlanetLabConf-TAG := HEAD
196 PlanetLabConf-MODULE := PlanetLabConf
197 PlanetLabConf-SPEC := PlanetLabConf/PlanetLabConf.spec
204 PlanetLabKeys-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
205 PlanetLabKeys-INITIAL := HEAD
206 PlanetLabKeys-TAG := HEAD
207 PlanetLabKeys-MODULE := PlanetLabKeys
208 PlanetLabKeys-SPEC := PlanetLabKeys/PlanetLabKeys.spec
215 BWLimit-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
216 BWLimit-INITIAL := HEAD
218 BWLimit-MODULE := BWLimit
219 BWLimit-SPEC := BWLimit/BWLimit.spec
226 ipod-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
230 ipod-SPEC := ipod/ipod.spec
237 sudo-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
241 sudo-SPEC := sudo/planetlab_sudo.spec
248 pycurl-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
249 pycurl-INITIAL := HEAD
251 pycurl-MODULE := pycurl
252 pycurl-SPEC := pycurl/pycurl.spec
259 BootServerRequest-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
260 BootServerRequest-INITIAL := HEAD
261 BootServerRequest-TAG := HEAD
262 BootServerRequest-MODULE := BootServerRequest
263 BootServerRequest-SPEC := BootServerRequest/PLBootServerRequest.spec
264 ALL += BootServerRequest
270 PlanetLabID-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
271 PlanetLabID-INITIAL := HEAD
272 PlanetLabID-TAG := HEAD
273 PlanetLabID-MODULE := PlanetLabID
274 PlanetLabID-SPEC := PlanetLabID/PlanetLabID.spec
281 sidewinder-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
282 sidewinder-INITIAL := HEAD
283 sidewinder-TAG := HEAD
284 sidewinder-MODULE := sidewinder
285 sidewinder-SPEC := sidewinder/sidewinder.spec
292 pl_sshd-CVSROOT := :pserver:anon@build.planet-lab.org:/cvs
293 pl_sshd-INITIAL := HEAD
295 pl_sshd-MODULE := pl_sshd
296 pl_sshd-SPEC := pl_sshd/pl_sshd.spec
299 ifeq ($(findstring $(package),$(ALL)),)
308 # Remove files generated by this package
309 $(foreach package,$(ALL),$(package)-clean): %-clean:
310 $(MAKE) package=$* clean
312 # Remove all generated files
314 rm -rf BUILD RPMS SOURCES SPECS SRPMS .rpmmacros .cvsps
316 .PHONY: all $(ALL) $(foreach package,$(ALL),$(package)-clean) clean
320 # Define variables for Makerules
321 CVSROOT := $($(package)-CVSROOT)
322 INITIAL := $($(package)-INITIAL)
323 TAG := $($(package)-TAG)
324 MODULE := $($(package)-MODULE)
325 SPEC := $($(package)-SPEC)
326 RPMFLAGS := $($(package)-RPMFLAGS)
327 RPMBUILD := $(if $($(package)-RPMBUILD),$($(package)-RPMBUILD),rpmbuild)
328 CVS_RSH := $(if $($(package)-CVS_RSH),$($(package)-CVS_RSH),ssh)