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