X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=Makefile;h=385a61b4158fb10b0626e1f238de820a2639dfcc;hb=3b718eb88f7c2ededf70cff1d9f002e43649888e;hp=08688d25e98bfacf1ab5073782ed065f5203a80d;hpb=b268bd5b62072b12293e226961c0f80b646c4808;p=build.git diff --git a/Makefile b/Makefile index 08688d25..385a61b4 100644 --- a/Makefile +++ b/Makefile @@ -60,6 +60,9 @@ # 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 @@ -107,7 +110,7 @@ #################### # exported to spec files as plrelease -PLANETLAB_RELEASE = 5.1 +PLANETLAB_RELEASE = 5.2 # # Default values @@ -461,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 @@ -533,7 +536,7 @@ 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 tags for a given package +### 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)) @@ -655,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 @@ -681,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: