bpf-headers: unset PKG_CONFIG_PATH
[openwrt/staging/stintel.git] / package / kernel / bpf-headers / Makefile
1 #
2 # Copyright (C) 2006-2009 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7 include $(TOPDIR)/rules.mk
8
9 override QUILT:=
10 override HOST_QUILT:=
11
12 include $(INCLUDE_DIR)/kernel.mk
13
14
15 PKG_NAME:=linux
16 PKG_PATCHVER:=5.10
17 PKG_VERSION:=$(PKG_PATCHVER)$(strip $(LINUX_VERSION-$(PKG_PATCHVER)))
18 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
19 PKG_SOURCE_URL:=$(LINUX_SITE)
20 PKG_HASH:=$(LINUX_KERNEL_HASH-$(strip $(PKG_VERSION)))
21 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/bpf-headers/$(PKG_NAME)-$(PKG_VERSION)
22
23 GENERIC_BACKPORT_DIR := $(GENERIC_PLATFORM_DIR)/backport$(if $(wildcard $(GENERIC_PLATFORM_DIR)/backport-$(PKG_PATCHVER)),-$(PKG_PATCHVER))
24 GENERIC_PATCH_DIR := $(GENERIC_PLATFORM_DIR)/pending$(if $(wildcard $(GENERIC_PLATFORM_DIR)/pending-$(PKG_PATCHVER)),-$(PKG_PATCHVER))
25 GENERIC_HACK_DIR := $(GENERIC_PLATFORM_DIR)/hack$(if $(wildcard $(GENERIC_PLATFORM_DIR)/hack-$(PKG_PATCHVER)),-$(PKG_PATCHVER))
26 GENERIC_FILES_DIR := $(foreach dir,$(wildcard $(GENERIC_PLATFORM_DIR)/files $(GENERIC_PLATFORM_DIR)/files-$(PKG_PATCHVER)),"$(dir)")
27 PATCH_DIR := $(CURDIR)/patches
28 FILES_DIR :=
29
30 REAL_LINUX_DIR := $(LINUX_DIR)
31 LINUX_DIR := $(PKG_BUILD_DIR)
32
33 include $(INCLUDE_DIR)/bpf.mk
34 include $(INCLUDE_DIR)/package.mk
35
36 define Package/bpf-headers
37 SECTION:=kernel
38 CATEGORY:=Kernel
39 TITLE:=eBPF kernel headers
40 BUILDONLY:=1
41 HIDDEN:=1
42 endef
43
44 PKG_CONFIG_PATH:=
45
46 export HOST_EXTRACFLAGS=-I$(STAGING_DIR_HOST)/include
47
48 KERNEL_MAKE := \
49 $(MAKE) -C $(PKG_BUILD_DIR) \
50 ARCH=$(BPF_KARCH) \
51 CROSS_COMPILE=$(BPF_ARCH)-linux- \
52 LLVM=1 CC="$(CLANG)" LD="$(TARGET_CROSS)ld" \
53 HOSTCC="$(HOSTCC)" \
54 HOSTCXX="$(HOSTCXX)" \
55 HOST_LOADLIBES="-L$(STAGING_DIR_HOST)/lib" \
56 KBUILD_HOSTLDLIBS="-L$(STAGING_DIR_HOST)/lib" \
57 CONFIG_SHELL="$(BASH)" \
58 INSTALL_HDR_PATH="$(PKG_BUILD_DIR)/user_headers"
59
60 define Build/Patch
61 $(Kernel/Patch/Default)
62 endef
63
64 BPF_DOC = $(PKG_BUILD_DIR)/scripts/bpf_helpers_doc.py
65
66 define Build/Configure
67 grep -vE 'CONFIG_(CPU_.*ENDIAN|HZ)' $(PKG_BUILD_DIR)/arch/mips/configs/generic_defconfig > $(PKG_BUILD_DIR)/.config
68 echo 'CONFIG_CPU_$(if $(CONFIG_BIG_ENDIAN),BIG,LITTLE)_ENDIAN=y' >> $(PKG_BUILD_DIR)/.config
69 grep CONFIG_HZ $(REAL_LINUX_DIR)/.config >> $(PKG_BUILD_DIR)/.config
70 yes '' | $(KERNEL_MAKE) oldconfig
71 grep 'CONFIG_HZ=' $(REAL_LINUX_DIR)/.config | \
72 cut -d= -f2 | \
73 bc -q $(LINUX_DIR)/kernel/time/timeconst.bc \
74 > $(LINUX_DIR)/include/generated/timeconst.h
75 $(BPF_DOC) --header \
76 --file $(LINUX_DIR)/tools/include/uapi/linux/bpf.h \
77 > $(PKG_BUILD_DIR)/tools/lib/bpf/bpf_helper_defs.h
78 endef
79
80 define Build/Compile
81 $(KERNEL_MAKE) archprepare headers_install
82 endef
83
84 define Build/InstallDev
85 mkdir -p $(1)/bpf-headers/arch $(1)/bpf-headers/tools
86 $(CP) \
87 $(PKG_BUILD_DIR)/arch/$(BPF_KARCH) \
88 $(1)/bpf-headers/arch/
89 $(CP) \
90 $(PKG_BUILD_DIR)/tools/lib \
91 $(PKG_BUILD_DIR)/tools/testing \
92 $(1)/bpf-headers/tools/
93 $(CP) \
94 $(PKG_BUILD_DIR)/include \
95 $(PKG_BUILD_DIR)/samples \
96 $(PKG_BUILD_DIR)/scripts \
97 $(PKG_BUILD_DIR)/user_headers \
98 $(1)/bpf-headers
99 endef
100
101 $(eval $(call BuildPackage,bpf-headers))