-
Notifications
You must be signed in to change notification settings - Fork 202
Expand file tree
/
Copy pathMakefile
More file actions
101 lines (76 loc) · 2.85 KB
/
Copy pathMakefile
File metadata and controls
101 lines (76 loc) · 2.85 KB
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
ENA_COM_PATH=../common/ena_com/
this_mkfile_path := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
DRIVER_NAME := ena
$(DRIVER_NAME)-srcs := ena_netdev.c \
ena_ethtool.c \
ena_lpc.c \
ena_phc.c \
ena_xdp.c \
dim.c \
net_dim.c \
ena_devlink.c \
ena_debug.c \
$(ENA_COM_PATH)/ena_com.c \
$(ENA_COM_PATH)/ena_eth_com.c
$(DRIVER_NAME)-sysfs-srcs := ena_sysfs.c
$(DRIVER_NAME)-debug_fs-srcs := ena_debugfs.c
HEADER_FILES := $(shell find $(this_mkfile_path) $(this_mkfile_path)/$(ENA_COM_PATH) -type f -name '*.h')
obj-m += $(DRIVER_NAME).o
$(DRIVER_NAME)-objs := $(patsubst %.c,%.o,$($(DRIVER_NAME)-srcs))
$(DRIVER_NAME)-$(CONFIG_SYSFS) += $(patsubst %.c,%.o,$($(DRIVER_NAME)-sysfs-srcs))
$(DRIVER_NAME)-$(CONFIG_DEBUG_FS) += $(patsubst %.c,%.o,$($(DRIVER_NAME)-debug_fs-srcs))
ccflags-y := -I$(src)
ccflags-y += -I$(src)/$(ENA_COM_PATH)/
BUILD_KERNEL ?= $(shell uname -r)
# allow user to override the build directory
KERNEL_BUILD_DIR ?= /lib/modules/$(BUILD_KERNEL)/build
ccflags-y += -Wfatal-errors
get_kernel_subversions = $(shell \
subversions_array_tmp=(`uname -r | sed 's/[^0-9]\+/ /g ; s/\s$$//'`) && \
for (( i = 0; i < 6; i++ )); do \
subversions_array[$$i]="ENA_KERNEL_SUBVERSION_$$(($$i+1))=$${subversions_array_tmp[$$i]:-0}"; \
done && \
echo $${subversions_array[*]})
ifneq ("$(wildcard /etc/os-release)","")
IS_DEBIAN=$(shell grep Debian /etc/os-release)
ifneq ($(strip $(IS_DEBIAN)),)
DEBIAN_VERSION_LINE=$(shell grep VERSION_ID /etc/os-release)
REMOVE_QUOTES = $(subst $\",,$(DEBIAN_VERSION_LINE))
REMOVE_EQUAL_SIGN = $(subst $\=,,$(REMOVE_QUOTES))
DEBIAN_VERSION = $(subst VERSION_ID,,$(REMOVE_EQUAL_SIGN))
ccflags-y += -DDEBIAN_VERSION=$(DEBIAN_VERSION)
endif
IS_SUSE=$(shell grep SUSE /etc/os-release)
IS_UEK=$(shell uname -r | grep uek)
IS_FEDORA=$(shell grep Fedora /etc/os-release)
ifneq ($(strip $(IS_FEDORA)),)
ccflags-y += -DFEDORA_RELEASE
endif
IS_KERNEL_SUBVERSIONS_NEEDED=$(IS_SUSE)$(IS_UEK)
ifneq ($(strip $(IS_KERNEL_SUBVERSIONS_NEEDED)),)
ifneq ($(strip $(IS_UEK)),)
ccflags-y += -DIS_UEK
endif
ENA_KERNEL_SUBVERSIONS := $(call get_kernel_subversions)
$(foreach subversion,$(ENA_KERNEL_SUBVERSIONS),$(eval ccflags-y += -D$(subversion)))
endif
endif
ifdef UBUNTU_ABI
ccflags-y += -DUTS_UBUNTU_RELEASE_ABI=$(UBUNTU_ABI)
endif
ifdef ENA_PHC_INCLUDE
ccflags-y += -DENA_PHC_SUPPORT
endif
ifdef ENA_DEVLINK_INCLUDE
ccflags-y += -DENA_DEVLINK_INCLUDE
endif
all: $(DRIVER_NAME).ko
$(DRIVER_NAME).ko: config.h $(HEADER_FILES) $($(DRIVER_NAME)-srcs) $($(DRIVER_NAME)-sysfs-srcs) $($(DRIVER_NAME)-debug_fs-srcs)
$(MAKE) -C $(KERNEL_BUILD_DIR) M=$(CURDIR) modules
config.h:
./configure.sh --kernel-dir $(KERNEL_BUILD_DIR) --verbose
clean:
$(MAKE) -C $(KERNEL_BUILD_DIR) M=$(CURDIR) clean
rm -f config.h
rm -rf cc_test
rm -f $(ENA_COM_PATH)/*.o $(ENA_COM_PATH)/.*.o.cmd