CP = cp OLPCBUILDBASE = $(srctree)/olpc HEAD = $(shell git-log -n1 --pretty=format:%h) ifeq ($(BUILDNUMBER),) BUILDNUMBER := 1 endif ifeq ($(RPM),) RPM := rpmbuild endif # Directories BUILDDIR = $(OLPCBUILDBASE)/BUILD RPMSDIR = $(OLPCBUILDBASE)/RPMS/ RPMSNOARCHDIR = $(OLPCBUILDBASE)/RPMS/noarch SRPMSDIR = $(OLPCBUILDBASE)/SRPMS SPECSDIR = $(OLPCBUILDBASE)/SPECS SOURCESDIR = $(OLPCBUILDBASE)/SOURCES SPECFILE = $(SPECSDIR)/olpc-2.6.spec # Symlink KERNELDIR = linux-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL) # Kernel tarball for RPM TARBALL = $(SOURCESDIR)/olpc-2.6.tar.bz2 # Config file CONFIG_SRC = arch/x86/configs/olpc_defconfig RPMCONFIGFILE = $(SOURCESDIR)/kernel-olpc-custom.config # What to clean out clean-dirs := $(BUILDDIR) $(RPMSDIR) $(RPMSDIR) $(SRPMSDIR) CLEAN_FILES += $(RPMCONFIGFILE) $(TARBALL) $(SOURCESDIR)/$(KERNELDIR) olpc-tarball: $(TARBALL) # # Update config file # $(RPMCONFIGFILE) : $(CONFIG_SRC) cp $(CONFIG_SRC) $(RPMCONFIGFILE) # # Create a tarball out of the gittree # $(TARBALL): @make distclean; \ git-status | grep --quiet modified || git-status | grep --quiet Untracked; \ if [ $$? -eq 0 ]; then \ echo "*** TREE IS NOT CLEAN. PLEASE COMMMIT CHANGES FIRST ***"; \ git-status; \ exit -1;\ fi; \ mkdir -p $(SOURCESDIR); \ cd $(SOURCESDIR); \ ln -s $(srctree) $(KERNELDIR); \ tar -X $(OLPCBUILDBASE)/.tarignore -X $(srctree)/.gitignore \ --exclude=olpc/SOURCES/$(KERNELDIR) -hvcjf $(TARBALL) $(KERNELDIR)/ # # The Kernel RPM and its ingredients # olpc-kernel-rpm: $(TARBALL) $(SPECFILE) $(RPMCONFIGFILE) mkdir -p $(BUILDDIR) $(RPMSNOARCHDIR) $(SRPMSDIR); \ $(RPM) -ba $(SPECFILE) \ --target=i586 \ --define "sublevel $(SUBLEVEL)" \ --define "_builddir $(BUILDDIR)" \ --define "_rpmdir $(RPMSDIR)" \ --define "_sourcedir $(SOURCESDIR)" \ --define "_specdir $(SPECSDIR)" \ --define "_srcrpmdir $(SRPMSDIR)" \ --define "head $(HEAD)" \ --define "olpc $(BUILDNUMBER)" \ --define "dist 1.olpc"