### $Id$
#
####################
-# invokation:
+# invocation:
#
# (*) make stage1=true
# this extracts all specfiles and computes .mk from specfiles
# (*) create your main yumgroups.xml as groups/<distro>.xml
# (*) there are also various places where a set of modules are defined.
# check for .lst files in the various modules that build root images
-# and mimick what's done for planetlab
+# and mimic what's done for planetlab
# (*) then you need to run
# make stage1=true PLDISTRO=onelab
#
####################
# This build deals with 2 kinds of objects
#
-# (*) packages are named upon the RPM name; they are moslty lowercase
+# (*) packages are named upon the RPM name; they are mostly lowercase
# Add a package to ALL if you want it built as part of the default set.
# (*) modules are named after the subversion tree; as of this writing their names
-# are mostly mixedcase like MyPLC or Vserverreference
+# are mostly mixed case like MyPLC or Vserverreference
#
#################### packages
# basics: how to build a package - you need/may define the following variables
# a set of *packages* that this package depends on
# (*) package-DEPENDDEVELS
# a set of *packages* that the build will rpm-install the -devel variant before building <package>
+# (*) package-DEPENDDEVELRPMS
+# a set of *rpms* that the build will rpm-install before building <package>
# (*) package-DEPENDFILES
# 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
####################
# gather build information for the 'About' page
-SOURCES/myplc-release:
+myplc-release:
@echo 'Creating myplc-release'
- mkdir -p SOURCES
rm -f $@
(echo -n 'Build bdate: ' ; date '+%Y.%m.%d') >> $@
(echo -n 'Build btime: ' ; date '+%H:%M') >> $@
echo "%_tmppath $(HOME)/tmp" >> $@
echo "%_netsharedpath /proc:/dev/pts" >> $@
echo "%_install_langs C:de:en:es:fr" >> $@
+ echo "%_excludedocs yes" >> $@
### run spec2make on the spec file and include the result
# usage: spec2make package
$($(1)-SRPM): $($(1)_specpath) .rpmmacros $($(1)-TARBALLS)
mkdir -p BUILD SRPMS tmp
@(echo -n "XXXXXXXXXXXXXXX -- BEG SRPM $(1) " ; date)
- -$(foreach devel,$($(1)-DEPENDDEVELS), $(if $($(devel)-DEVEL-RPMS),rpm -Uvh $($(devel)-DEVEL-RPMS);))
+ -$(foreach devel,$($(1)-DEPENDDEVELS), $(if $($(devel)-DEVEL-RPMS),rpm --force -Uvh $($(devel)-DEVEL-RPMS);))
+ -$(foreach rpm,$($(1)-DEPENDDEVELRPMS), rpm --force -Uvh $($(rpm)-RPM-PATH);)
$(if $($(1)-RPMBUILD),\
$($(1)-RPMBUILD) $($(1)-RPMFLAGS) -bs $($(1)_specpath),
$(RPMBUILD) $($(1)-RPMFLAGS) -bs $($(1)_specpath))
$($(1)-SRPM): $($(1)_specpath) .rpmmacros $($(1)-CODEBASE)
mkdir -p BUILD SRPMS tmp
@(echo -n "XXXXXXXXXXXXXXX -- BEG SRPM $(1) (using make srpm) " ; date)
- -$(foreach devel,$($(1)-DEPENDDEVELS), $(if $($(devel)-DEVEL-RPMS),rpm -Uvh $($(devel)-DEVEL-RPMS);))
+ -$(foreach devel,$($(1)-DEPENDDEVELS), $(if $($(devel)-DEVEL-RPMS),rpm --force -Uvh $($(devel)-DEVEL-RPMS);))
+ -$(foreach rpm,$($(1)-DEPENDDEVELRPMS), rpm --force -Uvh $($(rpm)-RPM-PATH);)
make -C $($(1)-CODEBASE) srpm && \
rm -f SRPMS/$(notdir $($(1)-SRPM)) && \
ln $($(1)-CODEBASE)/$(notdir $($(1)-SRPM)) SRPMS/$(notdir $($(1)-SRPM))
@(echo -n "XXXXXXXXXXXXXXX -- BEG RPM $(1) " ; date)
$(if $(findstring RPMS/yumgroups.xml,$($(1)-DEPENDFILES)), createrepo --quiet -g yumgroups.xml RPMS/ , )
$(if $($(1)-RPMBUILD),\
- $($(1)-RPMBUILD) $($(1)-RPMFLAGS) --rebuild $($(1)-SRPM), \
- $(RPMBUILD) $($(1)-RPMFLAGS) --rebuild $($(1)-SRPM))
+ $($(1)-RPMBUILD) $($(1)-RPMFLAGS) --rebuild --define "_sourcedir $(HOME)/tmp" $($(1)-SRPM), \
+ $(RPMBUILD) $($(1)-RPMFLAGS) --rebuild --define "_sourcedir $(HOME)/tmp" $($(1)-SRPM))
@(echo -n "XXXXXXXXXXXXXXX -- END RPM $(1) " ; date)
endef