-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
134 lines (114 loc) · 3.52 KB
/
Copy pathMakefile
File metadata and controls
134 lines (114 loc) · 3.52 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
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
SHELL = /bin/bash
SCRIPT_FILE:=/usr/local/bin/axm57104A_driver_install.sh
SERVICE_FILE:=/lib/systemd/system/AXM57104A_Module.service
ifneq ($(xvc_bar_num),)
XVC_FLAGS += -D__XVC_BAR_NUM__=$(xvc_bar_num)
endif
ifneq ($(xvc_bar_offset),)
XVC_FLAGS += -D__XVC_BAR_OFFSET__=$(xvc_bar_offset)
endif
$(warning XVC_FLAGS: $(XVC_FLAGS).)
topdir := $(shell cd $(src)/.. && pwd)
DSA_FILES = DSA/devlink.c \
DSA/dsa2.c \
DSA/conduit.c \
DSA/netlink.c \
DSA/port.c \
DSA/user.c \
DSA/switch.c \
DSA/tag_8021q.c \
DSA/trace.c \
DSA/tag.c \
TAG_FILES =DSA/tag_asix.c
CFILES = DSA/dsa_loop.c \
libxdma.c \
xdma_mod.c \
switch/ax_switch.c \
switch/ax_ptp.c
TARGET_MODULE:=axm57104A
DSA_MODULE:=ax_dsa_core
DSA_TAG_MODULE:=asix_tag
BUILDSYSTEM:=/lib/modules/$(shell uname -r)
INSTALL_PATH:=kernel/drivers/net/ethernet
EXTRA_CFLAGS := -I$(topdir)/include $(XVC_FLAGS)
#EXTRA_CFLAGS := -I$(topdir)/include $(XVC_FLAGS) \
-Wno-array-bounds \
-fno-aggressive-loop-optimizations \
-fno-strict-overflow \
-fwrapv \
-fno-delete-null-pointer-checks \
-fno-tree-slp-vectorize
#KBUILD_EXTRA_SYMBOLS+=./Module.symvers
#export KBUILD_EXTRA_SYMBOLS
#EXTRA_CFLAGS += -DAXM57104_DEBUG
#EXTRA_CFLAGS += -D__LIBXDMA_DEBUG__
#EXTRA_CFLAGS += -DINTERNAL_TESTING
ifneq ($(KERNELRELEASE),)
$(TARGET_MODULE)-objs := $(CFILES:.c=.o)
$(DSA_MODULE)-objs := $(DSA_FILES:.c=.o)
$(DSA_TAG_MODULE)-objs := $(TAG_FILES:.c=.o)
obj-m := $(TARGET_MODULE).o $(DSA_MODULE).o $(DSA_TAG_MODULE).o
else
BUILDSYSTEM_DIR:=/lib/modules/$(shell uname -r)/build
TARGET_PATH:= kernel/drivers/net/ethernet
AXM57104A_PATH:= /lib/modules/$(shell uname -r)/$(TARGET_PATH)/axm57104A.ko
DSA_PATH:= /lib/modules/$(shell uname -r)/$(TARGET_PATH)/ax_dsa_core.ko
ASIX_TAG:= /lib/modules/$(shell uname -r)/$(TARGET_PATH)/asix_tag.ko
PWD:=$(shell pwd)
endif
.PHONY: all
all :
$(MAKE) -C $(BUILDSYSTEM_DIR) M=$(PWD) modules
.PHONY: clean
clean:
$(MAKE) -C $(BUILDSYSTEM_DIR) M=$(PWD) clean
rm -rf *.o.* .cache.* *.mod
#.PHONY: uninstall
#uninstall: clean
# LSMOD = $(findstring $(TARGET_MODULE), $(shell lsmod))
# if [ $(LSMOD) ]; then \
# rmmod axm57104A ;\
# rmmod asix_tag ;\
# rmmod ax_dsa_core ;\
# rm -f $(BUILDSYSTEM)/$(INSTALL_PATH)/axm57104A.ko;\
# rm -f $(BUILDSYSTEM)/$(INSTALL_PATH)/asix_tag.ko;\
# rm -f $(BUILDSYSTEM)/$(INSTALL_PATH)/ax_dsa_core.ko;\
# fi
.PHONY: uninstall
uninstall: clean
@echo "Unloading modules...."
@if lsmod | grep -q axm57104A; then sudo rmmod axm57104A; fi
@if lsmod | grep -q asix_tag; then sudo rmmod asix_tag; fi
@if lsmod | grep -q ax_dsa_core; then sudo rmmod ax_dsa_core; fi
@echo "Removing .ko files..."
sudo rm -f $(BUILDSYSTEM)/$(INSTALL_PATH)/axm57104A.ko
sudo rm -f $(BUILDSYSTEM)/$(INSTALL_PATH)/asix_tag.ko
sudo rm -f $(BUILDSYSTEM)/$(INSTALL_PATH)/ax_dsa_core.ko
ifneq ($(wildcard $(SCRIPT_FILE)), )
rm -f $(SCRIPT_FILE)
@echo "Remove install script file"
endif
ifneq ($(wildcard $(SERVICE_FILE)), )
systemctl stop AXM57104A_Module
systemctl disable AXM57104A_Module
rm -f $(SERVICE_FILE)
systemctl daemon-reload
@echo "Remove and disable service module"
endif
ifneq ($(wildcard $(AXM57104A_PATH)), )
rm -rf $(AXM57104A_PATH)
endif
ifneq ($(wildcard $(DSA_PATH)), )
rm -rf $(DSA_PATH)
endif
ifneq ($(wildcard $(ASIX_TAG)), )
rm -rf $(ASIX_TAG)
endif
sudo /usr/sbin/depmod -a
.PHONY: install
install: clean all
cp *.ko $(BUILDSYSTEM)/$(INSTALL_PATH)
cp ./axm57104A_driver_install.sh /usr/local/bin
install -o root -g root -m 644 ./AXM57104A_Module.service /lib/systemd/system
systemctl daemon-reload
systemctl enable AXM57104A_Module