blob: 8da44d9f5d26fddc029d835fa453388d74866934 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001##### CLEAR VARS
2
3DRV_CFLAGS =
4DRV_WPA_CFLAGS =
5DRV_AP_CFLAGS =
6DRV_OBJS =
7DRV_WPA_OBJS =
8DRV_AP_OBJS =
9DRV_LIBS =
10DRV_WPA_LIBS =
11DRV_AP_LIBS =
12
13##### COMMON DRIVERS
14
15ifdef CONFIG_DRIVER_WIRED
16DRV_CFLAGS += -DCONFIG_DRIVER_WIRED
17DRV_OBJS += ../src/drivers/driver_wired.o
18NEED_DRV_WIRED_COMMON=1
19endif
20
21ifdef CONFIG_DRIVER_MACSEC_LINUX
22DRV_CFLAGS += -DCONFIG_DRIVER_MACSEC_LINUX
23DRV_OBJS += ../src/drivers/driver_macsec_linux.o
24NEED_DRV_WIRED_COMMON=1
25NEED_LIBNL=y
26CONFIG_LIBNL3_ROUTE=y
27endif
28
29ifdef CONFIG_DRIVER_NL80211_BRCM
30DRV_CFLAGS += -DCONFIG_DRIVER_NL80211_BRCM
31endif
32
33ifdef CONFIG_DRIVER_MACSEC_QCA
34DRV_CFLAGS += -DCONFIG_DRIVER_MACSEC_QCA
35DRV_OBJS += ../src/drivers/driver_macsec_qca.o
36NEED_DRV_WIRED_COMMON=1
37endif
38
39ifdef NEED_DRV_WIRED_COMMON
40DRV_OBJS += ../src/drivers/driver_wired_common.o
41endif
42
43ifdef CONFIG_DRIVER_NL80211
44DRV_CFLAGS += -DCONFIG_DRIVER_NL80211
45DRV_OBJS += ../src/drivers/driver_nl80211.o
46DRV_OBJS += ../src/drivers/driver_nl80211_capa.o
47DRV_OBJS += ../src/drivers/driver_nl80211_event.o
48DRV_OBJS += ../src/drivers/driver_nl80211_monitor.o
49DRV_OBJS += ../src/drivers/driver_nl80211_scan.o
50ifdef CONFIG_DRIVER_NL80211_QCA
51DRV_CFLAGS += -DCONFIG_DRIVER_NL80211_QCA
52endif
53NEED_SME=y
54NEED_AP_MLME=y
55NEED_NETLINK=y
56NEED_LINUX_IOCTL=y
57NEED_RADIOTAP=y
58NEED_LIBNL=y
59endif
60
61ifdef CONFIG_DRIVER_BSD
62ifndef CONFIG_L2_PACKET
63CONFIG_L2_PACKET=freebsd
64endif
65DRV_CFLAGS += -DCONFIG_DRIVER_BSD
66DRV_OBJS += ../src/drivers/driver_bsd.o
67CONFIG_L2_FREEBSD=y
68CONFIG_DNET_PCAP=y
69endif
70
71ifdef CONFIG_DRIVER_OPENBSD
72ifndef CONFIG_L2_PACKET
73CONFIG_L2_PACKET=freebsd
74endif
75DRV_CFLAGS += -DCONFIG_DRIVER_OPENBSD
76DRV_OBJS += ../src/drivers/driver_openbsd.o
77endif
78
79ifdef CONFIG_DRIVER_NONE
80DRV_CFLAGS += -DCONFIG_DRIVER_NONE
81DRV_OBJS += ../src/drivers/driver_none.o
82endif
83
84##### PURE AP DRIVERS
85
86ifdef CONFIG_DRIVER_HOSTAP
87DRV_AP_CFLAGS += -DCONFIG_DRIVER_HOSTAP
88DRV_AP_OBJS += ../src/drivers/driver_hostap.o
89CONFIG_WIRELESS_EXTENSION=y
90NEED_AP_MLME=y
91NEED_NETLINK=y
92NEED_LINUX_IOCTL=y
93endif
94
95ifdef CONFIG_DRIVER_ATHEROS
96DRV_AP_CFLAGS += -DCONFIG_DRIVER_ATHEROS
97DRV_AP_OBJS += ../src/drivers/driver_atheros.o
98CONFIG_L2_PACKET=linux
99NEED_NETLINK=y
100NEED_LINUX_IOCTL=y
101ifdef ATH_GCM_SUPPORT
102CFLAGS += -DATH_GCM_SUPPORT
103endif
104endif
105
106##### PURE CLIENT DRIVERS
107
108ifdef CONFIG_DRIVER_WEXT
109DRV_WPA_CFLAGS += -DCONFIG_DRIVER_WEXT
110CONFIG_WIRELESS_EXTENSION=y
111NEED_NETLINK=y
112NEED_LINUX_IOCTL=y
113endif
114
115ifdef CONFIG_DRIVER_NDIS
116DRV_WPA_CFLAGS += -DCONFIG_DRIVER_NDIS
117DRV_WPA_OBJS += ../src/drivers/driver_ndis.o
118ifdef CONFIG_NDIS_EVENTS_INTEGRATED
119DRV_WPA_OBJS += ../src/drivers/driver_ndis_.o
120endif
121ifndef CONFIG_L2_PACKET
122CONFIG_L2_PACKET=pcap
123endif
124CONFIG_WINPCAP=y
125ifdef CONFIG_USE_NDISUIO
126DRV_WPA_CFLAGS += -DCONFIG_USE_NDISUIO
127endif
128endif
129
130ifdef CONFIG_DRIVER_ROBOSWITCH
131DRV_WPA_CFLAGS += -DCONFIG_DRIVER_ROBOSWITCH
132DRV_WPA_OBJS += ../src/drivers/driver_roboswitch.o
133endif
134
135ifdef CONFIG_WIRELESS_EXTENSION
136DRV_WPA_CFLAGS += -DCONFIG_WIRELESS_EXTENSION
137DRV_WPA_OBJS += ../src/drivers/driver_wext.o
138endif
139
140ifdef NEED_NETLINK
141DRV_OBJS += ../src/drivers/netlink.o
142endif
143
144ifdef NEED_RFKILL
145DRV_OBJS += ../src/drivers/rfkill.o
146DRV_WPA_CFLAGS += -DCONFIG_RFKILL
147endif
148
149ifdef NEED_RADIOTAP
150DRV_OBJS += ../src/utils/radiotap.o
151endif
152
153ifdef CONFIG_FULL_DYNAMIC_VLAN
154NEED_LINUX_IOCTL=y
155ifdef CONFIG_VLAN_NETLINK
156NEED_LIBNL=y
157CONFIG_LIBNL3_ROUTE=y
158endif
159endif
160
161ifdef NEED_LINUX_IOCTL
162DRV_OBJS += ../src/drivers/linux_ioctl.o
163endif
164
165ifdef NEED_LIBNL
166ifndef CONFIG_LIBNL32
167ifndef CONFIG_LIBNL20
168ifndef CONFIG_LIBNL_TINY
169PKG_CONFIG ?= pkg-config
170HAVE_LIBNL3 := $(shell $(PKG_CONFIG) --exists libnl-3.0; echo $$?)
171ifeq ($(HAVE_LIBNL3),0)
172CONFIG_LIBNL32=y
173endif
174endif
175endif
176endif
177
178ifdef CONFIG_LIBNL32
179 DRV_LIBS += -lnl-3
180 DRV_LIBS += -lnl-genl-3
181 ifdef LIBNL_INC
182 DRV_CFLAGS += -I$(LIBNL_INC)
183 else
184 PKG_CONFIG ?= pkg-config
185 DRV_CFLAGS += $(shell $(PKG_CONFIG) --cflags libnl-3.0)
186 endif
187 ifdef CONFIG_LIBNL3_ROUTE
188 DRV_LIBS += -lnl-route-3
189 DRV_CFLAGS += -DCONFIG_LIBNL3_ROUTE
190 endif
191else
192 ifdef CONFIG_LIBNL_TINY
193 DRV_LIBS += -lnl-tiny
194 else
195 ifndef CONFIG_OSX
196 DRV_LIBS += -lnl
197 DRV_LIBS += -lnl-genl
198 endif
199 endif
200endif
201endif
202
203##### COMMON VARS
204DRV_BOTH_CFLAGS := $(DRV_CFLAGS) $(DRV_WPA_CFLAGS) $(DRV_AP_CFLAGS)
205DRV_WPA_CFLAGS += $(DRV_CFLAGS)
206DRV_AP_CFLAGS += $(DRV_CFLAGS)
207
208DRV_BOTH_LIBS := $(DRV_LIBS) $(DRV_WPA_LIBS) $(DRV_AP_LIBS)
209DRV_WPA_LIBS += $(DRV_LIBS)
210DRV_AP_LIBS += $(DRV_LIBS)
211
212DRV_BOTH_OBJS := $(DRV_OBJS) $(DRV_WPA_OBJS) $(DRV_AP_OBJS)
213DRV_WPA_OBJS += $(DRV_OBJS)
214DRV_AP_OBJS += $(DRV_OBJS)
215
216DRV_BOTH_LDFLAGS := $(DRV_LDFLAGS) $(DRV_WPA_LDFLAGS) $(DRV_AP_LDFLAGS)
217DRV_WPA_LDFLAGS += $(DRV_LDFLAGS)
218DRV_AP_LDFLAGS += $(DRV_LDFLAGS)