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