############################################################################### # # # IPFire.org - A linux based firewall # # Copyright (C) 2007, 2008, 2009 Michael Tremer & Christian Schmidt # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation, either version 3 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program. If not, see . # # # ############################################################################### ############################################################################### # Definitions ############################################################################### include ../../Config PKG_NAME = linux PKG_VER = 2.6.31.1 PKG_REL = 0 PKG_MAINTAINER = Michael Tremer PKG_GROUP = System/Kernels PKG_URL = http://www.kernel.org/ PKG_LICENSE = GPLv2 PKG_SUMMARY = The Linux kernel. define PKG_DESCRIPTION The kernel package contains the Linux kernel (vmlinuz), the core of any \ Linux operating system. The kernel handles the basic functions \ of the operating system: memory allocation, process allocation, device \ input and output, etc. endef PKG_BUILD_DEPS+= PKG_DEPS += CFLAGS = CXXFLAGS = LOCALVERSION = -ipfire1 FULLVER= $(PKG_VER)$(LOCALVERSION) # Another Union FS AUFS_PATCH = aufs2-$(PKG_VER)-1.patch PKG_PATCHES += $(AUFS_PATCH) # Grsecurity GRSEC_PATCH = grsecurity-2.1.14-$(PKG_VER)-200910012153.patch PKG_PATCHES += $(GRSEC_PATCH) # OCF #OCF_PATCH = ocf-linux-26-20080917.patch PKG_PATCHES += $(OCF_PATCH) # Reiser4 Filesystem REISER4_PATCH = reiser4-for-$(PKG_VER).patch PKG_PATCHES += $(REISER4_PATCH) # Routing improvements taken from http://www.ssi.bg/~ja/#routes ROUTES_PATCH = routes-$(PKG_VER)-16.diff PKG_PATCHES += $(ROUTES_PATCH) PKG_OBJECTS += $(THISAPP).tar.bz2 PKG_PATCHES += $(THISAPP)-disable-compat_vdso-1.patch include ../../Rules ############################################################################### # Installation Details ############################################################################### $(STAGE_PREPARE): $(OBJECTS) @$(PRE_PREPARE) rm -rf $(DIR_APP) && cd $(DIR_SRC) && $(DO_EXTRACT) $(DIR_DL)/$(firstword $(PKG_OBJECTS)) cd $(DIR_APP) && echo "$(LOCALVERSION)" > localversion-ipfire cd $(DIR_APP) && patch -Np1 -i $(DIR_PATCHES)/$(AUFS_PATCH) #cd $(DIR_APP) && patch -Np1 -i $(DIR_PATCHES)/$(OCF_PATCH) #cd $(DIR_APP) && echo "source \"crypto/ocf/Kconfig\"" >> crypto/Kconfig cd $(DIR_APP) && patch -Np1 -i $(DIR_PATCHES)/$(REISER4_PATCH) cd $(DIR_APP) && patch -Np1 -i $(DIR_PATCHES)/$(ROUTES_PATCH) cd $(DIR_APP) && patch -Np1 -i $(DIR_PATCHES)/$(GRSEC_PATCH) rm -f $(DIR_APP)/localversion-grsec #cd $(DIR_APP) && patch -Np1 -i $(DIR_PATCHES)/$(THISAPP)-disable-compat_vdso-1.patch cd $(DIR_APP) && sed -e "s/^HOSTCFLAGS.*=.*/& -fPIC/g" -i Makefile @$(POST_PREPARE) $(STAGE_BUILD): $(STAGE_PREPARE) @$(PRE_BUILD) cd $(DIR_APP) && make mrproper # Select right optimization for the linux kernel. if [ "$(TARGET)" == "i486" ]; then \ sed -e "s/^CONFIG_M686=y/# CONFIG_686 is not set/" \ -e "s/^# CONFIG_M486 is not set/CONFIG_M486=y/" \ < $(DIR_SOURCE)/kernel/kernel.config > $(DIR_APP)/.config; \ elif [ "$(TARGET)" == "i586" ]; then \ sed -e "s/^CONFIG_M686=y/# CONFIG_686 is not set/" \ -e "s/^# CONFIG_M586TSC is not set/CONFIG_M586TSC=y/" \ < $(DIR_SOURCE)/kernel/kernel.config > $(DIR_APP)/.config; \ elif [ "$(TARGET)" == "via-c7" ]; then \ sed -e "s/^CONFIG_M686=y/# CONFIG_686 is not set/" \ -e "s/^# CONFIG_MVIAC7 is not set/CONFIG_MVIAC7=y/" \ < $(DIR_SOURCE)/kernel/kernel.config > $(DIR_APP)/.config; \ elif [ "$(TARGET)" == "via-c3" ]; then \ sed -e "s/^CONFIG_M686=y/# CONFIG_686 is not set/" \ -e "s/^# CONFIG_MVIAC3_2 is not set/CONFIG_MVIAC3_2=y/" \ < $(DIR_SOURCE)/kernel/kernel.config > $(DIR_APP)/.config; \ else \ cp -f $(DIR_SOURCE)/kernel/kernel.config $(DIR_APP)/.config; \ fi cd $(DIR_APP) && yes "" | make oldconfig cd $(DIR_APP) && cp -vf $(DIR_SOURCE)/kernel/$(SNAME)_logo.ppm \ drivers/video/logo/logo_linux_clut224.ppm cd $(DIR_APP) && make CC="gcc -nopie" $(PARALLELISMFLAGS) @$(POST_BUILD) $(STAGE_INSTALL): $(STAGE_BUILD) @$(PRE_INSTALL) cd $(DIR_APP) && make modules_install cd $(DIR_APP) && cp -v arch/x86/boot/bzImage /boot/$(SNAME)kernel-$(FULLVER) cd $(DIR_APP) && cp -v System.map /boot/System.map-$(FULLVER) ln -svf $(SNAME)kernel-$(FULLVER) /boot/$(SNAME)kernel ln -svf System.map-$(FULLVER) /boot/System.map # keep the source code in $(DIR_SRC)/$(PKG_NAME)-$(FULLVER) cp -fal $(DIR_APP) $(DIR_SRC)/$(PKG_NAME)-$(FULLVER) rm -vf /lib/modules/$(KVER)/{build,source} ln -svf $(DIR_SRC)/$(PKG_NAME)-$(FULLVER) /lib/modules/$(KVER)/build ln -svf $(DIR_SRC)/$(PKG_NAME)-$(FULLVER) /lib/modules/$(KVER)/source -mkdir -pv /lib/modules/$(KVER)/extra @$(POST_INSTALL)