X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=Makefile;h=385a61b4158fb10b0626e1f238de820a2639dfcc;hb=6657029bfe87489e13cc5c3bc51229ee23aa8fc7;hp=3cab844fcf344bed3b04addf903aa41e4f82d806;hpb=91954d0041e2d3d289bedb865c768f991682407f;p=build.git diff --git a/Makefile b/Makefile index 3cab844f..385a61b4 100644 --- a/Makefile +++ b/Makefile @@ -55,16 +55,14 @@ # (*) package-DEVEL-RPMS # a set of stock rpms that this package needs at build-time # this can also be set in config./devel.pkgs or config.planetlab/devel.pkgs as appropriate -# (*) package-EXCLUDE-DEVEL-RPMS -# a set of stock *rpms* that the build will rpm-uninstall before building -# this is intended to denote stock rpms, and the build will attempt to yum-install them -# back after the package is rebuilt -# This feature is not used at the moment and kept only just in case # (*) package-DEPEND-DEVEL-RPMS # a set of local *rpms* that the build will rpm-install before building # the build will attempt to uninstall those once the package is built, this is not fatal though # this is intended to denote local rpms, i.e. ones that are results of our own build # stock rpms should be mentioned in DEVEL-RPMS or in devel.pkgs as described above +# (*) package-DEPEND-DEVEL-RPMS-UPDATES +# like package-DEPEND-DEVEL-RPMS but for crucial packages (like autoconf) that only need an update from our build +# rpms in this area will *not* be uninstalled after the target is made, because that would ruin the build vm for good # (*) 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 @@ -112,7 +110,7 @@ #################### # exported to spec files as plrelease -PLANETLAB_RELEASE = 5.1 +PLANETLAB_RELEASE = 5.2 # # Default values @@ -177,7 +175,6 @@ config.$(1): config.$(1).svnpath svn export $$($(1).config.SVNPATH) config.$(1) endef -FOO=@ # fetching with git define remote_pldistro_fetch_git $(1).config.GITPATH := $(shell grep -v "^#" config.$(1).gitpath) @@ -210,6 +207,7 @@ $(eval $(call remote_pldistro_fetch_$(3),$(1))) endef $(eval $(call remote_pldistro,wextoolbox,wextoolbox-tags,git)) +$(eval $(call remote_pldistro,wexlxc,wexlxc-tags,git)) ########## stage1 and stage1iter # extract specs and compute .mk files by running @@ -338,7 +336,7 @@ $(foreach package, $(ALL), $(eval $(call package_hasdate,$(package)))) ### the common header for generated specfiles # useful when trying new specfiles manually header.spec: - (echo -n "# Generated by planetlab build from $($(1)-SPEC) on " ; date) > $@ + (echo -n "# Generated by planetlab build on " ; date) > $@ echo "%define distro $(DISTRO)" >> $@ echo "%define distrorelease $(RELEASE)" >> $@ echo "%define distroname $(DISTRONAME)" >> $@ @@ -466,7 +464,7 @@ all: envfrompreviousrun define stage2_variables ### devel dependencies $(1).rpmbuild = $(RPMBUILD) $($(1)-RPMFLAGS) -$(1).all-devel-rpm-paths := $(foreach rpm,$($(1)-DEPEND-DEVEL-RPMS),$($(rpm).rpm-path)) +$(1).all-devel-rpm-paths := $(foreach rpm,$($(1)-DEPEND-DEVEL-RPMS) $($(1)-DEPEND-DEVEL-RPMS-UPDATES),$($(rpm).rpm-path)) $(1).depend-devel-packages := $(sort $(foreach rpm,$($(1)-DEPEND-DEVEL-RPMS),$($(rpm).package))) ALL-DEVEL-RPMS += $($(1)-DEPEND-DEVEL-RPMS) endef @@ -538,16 +536,14 @@ define handle_stock_devel_rpms_pre $(if $($(1)-DEVEL-RPMS), echo "Installing for $(1)-DEVEL-RPMS" ; $(YUM-INSTALL-DEVEL) $($(1)-DEVEL-RPMS)) endef -### these macro handles the DEPEND-DEVEL-RPMS and EXCLUDE-DEVEL-RPMS tags for a hiven package -# before building : rpm-install DEPEND-DEVEL-RPMS and rpm-uninstall EXCLUDE +### these macro handles the DEPEND-DEVEL-RPMS and DEPEND-DEVEL-RPMS-UPDATES tags for a given package +# before building : rpm-install DEPEND-DEVEL-RPMS define handle_local_devel_rpms_pre $(if $($(1).all-devel-rpm-paths), echo "Installing for $(1)-DEPEND-DEVEL-RPMS" ; $(RPM-INSTALL-DEVEL) $($(1).all-devel-rpm-paths)) - $(if $($(1)-EXCLUDE-DEVEL-RPMS), echo "Uninstalling for $(1)-EXCLUDE-DEVEL-RPMS" ; $(RPM-UNINSTALL-DEVEL) $($(1)-EXCLUDE-DEVEL-RPMS)) endef define handle_local_devel_rpms_post -$(if $($(1)-DEPEND-DEVEL-RPMS), echo "Unstalling for $(1)-DEPEND-DEVEL-RPMS" ; $(RPM-UNINSTALL-DEVEL) $($(1)-DEPEND-DEVEL-RPMS)) - $(if $($(1)-EXCLUDE-DEVEL-RPMS), "Reinstalling for $(1)-EXCLUDE-DEVEL-RPMS" ; $(YUM-INSTALL-DEVEL) $($(1)-EXCLUDE-DEVEL-RPMS) ) endef # usage: target_source_rpm package @@ -662,6 +658,22 @@ endef $(foreach package,$(ALL),$(eval $(call target_depends,$(package)))) +#################### +# very rough for now (one module per package), targets only sfa for now +# the general idea here is, changing the specfile (for version number and all) is enough, and this +# gets passed to "make debian" in the module +# PREFIX: at one point we had passed PREFIX=/usr to this 'make debian' +# however it turned out we could manage this some other way (see manifold) +# so I'm reverting to simplicity +define target_debian +$(1)-debian: $(1)-tarball + mkdir -p DEBIAN/$(1) + rsync -a MODULES/$(1)/ DEBIAN/$(1)/ + make -C DEBIAN/$(1) "RPMTARBALL=$(HOME)/$($(1).tarballs)" "RPMVERSION=$($(1).rpm-version)" "RPMRELEASE=$($(1).rpm-release)" "RPMNAME=$($(1).rpm-name)" debian +endef + +$(foreach package,$(ALL),$(eval $(call target_debian,$(package)))) + ### clean target # usage: target_clean package define target_clean @@ -688,7 +700,11 @@ $(1)-clean-srpm: rm -rf $($(1).srpm) .PHONY: $(1)-clean-srpm CLEANS += $(1)-clean-srpm -$(1)-codeclean: $(1)-clean-source $(1)-clean-tarball $(1)-clean-build $(1)-clean-rpms $(1)-clean-srpm +$(1)-clean-debian: + rm -rf DEBIAN/$(1) +.PHONY: $(1)-clean-srpm +CLEANS += $(1)-clean-srpm +$(1)-codeclean: $(1)-clean-source $(1)-clean-tarball $(1)-clean-build $(1)-clean-rpms $(1)-clean-srpm $(1)-clean-debian $(1)-clean: $(1)-clean-modules $(1)-codeclean .PHONY: $(1)-codeclean $(1)-clean $(1)-clean-spec: