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.28 2004/04/16 19:12:48 mlh-pl_rpm 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 # RPMFLAGS: Miscellaneous RPM flags
49 # ALL: default targets
51 # If INITIAL is different than TAG, PatchSets will be generated
52 # automatically with cvsps(1) to bring Source0 up to TAG. If TAG is
53 # HEAD, a %{date} variable will be defined in the generated spec
54 # file. If a Patch: tag in the spec file matches a generated PatchSet
55 # number, the name of the patch will be as specified. Otherwise, the
56 # name of the patch will be the PatchSet number. %patch tags in the
57 # spec file are generated automatically.
64 kernel-CVSROOT := pup-pl_kernel@cvs.planet-lab.org:/cvs
65 kernel-INITIAL := linux-2_4_22
67 kernel-MODULE := linux-2.4
68 kernel-SPEC := linux-2.4/scripts/kernel-planetlab.spec
75 plkmod-CVSROOT := pup-silk@cvs.planet-lab.org:/cvs
76 plkmod-INITIAL := HEAD
78 plkmod-MODULE := sys-v3
79 plkmod-SPEC := sys-v3/rpm/plkmod.spec
80 plkmod-RPMFLAGS = --define "kernelver $(shell rpmquery --queryformat '%{VERSION}-%{RELEASE}\n' --specfile SPECS/$(notdir $(kernel-SPEC)) | head -1)"
83 # Build kernel first so we can bootstrap off of its build
90 vdk-CVSROOT := pup-pl_kernel@cvs.planet-lab.org:/cvs
91 vdk-INITIAL := vdk_918
94 vdk-SPEC := vdk/vtune_driver.spec
95 vdk-RPMFLAGS = --define "kernelver $(shell rpmquery --queryformat '%{VERSION}-%{RELEASE}\n' --specfile SPECS/$(notdir $(kernel-SPEC)) | head -1)"
98 # Build kernel first so we can bootstrap off of its build
105 ltt-CVSROOT := pup-pl_kernel@cvs.planet-lab.org:/cvs
109 ltt-SPEC := ltt/ltt.spec
116 lkcdutils-CVSROOT := pup-pl_kernel@cvs.planet-lab.org:/cvs
117 lkcdutils-INITIAL := lkcdutils-4_1
118 lkcdutils-TAG := HEAD
119 lkcdutils-MODULE := lkcdutils
120 lkcdutils-SPEC := lkcdutils/spec/lkcdutils.spec
123 # Build kernel first so we can bootstrap off of its build
130 vserver-CVSROOT := pup-pl_kernel@cvs.planet-lab.org:/cvs
131 vserver-INITIAL := vserver-0_29
133 vserver-MODULE := vserver
134 vserver-SPEC := vserver/vserver.spec
141 vserver-init-CVSROOT := pup-pl_kernel@cvs.planet-lab.org:/cvs
142 vserver-init-INITIAL := HEAD
143 vserver-init-TAG := HEAD
144 vserver-init-MODULE := vserver-init
145 vserver-init-SPEC := vserver-init/vserver-init.spec
152 vserver-cache-CVSROOT := pup-pl_kernel@cvs.planet-lab.org:/cvs
153 vserver-cache-INITIAL := HEAD
154 vserver-cache-TAG := HEAD
155 vserver-cache-MODULE := vserver-cache
156 vserver-cache-SPEC := vserver-cache/vserver-cache.spec
163 vserver-quota-CVSROOT := pup-pl_kernel@cvs.planet-lab.org:/cvs
164 vserver-quota-INITIAL := HEAD
165 vserver-quota-TAG := HEAD
166 vserver-quota-MODULE := vserver-quota
167 vserver-quota-SPEC := vserver-quota/vserver-quota.spec
174 vr-tools-CVSROOT := pup-pl_kernel@cvs.planet-lab.org:/cvs
175 vr-tools-INITIAL := HEAD
177 vr-tools-MODULE := vr-tools
178 vr-tools-SPEC := vr-tools/vr-tools.spec
185 vsh-CVSROOT := pup-pl_kernel@cvs.planet-lab.org:/cvs
186 vsh-INITIAL := bash-2_05
189 vsh-SPEC := vsh/vsh-planetlab.spec
192 # Build kernel first so we can bootstrap off of its build
199 e2fsprogs-CVSROOT := pup-pl_kernel@cvs.planet-lab.org:/cvs
200 e2fsprogs-INITIAL := e2fsprogs-1_33
201 e2fsprogs-TAG := HEAD
202 e2fsprogs-MODULE := e2fsprogs
203 e2fsprogs-SPEC := e2fsprogs/e2fsprogs.spec
210 initscripts-CVSROOT := pup-node_pkgs@cvs.planet-lab.org:/cvs
211 initscripts-INITIAL := initscripts-7_14
212 initscripts-TAG := HEAD
213 initscripts-MODULE := initscripts
214 initscripts-SPEC := initscripts/initscripts.spec
221 cq-tools-CVSROOT := pup-node_pkgs@cvs.planet-lab.org:/cvs
222 cq-tools-INITIAL := HEAD
224 cq-tools-MODULE := cq-tools
225 cq-tools-SPEC := cq-tools/cq-tools.spec
232 yum-CVSROOT := pup-node_pkgs@cvs.planet-lab.org:/cvs
233 yum-INITIAL := YUM_2_0_3
236 yum-SPEC := yum/yum.spec
243 ksymoops-CVSROOT := pup-pl_kernel@cvs.planet-lab.org:/cvs
244 ksymoops-INITIAL := ksymoops-2_4_9
246 ksymoops-MODULE := ksymoops
247 ksymoops-SPEC := ksymoops/ksymoops.spec
254 PlanetLabAccounts-CVSROOT := pup-node_pkgs@cvs.planet-lab.org:/cvs
255 PlanetLabAccounts-INITIAL := HEAD
256 PlanetLabAccounts-TAG := HEAD
257 PlanetLabAccounts-MODULE := PlanetLabAccounts
258 PlanetLabAccounts-SPEC := PlanetLabAccounts/PlanetLabAccounts.spec
259 ALL += PlanetLabAccounts
265 MAKEDEV-CVSROOT := pup-node_pkgs@cvs.planet-lab.org:/cvs
266 MAKEDEV-INITIAL := MAKEDEV_3_2_2
268 MAKEDEV-MODULE := MAKEDEV
269 MAKEDEV-SPEC := MAKEDEV/MAKEDEV.spec
276 NodeUpdate-CVSROOT := pup-node_pkgs@cvs.planet-lab.org:/cvs
277 NodeUpdate-INITIAL := HEAD
278 NodeUpdate-TAG := HEAD
279 NodeUpdate-MODULE := NodeUpdate
280 NodeUpdate-SPEC := NodeUpdate/NodeUpdate.spec
287 PlanetLabConf-CVSROOT := pup-node_pkgs@cvs.planet-lab.org:/cvs
288 PlanetLabConf-INITIAL := HEAD
289 PlanetLabConf-TAG := HEAD
290 PlanetLabConf-MODULE := PlanetLabConf
291 PlanetLabConf-SPEC := PlanetLabConf/PlanetLabConf.spec
298 PlanetLabKeys-CVSROOT := pup-node_pkgs@cvs.planet-lab.org:/cvs
299 PlanetLabKeys-INITIAL := HEAD
300 PlanetLabKeys-TAG := HEAD
301 PlanetLabKeys-MODULE := PlanetLabKeys
302 PlanetLabKeys-SPEC := PlanetLabKeys/PlanetLabKeys.spec
309 BWLimit-CVSROOT := pup-node_pkgs@cvs.planet-lab.org:/cvs
310 BWLimit-INITIAL := HEAD
312 BWLimit-MODULE := BWLimit
313 BWLimit-SPEC := BWLimit/BWLimit.spec
320 perl-IO-Stty-CVSROOT := pup-node_pkgs@cvs.planet-lab.org:/cvs
321 perl-IO-Stty-INITIAL := PERL-IO-STTY_0_2
322 perl-IO-Stty-TAG := HEAD
323 perl-IO-Stty-MODULE := perl-IO-Stty
324 perl-IO-Stty-SPEC := perl-IO-Stty/perl-IO-Stty.spec
331 ipod-CVSROOT := pup-node_pkgs@cvs.planet-lab.org:/cvs
335 ipod-SPEC := ipod/ipod.spec
342 sudo-CVSROOT := pup-node_pkgs@cvs.planet-lab.org:/cvs
346 sudo-SPEC := sudo/planetlab_sudo.spec
353 blacklist-CVSROOT := pup-node_pkgs@cvs.planet-lab.org:/cvs
354 blacklist-INITIAL := HEAD
355 blacklist-TAG := HEAD
356 blacklist-MODULE := blacklist
357 blacklist-SPEC := blacklist/PlanetLab-blacklist.spec
364 httpd-CVSROOT := pup-node_pkgs@cvs.planet-lab.org:/cvs
365 httpd-INITIAL := HEAD
367 httpd-MODULE := httpd
368 httpd-SPEC := httpd/httpd.spec
375 BootServerRequest-CVSROOT := pup-node_pkgs@cvs.planet-lab.org:/cvs
376 BootServerRequest-INITIAL := HEAD
377 BootServerRequest-TAG := HEAD
378 BootServerRequest-MODULE := BootServerRequest
379 BootServerRequest-SPEC := BootServerRequest/PLBootServerRequest.spec
380 ALL += BootServerRequest
386 PlanetLabID-CVSROOT := pup-node_pkgs@cvs.planet-lab.org:/cvs
387 PlanetLabID-INITIAL := HEAD
388 PlanetLabID-TAG := HEAD
389 PlanetLabID-MODULE := PlanetLabID
390 PlanetLabID-SPEC := PlanetLabID/PlanetLabID.spec
393 ifeq ($(findstring $(package),$(ALL)),)
402 # Remove files generated by this package
403 $(foreach package,$(ALL),$(package)-clean): %-clean:
404 $(MAKE) package=$* clean
406 # Remove all generated files
408 rm -rf BUILD RPMS SOURCES SPECS SRPMS .rpmmacros .cvsps
410 .PHONY: all $(ALL) $(foreach package,$(ALL),$(package)-clean) clean
414 # Define variables for Makerules
415 CVSROOT := $($(package)-CVSROOT)
416 INITIAL := $($(package)-INITIAL)
417 TAG := $($(package)-TAG)
418 MODULE := $($(package)-MODULE)
419 SPEC := $($(package)-SPEC)
420 RPMFLAGS := $($(package)-RPMFLAGS)
421 CVS_RSH := $(if $($(package)-CVS_RSH),$($(package)-CVS_RSH),ssh)