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