some support for debootstrap - just checking, ongoing work
[build.git] / Makefile
index b6a8051..d7fed0f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -56,6 +56,8 @@
 #     a set of *packages* that this package depends on
 # (*) package-DEPEND-DEVEL-RPMS
 #     a set of *rpms* that the build will rpm-install before building <package>
+#     this is intended to denote local rpms, i.e. ones that are results of our own build
+#     stock rpms should be mentioned in config.planetlab/devel.pkgs
 # (*) package-DEPEND-FILES
 #     a set of files that the package depends on - and that make needs to know about
 #     if this contains RPMS/yumgroups.xml, then the toplevel RPMS's index 
@@ -131,6 +133,20 @@ include $(PLDISTROCONTENTS)
 PLDISTROTAGS := $(PLDISTRO)-tags.mk
 include $(PLDISTROTAGS)
 
+# this used to be set in the -tags.mk files, but that turned out to require
+# error-prone duplicate changes 
+# so now the nightly build script sets this to what it is currently using
+# we set a default in case we run the build manually:
+# if the local directory was svn checked out, then use the corresponding URL
+svn-info-url-line := $(shell svn info 2> /dev/null | grep URL:)
+default-build-SVNPATH := $(lastword $(svn-info-url-line))
+# otherwise, use this hard-coded default
+ifeq "$(default-build-SVNPATH)" ""
+default-build-SVNPATH := http://svn.planet-lab.org/svn/build/trunk
+endif
+# use default if necessary
+build-SVNPATH ?= $(default-build-SVNPATH)
+
 ########## stage1 and stage1iter
 # extract specs and compute .mk files by running 
 # make stage1=true
@@ -294,8 +310,7 @@ spec2make: spec2make.c
 define target_mk
 MAKE/$(1).mk: $($(1).specpath) spec2make .rpmmacros
        mkdir -p MAKE
-       ./spec2make $($(1)-RPMFLAGS) $($(1).specpath) $(1) > MAKE/$(1).mk
-       @if [ -z MAKE/$(1).mk ] ; then rm MAKE/$(1).mk ; exit 1 ; fi
+       ./spec2make $($(1)-RPMFLAGS) $($(1).specpath) $(1) > MAKE/$(1).mk || { rm MAKE/$(1).mk; exit 1; }
 endef
 
 $(foreach package,$(ALL),$(eval $(call target_mk,$(package))))
@@ -305,6 +320,10 @@ $(foreach package,$(ALL),$(eval $(call target_mk,$(package))))
 pldistro.mk:
        echo "PLDISTRO:=$(PLDISTRO)" > $@
        echo "PLDISTROTAGS:=$(PLDISTROTAGS)" >> $@
+       echo "build-SVNPATH:=$(build-SVNPATH)" >> $@
+       echo "PERSONALITY:=$(PERSONALITY)" >> $@
+       echo "MAILTO:=$(MAILTO)" >> $@
+       echo "BASE:=$(BASE)" >> $@
 
 savepldistro: pldistro.mk
 .PHONY: savepldistro
@@ -579,8 +598,8 @@ develclean:
 ####################
 # gather build information for the 'About' page
 # when run from crontab, INIT_CWD not properly set (says /root ..)
-# so, the nightly build passes NIGHTLY_BASE here
-# also store the nightly_base in .base for any post-processing purposes
+# so, the nightly build passes BASE here
+# also store BASE in .base for any post-processing purposes
 myplc-release:
        @echo 'Creating myplc-release'
        rm -f $@
@@ -590,13 +609,13 @@ myplc-release:
        $(MAKE) --no-print-directory version-svns >> $@
        echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx rpm info" >> $@
        $(MAKE) --no-print-directory version-rpms >> $@
-       @echo $(NIGHTLY_BASE) > .base
+       @echo $(BASE) > .base
 
 version-build:
        @echo -n 'Build build-date: ' ; date '+%Y.%m.%d'
        @echo -n 'Build build-time: ' ; date '+%H:%M-%Z'
        @echo -n 'Build build-hostname: ' ; hostname
-       @echo    "Build build-base: $(NIGHTLY_BASE)"
+       @echo    "Build build-base: $(BASE)"
        @echo    "Build planetlab-distro: $(PLDISTRO)"
        @echo    "Build planetlab-tags: $(PLDISTROTAGS)"
        @echo -n 'Build planetlab-tagsid: ' ; fgrep '$$''Id' $(PLDISTROTAGS)
@@ -604,7 +623,7 @@ version-build:
        @echo    "Build target-distro: $(DISTRO)"
        @echo    "Build target-distroname: $(DISTRONAME)"
        @echo    "Build target-release: $(RELEASE)"     
-       @echo    "Build target-personality: $(NIGHTLY_PERSONALITY)"     
+       @echo    "Build target-personality: $(PERSONALITY)"     
 
 #################### 
 # for a given module
@@ -637,15 +656,6 @@ $(foreach package,$(sort $(ALL)), $(eval $(call rpm_version_target,$(package))))
 versions: myplc-release version-build version-svns version-rpms
 .PHONY: versions version-build version-rpms version-svns
 
-#################### include install Makefile
-# the default is to use the distro-dependent install file
-# however the main distro file can redefine PLDISTROINSTALL
-ifndef PLDISTROINSTALL
-PLDISTROINSTALL := $(PLDISTRO)-install.mk
-endif
-# only if present
--include $(PLDISTROINSTALL)
-
 #################### package info
 PKGKEYS := tarballs source codebase srpm rpms rpmnames rpm-release rpm-name rpm-version rpm-subversion
 %-pkginfo: package=$(subst -pkginfo,,$@)
@@ -679,6 +689,11 @@ info: packages modules branches
 
 .PHONY: info packages modules branches module-tools
 
+####################
+tests_svnpath:
+       @$(if $(TESTS_SVNPATH), echo $(TESTS_SVNPATH) > $@, \
+       echo "http://svn.planet-lab.org/svn/tests/trunk" > $@)
+
 ####################
 help:
        @echo "********** Run make in two stages:"