2 # PlanetLab standard components list
4 # Mark Huang <mlhuang@cs.princeton.edu>
5 # Copyright (C) 2003-2006 The Trustees of Princeton University
13 # CVSROOT or package-CVSROOT: CVSROOT to use
15 # TAG or package-TAG: CVS tag to use (only with CVSROOT)
17 # SVNPATH or package-SVNPATH: SVNPATH to use
18 # Note: do not define both CVSROOT and SVNPATH
20 # package-MODULE: name(s) of cvs/svn module(s) needed for building
21 # package-SPEC: RPM spec file name
25 # package-RPMFLAGS: Miscellaneous RPM flags
26 # package-RPMBUILD: If not rpmbuild
28 # Add to ALL if you want the package built as part of the default set.
32 # Default values -- should be able to override these from command line
34 HOSTARCH := $(shell uname -i)
35 DISTRO := $(shell ./getdistro.sh)
36 RELEASE := $(shell ./getrelease.sh)
39 # load in a release specific tags file
40 # Override TAGSFILE from command line to select something else
46 kernel-$(HOSTARCH)-MODULE := Linux-2.6
47 kernel-$(HOSTARCH)-SPEC := scripts/kernel-2.6-planetlab.spec
48 ifeq ($(HOSTARCH),i386)
49 kernel-$(HOSTARCH)-RPMFLAGS:= --target i686
51 kernel-$(HOSTARCH)-RPMFLAGS:= --target $(HOSTARCH)
54 KERNELS += kernel-$(HOSTARCH)
57 kernel-clean: $(foreach package,$(KERNELS),$(package)-clean)
64 util-vserver-MODULE := util-vserver
65 util-vserver-SPEC := util-vserver.spec
66 util-vserver-RPMFLAGS:= --without dietlibc
67 util-vserver-DEPENDS := libnl
73 NodeUpdate-MODULE := NodeUpdate
74 NodeUpdate-SPEC := NodeUpdate.spec
80 PingOfDeath-MODULE := PingOfDeath
81 PingOfDeath-SPEC := ipod.spec
87 NodeManager-MODULE := NodeManager
88 NodeManager-SPEC := NodeManager.spec
94 pl_sshd-MODULE := pl_sshd
95 pl_sshd-SPEC := pl_sshd.spec
101 # Deprecate when vsys takes over [sapan].
102 # keep in build for proper.
104 libhttpd++-MODULE := libhttpd++
105 libhttpd++-SPEC := libhttpd++.spec
109 # Proper: Privileged Operations Service
111 proper-MODULE := proper
112 proper-SPEC := proper.spec
113 proper-RPMBUILD := sudo bash ./rpmbuild.sh
114 # proper uses scripts in util-python for building
115 proper-DEPENDS := libhttpd++ util-python
119 # CoDemux: Port 80 demux
121 CoDemux-MODULE := CoDemux
122 CoDemux-SPEC := codemux.spec
123 CoDemux-RPMBUILD := sudo bash ./rpmbuild.sh
129 ulogd-MODULE := ulogd
130 ulogd-SPEC := ulogd.spec
131 ulogd-DEPENDS := $(KERNELS) proper
137 PlanetFlow-MODULE := PlanetFlow
138 PlanetFlow-SPEC := netflow.spec
139 PlanetFlow-SPECVARS := distroname=$(DISTRO) distrorelease=$(RELEASE)
143 # PlanetLab Mom: Cleans up your mess
146 Mom-SPEC := pl_mom.spec
152 iptables-MODULE := iptables
153 iptables-SPEC := iptables.spec
154 iptables-DEPENDS := $(KERNELS)
160 iproute-MODULE := iproute2
161 iproute-SPEC := iproute.spec
167 # [marc] deprecate with proper
169 util-python-MODULE := util-python
170 util-python-SPEC := util-python.spec
177 vsys-SPEC := vsys.spec
178 ifeq ($(DISTRO),"Fedora")
187 PLCAPI-MODULE := PLCAPI
188 PLCAPI-SPEC := PLCAPI.spec
195 PLCWWW-SPEC := PLCWWW.spec
201 BootManager-MODULE := BootManager build
202 BootManager-SPEC := bootmanager.spec
203 # Package must be built as root
204 BootManager-RPMBUILD := sudo bash ./rpmbuild.sh
207 # we do not want BootCD to depend on vserver-reference, do we ?
208 ALL-REGULARS := $(ALL)
213 VserverReference-MODULE := VserverReference build
214 VserverReference-SPEC := vserver-reference.spec
215 # Package must be built as root
216 VserverReference-RPMBUILD := sudo bash ./rpmbuild.sh
217 # package requires all regular packages
218 VserverReference-DEPENDS := $(ALL-REGULARS)
219 VserverReference-DEPENDFILES := RPMS/yumgroups.xml
220 ALL += VserverReference
225 BootCD-MODULE := BootCD BootManager build
226 BootCD-SPEC := bootcd.spec
227 BootCD-RPMBUILD := sudo bash ./rpmbuild.sh
228 # package has *some* dependencies, at least these ones
229 BootCD-DEPENDS := $(KERNELS)
230 BootCD-DEPENDFILES := RPMS/yumgroups.xml
236 BootstrapFS-MODULE := BootstrapFS build
237 BootstrapFS-SPEC := bootstrapfs.spec
238 BootstrapFS-RPMBUILD := sudo bash ./rpmbuild.sh
239 # package requires all regular packages
240 BootstrapFS-DEPENDS := $(ALL-REGULARS)
241 BootstrapFS-DEPENDFILES := RPMS/yumgroups.xml
247 MyPLC-MODULE := MyPLC build
248 MyPLC-SPEC := myplc.spec
249 # Package must be built as root
250 MyPLC-RPMBUILD := sudo bash ./rpmbuild.sh
251 # MyPLC may require all packages
252 MyPLC-DEPENDS := $(filter-out MyPLC,$(ALL))
253 MyPLC-DEPENDFILES := RPMS/yumgroups.xml
259 MyPLC-native-MODULE := MyPLC build
260 MyPLC-native-SPEC := myplc-native.spec
261 # Package must be built as root
262 MyPLC-native-RPMBUILD := sudo bash ./rpmbuild.sh
263 # Thierry : I don't think we depend on these at build-time
264 #MyPLC-native-DEPENDS := $(MyPLC-DEPENDS)
265 # Thierry : dunno about this one, let's stay safe
266 MyPLC-native-DEPENDFILES := $(MyPLC-DEPENDFILES)
270 # MyPLC development environment
272 MyPLC-devel-MODULE := MyPLC build
273 MyPLC-devel-SPEC := myplc-devel.spec
274 MyPLC-devel-RPMBUILD := sudo bash ./rpmbuild.sh
278 # MyPLC native development environment
280 MyPLC-devel-native-MODULE := MyPLC
281 MyPLC-devel-native-SPECVARS := distroname=$(DISTRO) distrorelease=$(RELEASE)
282 MyPLC-devel-native-SPEC := myplc-devel-native.spec
283 #ALL += MyPLC-devel-native
288 # [daniel] wait for latest Fedora release
289 # (03:29:46 PM) daniel_hozac: interfacing with the kernel directly when dealing with netlink was fugly, so... i had to find something nicer.
290 # (03:29:53 PM) daniel_hozac: the one in Fedora is lacking certain APIs i need.
292 libnl-MODULE := libnl
293 libnl-SPEC := libnl.spec