previous hack in spec2make was too intrusive
[build.git] / Makefile
index d943441..6271105 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -295,6 +295,7 @@ $(1).module := $(firstword $($(1)-MODULES))
 $(1).specpath := SPECS/$(notdir $($(1)-SPEC))
 $(1).moduledir := MODULES/$$($(1).module)
 $(1).codespec := MODULES/$$($(1).module)/$($(1)-SPEC)
+$(1).spec2makeflags := $(if $($(1)-NEEDSPEC2MAKEHACK),$(if $(filter $(DISTRONAME),f8 centos5),--hack,),)
 endef
 
 $(foreach package, $(ALL), $(eval $(call stage1_package_vars,$(package))))
@@ -427,10 +428,12 @@ spec2make: spec2make.c
 
 ### run spec2make on the spec file and include the result
 # usage: spec2make package
+# with old rpms (f8&c5) and too recent specfiles (the kernel), we need a patch to spec2make
+# so when <package-NEEDSPECK2MAKEHACK is set, we run spec2make with the --hack flag
 define target_mk
 MAKE/$(1).mk: $($(1).specpath) spec2make .rpmmacros
        mkdir -p MAKE
-       ./spec2make $($(1)-RPMFLAGS) $($(1).specpath) $(1) > MAKE/$(1).mk || { rm MAKE/$(1).mk; exit 1; }
+       ./spec2make $($(1).spec2makeflags) $($(1)-RPMFLAGS) $($(1).specpath) $(1) > MAKE/$(1).mk || { rm MAKE/$(1).mk; exit 1; }
 endef
 
 $(foreach package,$(ALL),$(eval $(call target_mk,$(package))))
@@ -524,14 +527,20 @@ srpms: $(ALLSRPMS)
        @echo $(words $(ALLSRPMS)) source rpms OK
 .PHONY: srpms
 
+
+# install the DEVEL-RPMS rpms if defined
+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
-define handle_devel_rpms_pre 
+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_devel_rpms_post
+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
@@ -542,19 +551,21 @@ ifeq "$($(1)-BUILD-FROM-SRPM)" ""
 $($(1).srpm): $($(1).specpath) .rpmmacros $($(1).tarballs) 
        mkdir -p BUILD SRPMS tmp
        @(echo -n "XXXXXXXXXXXXXXX -- BEG SRPM $(1) (using SOURCES) " ; date)
-       $(call handle_devel_rpms_pre,$(1))
+       $(call handle_stock_devel_rpms_pre,$(1))
+       $(call handle_local_devel_rpms_pre,$(1))
        $($(1).rpmbuild) -bs $($(1).specpath)
-       $(call handle_devel_rpms_post,$(1))
+       $(call handle_local_devel_rpms_post,$(1))
        @(echo -n "XXXXXXXXXXXXXXX -- END SRPM $(1) " ; date)
 else
 $($(1).srpm): $($(1).specpath) .rpmmacros $($(1).source)
        mkdir -p BUILD SRPMS tmp
        @(echo -n "XXXXXXXXXXXXXXX -- BEG SRPM $(1) (using make srpm) " ; date)
-       $(call handle_devel_rpms_pre,$(1))
+       $(call handle_stock_devel_rpms_pre,$(1))
+       $(call handle_local_devel_rpms_pre,$(1))
        make -C $($(1).source) srpm SPECFILE=$(HOME)/$($(1).specpath) EXPECTED_SRPM=$(notdir $($(1).srpm)) && \
            rm -f SRPMS/$(notdir $($(1).srpm)) && \
            ln $($(1).source)/$(notdir $($(1).srpm)) SRPMS/$(notdir $($(1).srpm)) 
-       $(call handle_devel_rpms_post,$(1))
+       $(call handle_local_devel_rpms_post,$(1))
        @(echo -n "XXXXXXXXXXXXXXX -- END SRPM $(1) " ; date)
 endif
 endef
@@ -580,18 +591,20 @@ $($(1).rpms): $($(1).srpm)
        mkdir -p RPMS tmp
        @(echo -n "XXXXXXXXXXXXXXX -- BEG RPM $(1) " ; date)
        $(if $(findstring RPMS/yumgroups.xml,$($(1)-DEPEND-FILES)), $(createrepo) , )
-       $(call handle_devel_rpms_pre,$(1))
+       $(call handle_stock_devel_rpms_pre,$(1))
+       $(call handle_local_devel_rpms_pre,$(1))
        $($(1).rpmbuild) --rebuild $(RPM-USE-TMP-DIRS) $($(1).srpm)
-       $(call handle_devel_rpms_post,$(1))
+       $(call handle_local_devel_rpms_post,$(1))
        @(echo -n "XXXXXXXXXXXXXXX -- END RPM $(1) " ; date)
 # for manual use only - in case we need to investigate the results of an rpmbuild
 $(1)-compile: $($(1).srpm)
        mkdir -p COMPILE tmp
        @(echo -n "XXXXXXXXXXXXXXX -- BEG compile $(1) " ; date)
        $(if $(findstring RPMS/yumgroups.xml,$($(1)-DEPEND-FILES)), $(createrepo) , )
-       $(call handle_devel_rpms_pre,$(1))
+       $(call handle_stock_devel_rpms_pre,$(1))
+       $(call handle_local_devel_rpms_pre,$(1))
        $($(1).rpmbuild) --recompile $(RPM-USE-TMP-DIRS) $($(1).srpm)
-       $(call handle_devel_rpms_post,$(1))
+       $(call handle_local_devel_rpms_post,$(1))
        @(echo -n "XXXXXXXXXXXXXXX -- END compile $(1) " ; date)
 .PHONY: $(1)-compile
 endef