# 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
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
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))))
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
####################
# 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 $@
$(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)
@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
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,,$@)
.PHONY: info packages modules branches module-tools
####################
-testsvnpath:
+tests_svnpath:
@$(if $(TESTS_SVNPATH), echo $(TESTS_SVNPATH) > $@, \
echo "http://svn.planet-lab.org/svn/tests/trunk" > $@)