2 # Copyright (C) 2006-2009 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
7 include $(TOPDIR
)/rules.mk
12 include $(INCLUDE_DIR
)/kernel.mk
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
)
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
30 REAL_LINUX_DIR
:= $(LINUX_DIR
)
31 LINUX_DIR
:= $(PKG_BUILD_DIR
)
33 include $(INCLUDE_DIR
)/bpf.mk
34 include $(INCLUDE_DIR
)/package.mk
36 define Package
/bpf-headers
39 TITLE
:=eBPF kernel headers
46 export HOST_EXTRACFLAGS
=-I
$(STAGING_DIR_HOST
)/include
49 $(MAKE
) -C
$(PKG_BUILD_DIR
) \
51 CROSS_COMPILE
=$(BPF_ARCH
)-linux- \
52 LLVM
=1 CC
="$(CLANG)" LD
="$(TARGET_CROSS)ld" \
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"
61 $(Kernel
/Patch
/Default
)
64 BPF_DOC
= $(PKG_BUILD_DIR
)/scripts
/bpf_helpers_doc.py
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 | \
73 bc
-q
$(LINUX_DIR
)/kernel
/time
/timeconst.bc \
74 > $(LINUX_DIR
)/include/generated
/timeconst.h
76 --file
$(LINUX_DIR
)/tools
/include/uapi
/linux
/bpf.h \
77 > $(PKG_BUILD_DIR
)/tools
/lib
/bpf
/bpf_helper_defs.h
81 $(KERNEL_MAKE
) archprepare headers_install
84 define Build
/InstallDev
85 mkdir
-p
$(1)/bpf-headers
/arch
$(1)/bpf-headers
/tools
87 $(PKG_BUILD_DIR
)/arch
/$(BPF_KARCH
) \
88 $(1)/bpf-headers
/arch
/
90 $(PKG_BUILD_DIR
)/tools
/lib \
91 $(PKG_BUILD_DIR
)/tools
/testing \
92 $(1)/bpf-headers
/tools
/
94 $(PKG_BUILD_DIR
)/include \
95 $(PKG_BUILD_DIR
)/samples \
96 $(PKG_BUILD_DIR
)/scripts \
97 $(PKG_BUILD_DIR
)/user_headers \
101 $(eval
$(call BuildPackage
,bpf-headers
))