spec hacks for vanilla and git-based kernel rpm builds

Roland McGrath roland at redhat.com
Fri Jun 8 20:37:30 UTC 2007


Oops, I accidentally checked in my Makefile too.  So I guess I'll just
assume you thought its changes were good.  ;-)

This one copies some extras-style boilerplate that is necessary if you have
a whole-tree checkout of /cvs/pkgs/rpms.  It does not give you individual
foobar/common/ checkouts like it will if you do "cvs co foobar", and the
old extras style was for everything to use your single common/ checkout at
the top.  This is now the standard boilerplate apparently, which every
formerly Core package needs to work with whole-tree checkouts.

The rest (cvs diff -r 1.49 -r 1.50 Makefile) is all additions at the end.
You can use "make vanilla-x86_64" or "make vanilla-prep" or whatnot,
and various git/blah targets.  The details were previously discussed here,
and are in comments in the makefile additions.


@@ -14,7 +14,22 @@ UPSTREAM_CHECKS = sign
 # local targets we need to carry around in addition to the default sources
 TARGETS		= configs download
 
-include ../common/Makefile.common
+define find-makefile-common
+for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
+endef
+
+MAKEFILE_COMMON := $(shell $(find-makefile-common))
+
+ifeq ($(MAKEFILE_COMMON),)
+# attept a checkout
+define checkout-makefile-common
+test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
+endef
+
+MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
+endif
+
+include $(MAKEFILE_COMMON)
 include Makefile.config
 
 debug:



Thanks,
Roland




More information about the Fedora-kernel-list mailing list