1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
include Makefile.config
#
# Modify this if you want to build patches yourself
#
PATCH_PREFIX=$(KERN_VERSION)
SYS_PATCH=$(PATCH_PREFIX)/sys.diff
FS_PATCH=$(PATCH_PREFIX)/fs.diff
NET_PATCH=$(PATCH_PREFIX)/net.diff
NETDRIVER_3C59X_PATCH=$(PATCH_PREFIX)/netdriver-3c59x.diff
NETDRIVER_ACENIC_PATCH=$(PATCH_PREFIX)/netdriver-acenic.diff
NETDRIVER_TULIP_PATCH=$(PATCH_PREFIX)/netdriver-tulip.diff
SCSIGEN_PATCH=$(PATCH_PREFIX)/scsigen.diff
FKT_PATCH=$(PATCH_PREFIX)/fkt.diff
APPLY_PATCHES_SCRIPT=apply_patches
PATCHES=$(FKT_PATCH)\
$(SYS_PATCH)\
$(FS_PATCH)\
$(NET_PATCH)\
$(NETDRIVER_3C59X_PATCH)\
$(NETDRIVER_ACENIC_PATCH)\
$(NETDRIVER_TULIP_PATCH)\
$(SCSIGEN_PATCH)
FKT_KERN_SOURCE=$(shell find linux-fkt -type f ! -path "*/SCCS/*" 2>/dev/null)
LINUX_PATCHES=linux-patches-$(KERN_VERSION)
# some help
help:
@echo Targets:
@echo
@echo " patches will make the patches for the different install"
@echo " targets below"
@echo
@echo " install-fkt will install the fkt driver files in directory"
@echo " \"$(INSTALL_LINUX_SOURCE)\""
@echo
@echo " install-sys will patch the kernel to add helper functions and links"
@echo " to fkt."
@echo
@echo " install-fs"
@echo " install-net"
@echo " install-netdriver-3c59x"
@echo " install-netdriver-acenic"
@echo " install-netdriver-tulip"
@echo " install-scsigen will patch the kernel to add probes to the relevant part"
# System patch, mandatory to get fkt working
$(FKT_PATCH): $(FKT_KERN_SOURCE)
@echo making $@
@mkdir -p `dirname $@`
@mkdir linux
@diff -urN linux linux-fkt > $@ || /bin/true
@rmdir linux
$(SYS_PATCH): \
$(shell find \
$(LINUX_PATCHES)/arch \
$(LINUX_PATCHES)/include/linux \
$(LINUX_PATCHES)/include/asm-i386 \
$(LINUX_PATCHES)/kernel \
$(LINUX_PATCHES)/mm \
$(LINUX_PATCHES)/fs/buffer.c.patch \
$(LINUX_PATCHES)/fs/exec.c.patch \
$(LINUX_PATCHES)/fs/read_write-sys.c.patch \
! -path $(LINUX_PATCHES)/kernel/softirq.c.patch \
! -path "*/SCCS/*" \
-type f 2>/dev/null | sort )
# File System patch
$(FS_PATCH): \
$(shell find \
$(LINUX_PATCHES)/fs \
$(LINUX_PATCHES)/drivers/block \
! -path $(LINUX_PATCHES)/fs/buffer.c.patch \
! -path $(LINUX_PATCHES)/fs/exec.c.patch \
! -path $(LINUX_PATCHES)/fs/read_write-sys.c.patch \
! -path "*/SCCS/*" \
-type f 2>/dev/null)
# TCP/IP patch
$(NET_PATCH): \
$(shell find \
$(LINUX_PATCHES)/net \
$(LINUX_PATCHES)/kernel/softirq.c.patch \
$(LINUX_PATCHES)/include/net \
! -path "*/SCCS/*" \
-type f 2>/dev/null)
# some network drivers patch
$(NETDRIVER_3C59X_PATCH): $(LINUX_PATCHES)/drivers/net/3c59x.c.patch
$(NETDRIVER_ACENIC_PATCH): $(LINUX_PATCHES)/drivers/net/acenic.c.patch
$(NETDRIVER_TULIP_PATCH): \
$(shell find \
$(LINUX_PATCHES)/drivers/net/tulip \
! -path "*/SCCS/*" \
-type f 2>/dev/null)
# scsi generic layer patch
$(SCSIGEN_PATCH): \
$(shell find \
$(LINUX_PATCHES)/drivers/scsi \
! -path "*/SCCS/*" \
-type f 2>/dev/null)
patches: $(PATCHES)
#
# these are the real rules for all .diff targets
#
install-%: $(PATCH_PREFIX)/%.diff
@echo applying $<
@(cd $(INSTALL_LINUX_SOURCE) && patch -p1) < $<
%.diff:
@echo making $@
@mkdir -p `dirname $@`
@cat /dev/null $^ > $@
#
# time to clean...
#
clean:
rm -fr $(KERN_VERSION)
|