cleaning up the root creation functions and build.common - untested
[build.git] / onelab.mk
index ac6b62c..280aa6f 100644 (file)
--- a/onelab.mk
+++ b/onelab.mk
@@ -4,7 +4,7 @@
 # Mark Huang <mlhuang@cs.princeton.edu>
 # Copyright (C) 2003-2006 The Trustees of Princeton University
 #
-# $Id: onelab.mk,v 1.6 2007/01/30 17:46:10 thierry Exp $
+# $Id$
 #
 
 #
 # Add to ALL if you want the package built as part of the default set.
 #
 
+####
+# we do not use TAG directly anymore, and let it to HEAD
+# this because we want the rpm's releases to reflect the date even when a tag is used
+# our build script defines COMMON_TAG that the various components are free to use or not
+# COMMON_TAG set from the build script
+
+TAGSFILE = onelab-tags.mk
+
+include $(TAGSFILE)
+
 #
 # Default values
 #
 
-CVSROOT := :pserver:anon@cvs.planet-lab.org:/cvs
+# it's useless to set this here because it's overriden on the command line by nightly-build.sh
 TAG := HEAD
 
 # Check if a tag has been checked out
@@ -85,7 +96,7 @@ vnet: kernel
 #
 
 madwifi-ng-MODULE := madwifi-ng
-madwifi-ng-SPEC := madwifi-ng/madwifi.spec
+madwifi-ng-SPEC := madwifi.spec
 ALL += madwifi-ng
 
 # Build kernel first so we can bootstrap off of its build
@@ -97,7 +108,6 @@ madwifi-ng: kernel
 
 wireless-tools-MODULE = wireless-tools
 wireless-tools-SPEC := wireless-tools.spec
-wireless-tools-SVNPATH := file:///svn/wireless-tools/29pre10
 ALL += wireless-tools
 
 #
@@ -295,7 +305,7 @@ PlanetLabAuth: util-python
 #
 
 PLCAPI-MODULE := new_plc_api
-PLCAPI-SPEC := new_plc_api/PLCAPI.spec
+PLCAPI-SPEC := PLCAPI.spec
 ALL += PLCAPI
 
 #
@@ -316,7 +326,7 @@ vserver-reference: $(filter-out vserver-reference,$(ALL))
 #
 
 bootmanager-MODULE := bootmanager build
-bootmanager-SPEC := bootmanager/bootmanager.spec
+bootmanager-SPEC := bootmanager.spec
 bootmanager-RPMBUILD := sudo rpmbuild
 ALL += bootmanager
 
@@ -331,19 +341,27 @@ bootmanager: RPMS/yumgroups.xml
 #
 
 bootcd-MODULE := bootcd build bootmanager
-bootcd-SPEC := bootcd/bootcd.spec
+bootcd-SPEC := bootcd.spec
 bootcd-RPMBUILD := sudo rpmbuild
 ALL += bootcd
 
 # bootcd requires current packages
 bootcd: $(filter-out bootcd,$(ALL))
 
+#
+# plcwww
+#
+
+plcwww-MODULE := new_plc_www
+plcwww-SPEC := plcwww.spec
+ALL += plcwww
+
 #
 # MyPLC
 #
 
-myplc-MODULE := build myplc new_plc_www plc/scripts
-myplc-SPEC := myplc/myplc.spec
+myplc-MODULE := build myplc plc/scripts
+myplc-SPEC := myplc.spec
 # Package must be built as root
 myplc-RPMBUILD := sudo rpmbuild
 ALL += myplc
@@ -354,6 +372,21 @@ myplc: $(filter-out myplc,$(ALL))
 # ...and the yum manifest
 myplc: RPMS/yumgroups.xml
 
+# we also ship various information on the build in /etc/myplc-release
+# we cannot store this under SOURCES/myplc 
+# otherwise the code extraction phase does not take place 
+# because it depends on $SOURCES/$(package) as per Rules.mk
+myplc: SOURCES/myplc-release
+
+SOURCES/myplc-release:
+       @echo 'Creating myplc-release'
+       rm -f $@
+       (echo -n 'Build date: ' ; date '+%Y.%m.%d') >> $@
+       (echo -n 'Build hostname: ' ; hostname) >> $@
+       (echo -n 'Build location: ' ; pwd) >> $@
+       echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx tags file contents" >> $@
+       cat $(TAGSFILE) >> $@
+
 #
 # MyPLC development environment
 #
@@ -373,7 +406,12 @@ SERVER             := root@onelab-plc.inria.fr
 RPMSAREA       := /var/www/html/install-rpms/
 BOOTAREA       := /var/www/html/boot/
 
-YUMGROUPS      := $(PLDISTRO).xml
+ifeq ($(PLDISTRO),planetlab)
+YUMGROUPS      := groups/v3_yumgroups.xml
+else
+YUMGROUPS      := groups/v4_onelab.xml
+endif
+
 #BASE          := onelab
 BASENEW                := build-$(notdir $(shell pwd))
 BASEBAK                := planetlab-bak