From 1d22bfac457158773771542dd84e01f8e4ab93c5 Mon Sep 17 00:00:00 2001 From: Marcin Krol Date: Mon, 22 Apr 2013 11:51:57 +0000 Subject: [PATCH] - reworked from current PLD kernel.spec for TLD kernels --- kernel-module-build.pl | 88 ++++++ kernel-vanilla-autoconf.h | 2 - kernel-vanilla-module-build.pl | 38 --- kernel-vanilla.spec | 537 ++++++++++++++++++--------------- kernel.make | 10 + 5 files changed, 396 insertions(+), 279 deletions(-) create mode 100644 kernel-module-build.pl delete mode 100644 kernel-vanilla-autoconf.h delete mode 100644 kernel-vanilla-module-build.pl create mode 100644 kernel.make diff --git a/kernel-module-build.pl b/kernel-module-build.pl new file mode 100644 index 0000000..1195bea --- /dev/null +++ b/kernel-module-build.pl @@ -0,0 +1,88 @@ +#!/usr/bin/perl +# +use strict; +use warnings; +use File::Find qw(find); + +my $rpmdir = shift @ARGV or die; +my $fileoutdir = shift @ARGV or die; + +# files which match: */include/*/Kbuild +my @modulebuild_in_include; +# files which match: */Kbuild */Kconfig except include +my @modulebuild; +# parent dirs of Kconfig files which match */include* +my @dirs_in_include; +# parent dirs of Kconfig files except include +my @dirs; + +sub push_dirs +{ + my $list = shift; + my $dir = shift; + my $subdir = ""; + foreach my $sub ( split( '/', $dir )) { + $subdir .= "/" . $sub; + push @$list, "\%dir $rpmdir$subdir\n"; + } +} + +sub wanted +{ + return unless -f; + return unless /^Kconfig/ or /^Makefile/ or /^Kbuild/; + #return if /\.orig$/; + return if $File::Find::name =~ /Documentation/; + (my $file = $File::Find::name) =~ s#^\./##; + $file =~ m#^(.*)/#; + my $dir = $1 || ""; + if ( $dir =~ m{^(.*/)?include(/.*?)?$} ) { + push @modulebuild_in_include, "$rpmdir/$file\n"; + push_dirs( \@dirs_in_include, $dir ); + } else { + push @modulebuild, "$rpmdir/$file\n"; + push_dirs( \@dirs, $dir ); + } +} + +find(\&wanted, "."); + +sub uniq +{ + my %hash = map { $_, 1 } @_; + return sort keys %hash; +} + +sub remove +{ + my $from = shift; + my $what = shift; + my %hash = map { $_, 1 } @$from; + foreach ( @$what ) { + delete $hash{ $_ }; + } + return sort keys %hash; +} + +# to module-build add all Kconfig, Makefile and Kbuild files +# also add all their parent dirs if they aren't parents of some include directory +open F_OUT, "> $fileoutdir/files.mb_include_modulebuild_and_dirs" + or die "Can't create files.mb_include_modulebuild_and_dirs: $!\n"; +print F_OUT remove( \@dirs, \@dirs_in_include ); +print F_OUT uniq( @modulebuild_in_include, @modulebuild ); +close F_OUT and print "files.mb_include_modulebuild_and_dirs created\n"; + +# from source remove all files Kconfig, Makefile and Kbuild files +# also remove all their parent dirs +open F_OUT, "> $fileoutdir/files.source_exclude_modulebuild_and_dirs" + or die "Can't create files.source_exclude_modulebuild_and_dirs: $!\n"; +print F_OUT map {"\%exclude $_"} uniq( @modulebuild_in_include, @modulebuild, + @dirs_in_include, @dirs ); +close F_OUT and print "files.source_exclude_modulebuild_and_dirs created\n"; + +# from headers remove all Kconfig, Makefile and Kbuild files that are +# part of include directory +open F_OUT, "> $fileoutdir/files.headers_exclude_kbuild" + or die "Can't create files.headers_exclude_kbuild: $!\n"; +print F_OUT map {"\%exclude $_"} uniq( @modulebuild_in_include ); +close F_OUT and print "files.headers_exclude_kbuild created\n"; diff --git a/kernel-vanilla-autoconf.h b/kernel-vanilla-autoconf.h deleted file mode 100644 index 2f68be0..0000000 --- a/kernel-vanilla-autoconf.h +++ /dev/null @@ -1,2 +0,0 @@ -#error Runtime kernel config detection not available. -#error Please use the autoconf-dist.h instead. diff --git a/kernel-vanilla-module-build.pl b/kernel-vanilla-module-build.pl deleted file mode 100644 index 39975f3..0000000 --- a/kernel-vanilla-module-build.pl +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/perl -# -use strict; -use warnings; -use File::Find qw(find); - -my $rpmdir = shift @ARGV or die; -my $fileoutdir = shift @ARGV or die; -my @tosort; - -find(\&wanted, "."); - -sub wanted { - return unless -f; - return unless /^Kconfig/ or /^Makefile/; - #return if /\.orig$/; - return if $File::Find::name =~ /(Documentation|scripts)/; - (my $file = $File::Find::name) =~ s#^\./##; - $file =~ m#^(.*)/#; - my $dir = $1 || ""; - my $subdir = ""; - foreach my $sub ( split( '/', $dir )) { - $subdir .= "/" . $sub; - push @tosort, "\%dir $rpmdir$subdir\n"; - } - push @tosort, "$rpmdir/$file\n"; -} - -my $last = ""; -my @toprint = grep {if ($_ ne $last) { $last = $_; 1} else {0}} sort @tosort; - -open F_OUT, "> $fileoutdir/aux_files" or die "Can't create aux_files: $!\n"; -print F_OUT @toprint; -close F_OUT and print "aux_files created\n"; - -open F_OUT, "> $fileoutdir/aux_files_exc" or die "Can't create aux_files_exc: $!\n"; -print F_OUT map {"\%exclude $_"} @toprint; -close F_OUT and print "aux_files_exc created\n"; diff --git a/kernel-vanilla.spec b/kernel-vanilla.spec index a1fde4d..6718a62 100644 --- a/kernel-vanilla.spec +++ b/kernel-vanilla.spec @@ -1,70 +1,76 @@ # Conditional build: -%bcond_without source # don't build kernel-vanilla-source package +%bcond_without source # don't build kernel-source package +%bcond_without doc # don't build kernel-doc package %bcond_with verbose # verbose build (V=1) -%{?debug:%define with_verbose 1} - -%define _basever 3.8 -%define _postver .8 -%define _rel 1 - -%define _enable_debug_packages 0 +%define rel 1 +%define basever 3.8 +%define postver .8 %define alt_kernel 3.8-vanilla # kernel release (used in filesystem and eventually in uname -r) # modules will be looked from /lib/modules/%{kernel_release} -# _localversion is just that without version for "> localversion" -%define _localversion %{_rel} -%define kernel_release %{version}-%{alt_kernel}-%{_localversion} +# localversion is just that without version for "> localversion" +%define localversion %{rel} +%define kernel_release %{version}%{?alt_kernel:.%{alt_kernel}}-%{localversion} Summary: The Linux kernel (the core of the Linux operating system) Summary(de.UTF-8): Der Linux-Kernel (Kern des Linux-Betriebssystems) Summary(et.UTF-8): Linuxi kernel (ehk operatsioonisüsteemi tuum) Summary(fr.UTF-8): Le Kernel-Linux (La partie centrale du systeme) Summary(pl.UTF-8): Jądro Linuksa -Name: kernel-%{alt_kernel} -Version: %{_basever}%{_postver} -Release: %{_rel} +Name: kernel%{_alt_kernel} +Version: %{basever}%{postver} +Release: %{rel} Epoch: 3 License: GPL v2 Group: Base/Kernel -Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{_basever}.tar.xz +Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz # Source0-md5: 1c738edfc54e7c65faeb90c436104e2f %if "%{_postver}" != "%{nil}" Source1: http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.bz2 # Source1-md5: 95224572ecb1f4c7089683c1f06ef2b4 %endif -Source2: kernel-vanilla-autoconf.h -Source3: kernel-vanilla-config.h -Source4: kernel-vanilla-module-build.pl -Source5: kernel.sysconfig - -Source10: kernel-vanilla-x86.config -Source11: kernel-vanilla-x86_64.config - -Patch0: kernel-vanilla-small_fixes.patch +Source2: kernel.sysconfig +Source3: kernel-module-build.pl +Source4: kernel.make URL: http://www.kernel.org/ BuildRequires: binutils >= 3:2.18 BuildRequires: /sbin/depmod BuildRequires: gcc >= 5:3.2 -# for hostname command -BuildRequires: net-tools +BuildRequires: xz >= 1:4.999.7 +AutoReqProv: no +BuildRequires: hostname +BuildRequires: kmod BuildRequires: perl-base -BuildRequires: rpm-build >= 4.4.9-56 -BuildRequires: rpmbuild(macros) >= 1.217 -Autoreqprov: no +BuildRequires: rpm-build >= 4.5-24 +BuildRequires: rpmbuild(macros) >= 1.652 Requires(post): coreutils Requires(post): geninitrd >= 12639-1 -Requires(post): virtual(module-tools) +Requires(post): kmod >= 12-2 Requires: /sbin/depmod Requires: coreutils Requires: geninitrd >= 12639-1 -Requires: virtual(module-tools) -Obsoletes: kernel%{_alt_kernel}-firmware +Requires: kmod >= 12-2 +%ifarch i686 +Requires: cpuinfo(pae) +%endif +Suggests: crda +Suggests: dracut +Suggests: keyutils +Suggests: linux-firmware +Provides: %{name}(netfilter) = 20070806 +Provides: %{name}(vermagic) = %{kernel_release} +Obsoletes: kernel%{_alt_kernel}-char-lirc-ene0100 +Obsoletes: kernel%{_alt_kernel}-char-lirc-it87 +Obsoletes: kernel%{_alt_kernel}-char-lirc-ite8709 +Obsoletes: kernel%{_alt_kernel}-char-lirc-mceusb +Obsoletes: kernel%{_alt_kernel}-char-lirc-streamzap Obsoletes: kernel%{_alt_kernel}-isdn-mISDN +Obsoletes: kernel-firmware Obsoletes: kernel-misc-acer_acpi Obsoletes: kernel-misc-fuse Obsoletes: kernel-misc-uvc @@ -73,10 +79,13 @@ Obsoletes: kernel-net-ar81 Obsoletes: kernel-net-hostap Obsoletes: kernel-net-ieee80211 Obsoletes: kernel-net-ipp2p +Obsoletes: kernel-net-rt61 Obsoletes: kernel-smp Conflicts: e2fsprogs < 1.29 Conflicts: isdn4k-utils < 3.1pre1 Conflicts: jfsutils < 1.1.3 +Conflicts: linux-firmware < 20120720 +Conflicts: lvm2 < 2.02.40 Conflicts: module-init-tools < 3.16 Conflicts: nfs-utils < 1.0.5 Conflicts: oprofile < 0.9 @@ -84,7 +93,8 @@ Conflicts: ppp < 1:2.4.0 Conflicts: procps < 3.2.0 Conflicts: quota-tools < 3.09 Conflicts: reiserfsprogs < 3.6.3 -Conflicts: udev < 1:071 +Conflicts: rpm < 4.4.2-0.2 +Conflicts: udev < 1:081 Conflicts: util-linux < 2.10o Conflicts: xfsprogs < 2.6.0 ExclusiveArch: i686 x86_64 @@ -97,27 +107,27 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define target_arch_dir %{_target_base_arch} %endif -%ifarch i686 -%define kernel_config x86 -%else -%define kernel_config %{_target_base_arch} -%endif - %define defconfig arch/%{target_arch_dir}/defconfig # No ELF objects there to strip (skips processing 27k files) -%define _noautostrip .*%{_kernelsrcdir}/.* +%define _noautostrip \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\) %define _noautochrpath .*%{_kernelsrcdir}/.* +%define _enable_debug_packages 0 %define initrd_dir /boot -%define _kernelsrcdir /usr/src/linux-%{version}-%{alt_kernel} +%define topdir %{_builddir}/%{name}-%{version} +%define srcdir %{topdir}/linux-%{basever} +%define objdir %{topdir}/%{targetobj} +%define targetobj %{_target_base_arch}-gcc-%(%{kgcc} -dumpversion) + +%define _kernelsrcdir /usr/src/linux%{_alt_kernel}-%{version} -%if "%{_target_base_arch}" != "%{_arch}" +%if "%{_target_base_arch}" != "%{_host_base_arch}" %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-tld-linux- %define DepMod /bin/true - %if "%{_arch}" == "x86_64" && "%{_target_base_arch}" == "i386" + %if "%{_host_base_arch}" == "x86_64" && "%{_target_base_arch}" == "i386" %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}" %define DepMod /sbin/depmod %endif @@ -126,6 +136,7 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}" %define DepMod /sbin/depmod %endif +%define MakeOpts %{CrossOpts} HOSTCC="%{__cc}" %description This package contains the Linux kernel that is used to boot and run @@ -173,7 +184,7 @@ Group: Base/Kernel Requires(postun): %{name} = %{epoch}:%{version}-%{release} Requires: %{name} = %{epoch}:%{version}-%{release} Obsoletes: kernel-smp-drm -Autoreqprov: no +AutoReqProv: no %description drm DRM kernel modules. @@ -194,7 +205,7 @@ Requires: %{name} = %{epoch}:%{version}-%{release} Obsoletes: kernel-smp-pcmcia Conflicts: pcmcia-cs < 3.1.21 Conflicts: pcmciautils < 004 -Autoreqprov: no +AutoReqProv: no %description pcmcia PCMCIA modules. @@ -213,7 +224,7 @@ Group: Base/Kernel Requires(postun): %{name} = %{epoch}:%{version}-%{release} Requires: %{name} = %{epoch}:%{version}-%{release} Obsoletes: kernel-smp-sound-alsa -Autoreqprov: no +AutoReqProv: no %description sound-alsa ALSA (Advanced Linux Sound Architecture) sound drivers. @@ -232,7 +243,7 @@ Group: Base/Kernel Requires(postun): %{name} = %{epoch}:%{version}-%{release} Requires: %{name} = %{epoch}:%{version}-%{release} Obsoletes: kernel-smp-sound-oss -Autoreqprov: no +AutoReqProv: no %description sound-oss OSS (Open Sound System) drivers. @@ -248,7 +259,8 @@ Summary: Header files for the Linux kernel Summary(de.UTF-8): Header Dateien für den Linux-Kernel Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa Group: Development/Building -Autoreqprov: no +Provides: %{name}-headers(netfilter) = 20070806 +AutoReqProv: no %description headers These are the C header files for the Linux kernel, which define @@ -270,8 +282,8 @@ Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebra Summary(pl.UTF-8): Pliki służące do budowania modułów jądra Group: Development/Building Requires: %{name}-headers = %{epoch}:%{version}-%{release} -Conflicts: rpmbuild(macros) < 1.321 -Autoreqprov: no +Conflicts: rpmbuild(macros) < 1.652 +AutoReqProv: no %description module-build Development files from kernel source tree needed to build Linux kernel @@ -291,7 +303,7 @@ Summary(de.UTF-8): Der Kernel Quelltext Summary(pl.UTF-8): Kod źródłowy jądra Linuksa Group: Development/Building Requires: %{name}-module-build = %{epoch}:%{version}-%{release} -Autoreqprov: no +AutoReqProv: no %description source This is the source code for the Linux kernel. You can build a custom @@ -321,7 +333,7 @@ Summary: Kernel documentation Summary(de.UTF-8): Kernel Dokumentation Summary(pl.UTF-8): Dokumentacja do jądra Linuksa Group: Documentation -Autoreqprov: no +AutoReqProv: no %description doc This is the documentation for the Linux kernel, as found in @@ -336,163 +348,167 @@ Pakiet zawiera dokumentację do jądra Linuksa pochodzącą z katalogu /usr/src/linux/Documentation. %prep -%setup -q -n linux-%{_basever} +%setup -qc +ln -s %{SOURCE3} kernel-module-build.pl +ln -s %{SOURCE4} Makefile +cd linux-%{basever} %if "%{_postver}" != "%{nil}" %{__bzip2} -dc %{SOURCE1} | patch -p1 -s %endif -%patch0 -p1 - # Fix EXTRAVERSION in main Makefile -sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = -%{alt_kernel}#g' Makefile +sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:.%{alt_kernel}}#g' Makefile # cleanup backups after patching find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f %build -BuildConfig() { - %{?debug:set -x} - # is this a special kernel we want to build? - Config="%{kernel_config}" - KernelVer=%{kernel_release} - echo "Building config file using $Config.conf..." - cat $RPM_SOURCE_DIR/kernel-vanilla-$Config.config > %{defconfig} - -%{?debug:sed -i "s:# CONFIG_DEBUG_SLAB is not set:CONFIG_DEBUG_SLAB=y:" %{defconfig}} -%{?debug:sed -i "s:# CONFIG_DEBUG_PREEMPT is not set:CONFIG_DEBUG_PREEMPT=y:" %{defconfig}} -%{?debug:sed -i "s:# CONFIG_RT_DEADLOCK_DETECT is not set:CONFIG_RT_DEADLOCK_DETECT=y:" %{defconfig}} - -} - -BuildKernel() { - %{?debug:set -x} - echo "Building kernel $1 ..." - %{__make} %CrossOpts mrproper \ - RCS_FIND_IGNORE='-name build-done -prune -o' - ln -sf %{defconfig} .config - - %{__make} %CrossOpts clean \ - RCS_FIND_IGNORE='-name build-done -prune -o' - - %{__make} %CrossOpts scripts/mkcompile_h \ - %{?with_verbose:V=1} - - %{__make} %CrossOpts \ - %{?with_verbose:V=1} -} - -PreInstallKernel() { - Config="%{kernel_config}" - KernelVer=%{kernel_release} - - mkdir -p $KERNEL_INSTALL_DIR/boot - install System.map $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer - install arch/x86/boot/bzImage $KERNEL_INSTALL_DIR/boot/vmlinuz-$KernelVer - install vmlinux $KERNEL_INSTALL_DIR/boot/vmlinux-$KernelVer - - %{__make} %CrossOpts modules_install firmware_install \ - %{?with_verbose:V=1} \ - DEPMOD=%DepMod \ - INSTALL_MOD_PATH=$KERNEL_INSTALL_DIR \ - INSTALL_FW_PATH=$KERNEL_INSTALL_DIR/lib/firmware/$KernelVer \ - KERNELRELEASE=$KernelVer - - # You'd probabelly want to make it somewhat different - install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir} - install Module.symvers $KERNEL_INSTALL_DIR%{_kernelsrcdir}/Module.symvers-dist - - echo "CHECKING DEPENDENCIES FOR KERNEL MODULES" - if [ %DepMod = /sbin/depmod ]; then - /sbin/depmod --basedir $KERNEL_INSTALL_DIR -ae -F $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer -r $KernelVer || : - fi - touch $KERNEL_INSTALL_DIR/lib/modules/$KernelVer/modules.dep - echo "KERNEL RELEASE $KernelVer DONE" -} - -KERNEL_BUILD_DIR=`pwd` -echo "-%{_localversion}" > localversion +install -d %{objdir} +cat > %{targetobj}.mk <<'EOF' +# generated by %{name}.spec +KERNELSRC := %{srcdir} +KERNELOUTPUT := %{objdir} + +SRCARCH := %{target_arch_dir} +ARCH := %{_target_base_arch} +Q := %{!?with_verbose:@} +MAKE_OPTS := %{MakeOpts} +DEFCONFIG := %{defconfig} +EOF + +cd %{objdir} +install -d arch/%{target_arch_dir} +%ifarch i686 +%define kernel_config kernel-%{alt_kernel}-x86.config +%else +%define kernel_config kernel-%{alt_kernel}-%{_target_base_arch}.config +%endif +echo "Building config file using %{kernel_config}..." +cat $RPM_SOURCE_DIR/%{kernel_config} > %{defconfig} -KERNEL_INSTALL_DIR="$KERNEL_BUILD_DIR/build-done/kernel" -rm -rf $KERNEL_INSTALL_DIR -BuildConfig ln -sf %{defconfig} .config -BuildKernel -install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated -install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/linux -install include/generated/autoconf.h \ - $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated/autoconf-dist.h -install include/generated/utsrelease.h \ - $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated/ -install .config \ - $KERNEL_INSTALL_DIR%{_kernelsrcdir}/config-dist -PreInstallKernel - -cp scripts/mkcompile_h{,.save} +cd - -%install -rm -rf $RPM_BUILD_ROOT -umask 022 +%{__make} \ + TARGETOBJ=%{targetobj} \ + %{?with_verbose:V=1} \ + oldconfig -export DEPMOD=%DepMod +# build kernel +%{__make} \ + TARGETOBJ=%{targetobj} \ + %{?with_verbose:V=1} \ + all -install -d $RPM_BUILD_ROOT%{_kernelsrcdir} -install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release} +%install +rm -rf $RPM_BUILD_ROOT +%{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install firmware_install \ + -C %{objdir} \ + %{?with_verbose:V=1} \ + DEPMOD=%{DepMod} \ + INSTALL_MOD_PATH=$RPM_BUILD_ROOT \ + INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \ + KERNELRELEASE=%{kernel_release} -# test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition -if cp -al COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then - l=l - rm -f $RPM_BUILD_ROOT/COPYING -fi +install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc -KERNEL_BUILD_DIR=`pwd` +# create directories which may be missing, to simplyfy %files +install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm} -cp -a$l $KERNEL_BUILD_DIR/build-done/kernel/* $RPM_BUILD_ROOT +# rpm obeys filelinkto checks for ghosted symlinks, convert to files +rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source} +touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source} -if [ -e $RPM_BUILD_ROOT/lib/modules/%{kernel_release} ] ; then - rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build - ln -sf %{_kernelsrcdir} $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build - install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{cluster,misc} -fi +# no point embed content for %ghost files. empty them +for a in \ + dep{,.bin} \ + alias{,.bin} \ + devname \ + softdep \ + symbols{,.bin} \ +; do + test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a + > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a +done + +# /boot +install -d $RPM_BUILD_ROOT/boot +cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release} +cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release} +cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release} +install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release} -find . -maxdepth 1 ! -name "build-done" ! -name "." -exec cp -a$l "{}" "$RPM_BUILD_ROOT%{_kernelsrcdir}/" ";" +# ghosted initrd +touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.img +touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img -cd $RPM_BUILD_ROOT%{_kernelsrcdir} +%if "%{_target_base_arch}" != "%{_host_base_arch}" +touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep +%endif -%{__make} %CrossOpts mrproper archclean \ - RCS_FIND_IGNORE='-name build-done -prune -o' +# /etc/modrobe.d +install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release} -cp -Rdp$l $KERNEL_BUILD_DIR/include/linux/* \ - $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux +install -d $RPM_BUILD_ROOT/etc/sysconfig +install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/kernel -%{__make} %CrossOpts mrproper -install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated -install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux -install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/generated/autoconf-dist.h \ - $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated -install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/generated/utsrelease.h \ - $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated -install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/config-dist \ - $RPM_BUILD_ROOT%{_kernelsrcdir} -install %{SOURCE2} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated/autoconf.h -install %{SOURCE3} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/config.h +# /usr/src/linux +install -d $RPM_BUILD_ROOT%{_kernelsrcdir} -# collect module-build files and directories -perl %{SOURCE4} %{_kernelsrcdir} $KERNEL_BUILD_DIR +# test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition +if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then + l=l + rm -f $RPM_BUILD_ROOT/COPYING +fi -# ghosted initrd -touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.img -touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img +cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir} +cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir} +cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir} +cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir} +# copy arch/x86/include/generated +for dir in $(cd %{objdir} && find arch -name generated -type d); do + cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir + find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";" +done -# rpm obeys filelinkto checks for ghosted symlinks, convert to files -rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source} -touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source} +# version.h location changed in 3.7, but a lot of external modules don't know about it +# add a compatibility symlink +ln -s ../generated/uapi/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/version.h -# remove unnecessary dir with dead symlink -rm -rf $RPM_BUILD_ROOT/arch/i386 +# disable this here, causes a lot of build-time problems and our rpm-build disables it anyway +%{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile -install -d $RPM_BUILD_ROOT/etc/sysconfig -install %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/kernel +# collect module-build files and directories +# Usage: kernel-module-build.pl $rpmdir $fileoutdir +fileoutdir=$(pwd) +cd $RPM_BUILD_ROOT%{_kernelsrcdir} +%{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir +cd - + +for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do + ff=${f##%{objdir}/} + if [ -x "$f" ]; then + echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs + else + echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs + fi + echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs + cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff" +done + +%if %{with doc} +# move to %{_docdir} so we wouldn't depend on any kernel package for dirs +install -d $RPM_BUILD_ROOT%{_docdir} +mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}} + +%{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff +%{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile +%{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile +%{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile +%else +%{__rm} -r $RPM_BUILD_ROOT%{_kernelsrcdir}/Documentation +%endif %clean rm -rf $RPM_BUILD_ROOT @@ -505,10 +521,11 @@ fi %post %depmod %{kernel_release} +%posttrans [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then # generate initrd after all dependant modules are installed - /sbin/geninitrd -f %{initrd_dir}/initrd-%{kernel_release}.img %{kernel_release} + /sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{kernel_release}.img %{kernel_release} fi # if dracut is present then generate full-featured initramfs @@ -516,16 +533,14 @@ if [[ "$USE_DRACUT" != [Nn][Oo] ]] && [ -x /sbin/dracut ]; then /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release} fi -# update boot loader +# update boot loaders [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ] && . /etc/sysconfig/grub if [[ "$UPDATE_GRUB" != [Nn][Oo] ]]; then /sbin/update-grub fi - if [ -x /sbin/new-kernel-pkg ]; then - /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.img --install %{kernel_release} --banner "TLD Linux %{alt_kernel}" + /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.img --install %{kernel_release} --banner "TLD Linux%{?alt_kernel: %{alt_kernel}}" fi - if [ -x /sbin/rc-boot ]; then /sbin/rc-boot 1>&2 || : fi @@ -555,13 +570,13 @@ fi %depmod %{kernel_release} %post headers -ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux-%{alt_kernel} +ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel} %postun headers if [ "$1" = "0" ]; then - if [ -L %{_prefix}/src/linux-%{alt_kernel} ]; then - if [ "$(readlink %{_prefix}/src/linux-%{alt_kernel})" = "linux-%{version}-%{alt_kernel}" ]; then - rm -f %{_prefix}/src/linux-%{alt_kernel} + if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then + if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then + rm -f %{_prefix}/src/linux%{_alt_kernel} fi fi fi @@ -580,41 +595,36 @@ fi %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/kernel /boot/vmlinuz-%{kernel_release} /boot/System.map-%{kernel_release} +/boot/config-%{kernel_release} %ghost %{initrd_dir}/initrd-%{kernel_release}.img %ghost %{initrd_dir}/initramfs-%{kernel_release}.img /lib/firmware/%{kernel_release} + %dir /lib/modules/%{kernel_release} %dir /lib/modules/%{kernel_release}/kernel /lib/modules/%{kernel_release}/kernel/arch /lib/modules/%{kernel_release}/kernel/crypto /lib/modules/%{kernel_release}/kernel/drivers - -%exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu/drm - +%exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu /lib/modules/%{kernel_release}/kernel/fs /lib/modules/%{kernel_release}/kernel/kernel /lib/modules/%{kernel_release}/kernel/lib - -%ifarch x86_64 -/lib/modules/%{kernel_release}/kernel/mm -%endif - /lib/modules/%{kernel_release}/kernel/net - +/lib/modules/%{kernel_release}/kernel/mm %dir /lib/modules/%{kernel_release}/kernel/sound /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko* /lib/modules/%{kernel_release}/kernel/sound/sound*.ko* - +%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko* +%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko* +%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko* %dir /lib/modules/%{kernel_release}/misc - -%dir /lib/modules/%{kernel_release}/kernel/drivers/pcmcia -/lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]* %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko* +%exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko* @@ -622,15 +632,29 @@ fi %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko* +%exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko* - /lib/modules/%{kernel_release}/kernel/security -%ghost /lib/modules/%{kernel_release}/modules.* +%dir %{_sysconfdir}/modprobe.d/%{kernel_release} + +# provided by build +/lib/modules/%{kernel_release}/modules.order +/lib/modules/%{kernel_release}/modules.builtin* + +# rest modules.* are ghost (regenerated by post depmod -a invocation) +%ghost /lib/modules/%{kernel_release}/modules.alias +%ghost /lib/modules/%{kernel_release}/modules.alias.bin +%ghost /lib/modules/%{kernel_release}/modules.dep +%ghost /lib/modules/%{kernel_release}/modules.dep.bin +%ghost /lib/modules/%{kernel_release}/modules.devname +%ghost /lib/modules/%{kernel_release}/modules.softdep +%ghost /lib/modules/%{kernel_release}/modules.symbols +%ghost /lib/modules/%{kernel_release}/modules.symbols.bin + # symlinks pointing to kernelsrcdir %ghost /lib/modules/%{kernel_release}/build %ghost /lib/modules/%{kernel_release}/source -%dir %{_sysconfdir}/modprobe.d/%{kernel_release} %files vmlinux %defattr(644,root,root,755) @@ -638,15 +662,16 @@ fi %files drm %defattr(644,root,root,755) -/lib/modules/%{kernel_release}/kernel/drivers/gpu/drm +/lib/modules/%{kernel_release}/kernel/drivers/gpu %files pcmcia %defattr(644,root,root,755) -%exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko* /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko* /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia +%exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko* /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko* /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko* +/lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko* /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko* /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko* /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko* @@ -654,6 +679,7 @@ fi /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko* /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko* /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko* +/lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko* /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko* %files sound-alsa @@ -664,12 +690,15 @@ fi %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko* %exclude /lib/modules/%{kernel_release}/kernel/sound/oss /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko* +/lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko* +/lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko* +/lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko* %files sound-oss %defattr(644,root,root,755) /lib/modules/%{kernel_release}/kernel/sound/oss -%files headers +%files headers -f files.headers_exclude_kbuild %defattr(644,root,root,755) %dir %{_kernelsrcdir} %{_kernelsrcdir}/include @@ -679,52 +708,71 @@ fi %dir %{_kernelsrcdir}/security %dir %{_kernelsrcdir}/security/selinux %{_kernelsrcdir}/security/selinux/include -%{_kernelsrcdir}/config-dist -%{_kernelsrcdir}/Module.symvers-dist +%{_kernelsrcdir}/.config +%{_kernelsrcdir}/Module.symvers -%files module-build -f aux_files +%files module-build -f files.mb_include_modulebuild_and_dirs %defattr(644,root,root,755) -# symlinks pointint to kernelsrcdir -%dir /lib/modules/%{kernel_release} -/lib/modules/%{kernel_release}/build -%{_kernelsrcdir}/Kbuild -%{_kernelsrcdir}/localversion +%exclude %dir %{_kernelsrcdir}/arch/um %{_kernelsrcdir}/arch/*/kernel/asm-offsets* %{_kernelsrcdir}/arch/*/kernel/sigframe*.h %{_kernelsrcdir}/drivers/lguest/lg.h +%{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h %{_kernelsrcdir}/kernel/bounds.c -%dir %{_kernelsrcdir}/scripts -%dir %{_kernelsrcdir}/scripts/kconfig -%{_kernelsrcdir}/scripts/Kbuild.include -%{_kernelsrcdir}/scripts/Makefile* -%{_kernelsrcdir}/scripts/basic +%{_kernelsrcdir}/scripts/basic/*.c +%attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh +%{_kernelsrcdir}/scripts/kconfig/*.in +%{_kernelsrcdir}/scripts/kconfig/*_shipped +%{_kernelsrcdir}/scripts/kconfig/*.pl +%{_kernelsrcdir}/scripts/kconfig/*.glade +%{_kernelsrcdir}/scripts/kconfig/*.gperf +%{_kernelsrcdir}/scripts/kconfig/*.cc +%{_kernelsrcdir}/scripts/kconfig/*.y +%{_kernelsrcdir}/scripts/kconfig/*.l +%{_kernelsrcdir}/scripts/kconfig/[c-k]*.c +%{_kernelsrcdir}/scripts/kconfig/[c-k]*.h +%{_kernelsrcdir}/scripts/kconfig/l*.h +%{_kernelsrcdir}/scripts/kconfig/[m-u]*.c +%{_kernelsrcdir}/scripts/kconfig/[m-u]*.h +%{_kernelsrcdir}/scripts/kconfig/lxdialog +%{_kernelsrcdir}/scripts/mod/*.c +%{_kernelsrcdir}/scripts/mod/[^e]*.h +%attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h %{_kernelsrcdir}/scripts/mkmakefile -%{_kernelsrcdir}/scripts/mod %{_kernelsrcdir}/scripts/module-common.lds -%{_kernelsrcdir}/scripts/setlocalversion +%attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion %{_kernelsrcdir}/scripts/*.c -%{_kernelsrcdir}/scripts/*.sh -%{_kernelsrcdir}/scripts/kconfig/* -%{_kernelsrcdir}/scripts/mkcompile_h -%dir %{_kernelsrcdir}/scripts/selinux -%{_kernelsrcdir}/scripts/selinux/Makefile -%dir %{_kernelsrcdir}/scripts/selinux/mdp -%dir %{_kernelsrcdir}/scripts/selinux/genheaders -%{_kernelsrcdir}/scripts/selinux/mdp/Makefile -%{_kernelsrcdir}/scripts/selinux/mdp/*.c -%{_kernelsrcdir}/scripts/selinux/genheaders/Makefile +%attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh %{_kernelsrcdir}/scripts/selinux/genheaders/*.c +%{_kernelsrcdir}/scripts/selinux/mdp/*.c +%exclude %dir %{_kernelsrcdir}/security +%exclude %dir %{_kernelsrcdir}/security/selinux +%if %{with doc} %files doc %defattr(644,root,root,755) -%dir %{_kernelsrcdir} -%{_kernelsrcdir}/Documentation +%dir %{_docdir}/%{name}-%{version} + +%{_docdir}/%{name}-%{version}/[!jkz]* +%{_docdir}/%{name}-%{version}/[jkz]*.txt +%{_docdir}/%{name}-%{version}/kbuild +%{_docdir}/%{name}-%{version}/kdump +%lang(ja) %{_docdir}/%{name}-%{version}/ja_JP +%lang(ko) %{_docdir}/%{name}-%{version}/ko_KR +%lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN +%endif %if %{with source} -%files source -f aux_files_exc +%files source -f files.source_exclude_modulebuild_and_dirs %defattr(644,root,root,755) -%{_kernelsrcdir}/arch/*/[!Mk]* +%{_kernelsrcdir}/arch/*/[!Mik]* %{_kernelsrcdir}/arch/*/kernel/[!M]* +%{_kernelsrcdir}/arch/ia64/install.sh +%{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]* +%{_kernelsrcdir}/arch/m68k/ifpsp060/MISC +%{_kernelsrcdir}/arch/m68k/install.sh +%{_kernelsrcdir}/arch/parisc/install.sh +%{_kernelsrcdir}/arch/x86/ia32/[!M]* %{_kernelsrcdir}/arch/ia64/kvm %{_kernelsrcdir}/arch/powerpc/kvm %{_kernelsrcdir}/arch/s390/kvm @@ -732,6 +780,7 @@ fi %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets* %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h %exclude %{_kernelsrcdir}/drivers/lguest/lg.h +%exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h %{_kernelsrcdir}/block %{_kernelsrcdir}/crypto %{_kernelsrcdir}/drivers @@ -744,26 +793,36 @@ fi %{_kernelsrcdir}/lib %{_kernelsrcdir}/mm %{_kernelsrcdir}/net +%{_kernelsrcdir}/virt %{_kernelsrcdir}/samples %{_kernelsrcdir}/scripts/* %exclude %{_kernelsrcdir}/scripts/Kbuild.include %exclude %{_kernelsrcdir}/scripts/Makefile* %exclude %{_kernelsrcdir}/scripts/basic %exclude %{_kernelsrcdir}/scripts/kconfig +%exclude %{_kernelsrcdir}/scripts/mkcompile_h %exclude %{_kernelsrcdir}/scripts/mkmakefile %exclude %{_kernelsrcdir}/scripts/mod +%exclude %{_kernelsrcdir}/scripts/module-common.lds %exclude %{_kernelsrcdir}/scripts/setlocalversion %exclude %{_kernelsrcdir}/scripts/*.c %exclude %{_kernelsrcdir}/scripts/*.sh +%exclude %dir %{_kernelsrcdir}/scripts/selinux +%exclude %{_kernelsrcdir}/scripts/selinux/Makefile +%exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders +%exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile +%exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c +%exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp +%exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile +%exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c %{_kernelsrcdir}/sound %{_kernelsrcdir}/security -%{_kernelsrcdir}/tools +%exclude %{_kernelsrcdir}/security/selinux/include +%{_kernelsrcdir}/tools/* %{_kernelsrcdir}/usr -%{_kernelsrcdir}/virt %{_kernelsrcdir}/COPYING %{_kernelsrcdir}/CREDITS %{_kernelsrcdir}/MAINTAINERS %{_kernelsrcdir}/README %{_kernelsrcdir}/REPORTING-BUGS -%{_kernelsrcdir}/.mailmap %endif diff --git a/kernel.make b/kernel.make new file mode 100644 index 0000000..0e04986 --- /dev/null +++ b/kernel.make @@ -0,0 +1,10 @@ +MAKE_OPTS := + +include $(TARGETOBJ).mk + +all := $(filter-out all Makefile,$(MAKECMDGOALS)) + +all $(all): + $(MAKE) -C $(KERNELSRC) O=$(KERNELOUTPUT) $(MAKE_OPTS) $(all) + +# vim:ft=make -- 2.44.0