linux-yocto/scripts/package/Makefile
Coywolf Qi Hunt d178817803 [PATCH] kbuild: make help binrpm-pkg fix
This fixes kbuild make help binrpm-pkg missing `''.

Signed-off-by: Coywolf Qi Hunt <coywolf@lovecn.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-07-21 21:45:47 +00:00

3.3 KiB

Makefile for the different targets used to generate full packages of a kernel

It uses the generic clean infrastructure of kbuild

Ignore the following files/directories during tar operation

TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn --exclude CVS

RPM target

---------------------------------------------------------------------------

The rpm target generates two rpm files:

/usr/src/packages/SRPMS/kernel-2.6.7rc2-1.src.rpm

/usr/src/packages/RPMS/i386/kernel-2.6.7rc2-1..rpm

The src.rpm files includes all source for the kernel being built

The .rpm includes kernel configuration, modules etc.

Process to create the rpm files

a) clean the kernel

b) Generate .spec file

c) Build a tar ball, using symlink to make kernel version

first entry in the path

d) and pack the result to a tar.gz file

e) generate the rpm files, based on kernel.spec

- Use /. to avoid tar packing just the symlink

Do we have rpmbuild, otherwise fall back to the older rpm

RPM := $(shell if [ -x "/usr/bin/rpmbuild" ]; then echo rpmbuild;
else echo rpm; fi)

Remove hyphens since they have special meaning in RPM filenames

KERNELPATH := kernel-$(subst -,,$(KERNELRELEASE)) MKSPEC := $(srctree)/scripts/package/mkspec PREV := set -e; cd ..;

rpm-pkg

.PHONY: rpm-pkg rpm

$(objtree)/kernel.spec: $(MKSPEC) $(srctree)/Makefile $(CONFIG_SHELL) $(MKSPEC) > $@

rpm-pkg rpm: $(objtree)/kernel.spec $(MAKE) clean $(PREV) ln -sf $(srctree) $(KERNELPATH) $(PREV) tar -cz $(RCS_TAR_IGNORE) -f $(KERNELPATH).tar.gz $(KERNELPATH)/. $(PREV) rm $(KERNELPATH)

set -e; \
$(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version
set -e; \
mv -f $(objtree)/.tmp_version $(objtree)/.version

$(RPM) --target $(UTS_MACHINE) -ta ../$(KERNELPATH).tar.gz
rm ../$(KERNELPATH).tar.gz

clean-files := $(objtree)/kernel.spec

binrpm-pkg

.PHONY: binrpm-pkg $(objtree)/binkernel.spec: $(MKSPEC) $(srctree)/Makefile $(CONFIG_SHELL) $(MKSPEC) prebuilt > $@

binrpm-pkg: $(objtree)/binkernel.spec $(MAKE) KBUILD_SRC= set -e;
$(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version set -e;
mv -f $(objtree)/.tmp_version $(objtree)/.version

$(RPM) --define "_builddir $(srctree)" --target $(UTS_MACHINE) -bb $<

clean-files += $(objtree)/binkernel.spec

Deb target

---------------------------------------------------------------------------

.PHONY: deb-pkg deb-pkg: $(MAKE) KBUILD_SRC= $(CONFIG_SHELL) $(srctree)/scripts/package/builddeb

clean-dirs += $(objtree)/debian/

tarball targets

---------------------------------------------------------------------------

.PHONY: tar%pkg tar%pkg: $(MAKE) $(CONFIG_SHELL) $(srctree)/scripts/package/buildtar $@

clean-dirs += $(objtree)/tar-install/

Help text displayed when executing 'make help'

---------------------------------------------------------------------------

help: @echo ' rpm-pkg - Build the kernel as an RPM package' @echo ' binrpm-pkg - Build an rpm package containing the compiled kernel' @echo ' and modules' @echo ' deb-pkg - Build the kernel as an deb package' @echo ' tar-pkg - Build the kernel as an uncompressed tarball' @echo ' targz-pkg - Build the kernel as a gzip compressed tarball' @echo ' tarbz2-pkg - Build the kernel as a bzip2 compressed tarball'