Support for building an hardened OpenWRT
[openwrt/openwrt.git] / package / network / services / hostapd / Makefile
index 2e8eae2069ebf6427281d2ac96859668f312c477..6bdf5341e01dbbc4e1cefa613d36be845cca4408 100644 (file)
@@ -1,5 +1,5 @@
 #
 #
-# Copyright (C) 2006-2012 OpenWrt.org
+# Copyright (C) 2006-2014 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,9 +8,9 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=hostapd
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=hostapd
-PKG_VERSION:=2014-04-24
+PKG_VERSION:=2014-10-25
 PKG_RELEASE:=1
 PKG_RELEASE:=1
-PKG_REV:=3cf48c4f2e2d558130253457fea02ef4047cf8e1
+PKG_REV:=01e2231fdc4fbec61fbc382238e3606a1d2826e4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=git://w1.fi/srv/git/hostap.git
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=git://w1.fi/srv/git/hostap.git
@@ -20,6 +20,7 @@ PKG_SOURCE_PROTO:=git
 # PKG_MIRROR_MD5SUM:=4e7c1f97edd7514535056fce54ae053a
 
 PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
 # PKG_MIRROR_MD5SUM:=4e7c1f97edd7514535056fce54ae053a
 
 PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
+PKG_LICENSE:=BSD-3-Clause
 
 PKG_BUILD_PARALLEL:=1
 
 
 PKG_BUILD_PARALLEL:=1
 
@@ -29,7 +30,7 @@ PKG_BUILD_DEPENDS:= \
 PKG_CONFIG_DEPENDS:= \
        CONFIG_WPA_SUPPLICANT_NO_TIMESTAMP_CHECK \
        CONFIG_PACKAGE_kmod-ath9k \
 PKG_CONFIG_DEPENDS:= \
        CONFIG_WPA_SUPPLICANT_NO_TIMESTAMP_CHECK \
        CONFIG_PACKAGE_kmod-ath9k \
-       CONFIG_PACKAGE_kmod-mac80211 \
+       CONFIG_PACKAGE_kmod-cfg80211 \
        CONFIG_PACKAGE_kmod-madwifi \
        CONFIG_PACKAGE_hostapd \
        CONFIG_PACKAGE_hostapd-mini \
        CONFIG_PACKAGE_kmod-madwifi \
        CONFIG_PACKAGE_hostapd \
        CONFIG_PACKAGE_hostapd-mini \
@@ -64,13 +65,12 @@ ifneq ($(CONFIG_DRIVER_11N_SUPPORT),)
 endif
 
 DRIVER_MAKEOPTS= \
 endif
 
 DRIVER_MAKEOPTS= \
-       CONFIG_DRIVER_NL80211=$(CONFIG_PACKAGE_kmod-mac80211) \
+       CONFIG_DRIVER_NL80211=$(CONFIG_PACKAGE_kmod-cfg80211) \
        CONFIG_DRIVER_MADWIFI=$(CONFIG_PACKAGE_kmod-madwifi) \
        CONFIG_DRIVER_HOSTAP=$(CONFIG_PACKAGE_kmod-hostap) \
        CONFIG_IEEE80211N=$(HOSTAPD_IEEE80211N) \
        CONFIG_IEEE80211W=$(CONFIG_PACKAGE_kmod-ath9k) \
        CONFIG_DRIVER_WEXT=$(CONFIG_DRIVER_WEXT_SUPPORT) \
        CONFIG_DRIVER_MADWIFI=$(CONFIG_PACKAGE_kmod-madwifi) \
        CONFIG_DRIVER_HOSTAP=$(CONFIG_PACKAGE_kmod-hostap) \
        CONFIG_IEEE80211N=$(HOSTAPD_IEEE80211N) \
        CONFIG_IEEE80211W=$(CONFIG_PACKAGE_kmod-ath9k) \
        CONFIG_DRIVER_WEXT=$(CONFIG_DRIVER_WEXT_SUPPORT) \
-       $(if $(CONFIG_WPA_RFKILL_SUPPORT),NEED_RFKILL=y)
 
 ifneq ($(LOCAL_TYPE),hostapd)
   ifdef CONFIG_WPA_SUPPLICANT_OPENSSL
 
 ifneq ($(LOCAL_TYPE),hostapd)
   ifdef CONFIG_WPA_SUPPLICANT_OPENSSL
@@ -82,15 +82,19 @@ ifneq ($(LOCAL_TYPE),hostapd)
   ifdef CONFIG_WPA_SUPPLICANT_NO_TIMESTAMP_CHECK
     TARGET_CFLAGS += -DNO_TIMESTAMP_CHECK
   endif
   ifdef CONFIG_WPA_SUPPLICANT_NO_TIMESTAMP_CHECK
     TARGET_CFLAGS += -DNO_TIMESTAMP_CHECK
   endif
+  ifdef CONFIG_WPA_RFKILL_SUPPORT)
+    DRIVER_MAKEOPTS += NEED_RFKILL=y
+  endif
   DRIVER_MAKEOPTS += \
        CONFIG_DRIVER_ROBOSWITCH=$(CONFIG_PACKAGE_kmod-switch)
 endif
 
 ifdef CONFIG_USE_EGLIBC
   TARGET_LDFLAGS += -lrt
   DRIVER_MAKEOPTS += \
        CONFIG_DRIVER_ROBOSWITCH=$(CONFIG_PACKAGE_kmod-switch)
 endif
 
 ifdef CONFIG_USE_EGLIBC
   TARGET_LDFLAGS += -lrt
+  TARGET_LDFLAGS_C += -lrt
 endif
 
 endif
 
-DRV_DEPENDS:=+PACKAGE_kmod-mac80211:libnl-tiny @(!TARGET_avr32||BROKEN)
+DRV_DEPENDS:=+PACKAGE_kmod-cfg80211:libnl-tiny @(!TARGET_avr32||BROKEN)
 
 define Package/hostapd/Default
   SECTION:=net
 
 define Package/hostapd/Default
   SECTION:=net
@@ -104,6 +108,7 @@ define Package/hostapd
 $(call Package/hostapd/Default)
   TITLE+= (full)
   VARIANT:=full
 $(call Package/hostapd/Default)
   TITLE+= (full)
   VARIANT:=full
+  CONFLICTS:=wpad wpad-mini
 endef
 
 define Package/hostapd/description
 endef
 
 define Package/hostapd/description
@@ -115,6 +120,7 @@ define Package/hostapd-mini
 $(call Package/hostapd/Default)
   TITLE+= (WPA-PSK only)
   VARIANT:=mini
 $(call Package/hostapd/Default)
   TITLE+= (WPA-PSK only)
   VARIANT:=mini
+  CONFLICTS:=wpad wpad-mini
 endef
 
 define Package/hostapd-mini/description
 endef
 
 define Package/hostapd-mini/description
@@ -168,6 +174,7 @@ define Package/wpa-supplicant
   TITLE:=WPA Supplicant
   URL:=http://hostap.epitest.fi/wpa_supplicant/
   DEPENDS:=$(DRV_DEPENDS) +WPA_SUPPLICANT_OPENSSL:libopenssl
   TITLE:=WPA Supplicant
   URL:=http://hostap.epitest.fi/wpa_supplicant/
   DEPENDS:=$(DRV_DEPENDS) +WPA_SUPPLICANT_OPENSSL:libopenssl
+  CONFLICTS:=wpad wpad-mini
   VARIANT:=supplicant-full
 endef
 
   VARIANT:=supplicant-full
 endef
 
@@ -183,6 +190,7 @@ define Package/wpa-supplicant-p2p
   $(Package/wpa-supplicant)
   TITLE:=WPA Supplicant (with Wi-Fi P2P support)
   DEPENDS:=$(DRV_DEPENDS)
   $(Package/wpa-supplicant)
   TITLE:=WPA Supplicant (with Wi-Fi P2P support)
   DEPENDS:=$(DRV_DEPENDS)
+  CONFLICTS:=wpad wpad-mini
   VARIANT:=supplicant-p2p
 endef
 
   VARIANT:=supplicant-p2p
 endef
 
@@ -194,6 +202,7 @@ define Package/wpa-supplicant-mini
   $(Package/wpa-supplicant)
   TITLE:=WPA Supplicant (minimal version)
   DEPENDS:=$(DRV_DEPENDS)
   $(Package/wpa-supplicant)
   TITLE:=WPA Supplicant (minimal version)
   DEPENDS:=$(DRV_DEPENDS)
+  CONFLICTS:=wpad wpad-mini
   VARIANT:=supplicant-mini
 endef
 
   VARIANT:=supplicant-mini
 endef
 
@@ -224,6 +233,15 @@ define Package/hostapd-common-old
   CATEGORY:=Network
 endef
 
   CATEGORY:=Network
 endef
 
+define Package/eapol-test
+  TITLE:=802.1x authentication test utility
+  SECTION:=net
+  CATEGORY:=Network
+  VARIANT:=supplicant-full
+  DEPENDS:=$(DRV_DEPENDS)
+endef
+
+
 ifneq ($(wildcard $(PKG_BUILD_DIR)/.config_*),$(subst .configured_,.config_,$(STAMP_CONFIGURED)))
   define Build/Configure/rebuild
        $(FIND) $(PKG_BUILD_DIR) -name \*.o -or -name \*.a | $(XARGS) rm -f
 ifneq ($(wildcard $(PKG_BUILD_DIR)/.config_*),$(subst .configured_,.config_,$(STAMP_CONFIGURED)))
   define Build/Configure/rebuild
        $(FIND) $(PKG_BUILD_DIR) -name \*.o -or -name \*.a | $(XARGS) rm -f
@@ -257,7 +275,7 @@ ifeq ($(findstring supplicant,$(BUILD_VARIANT)),)
   TARGET_LDFLAGS += -lubox -lubus
 endif
 
   TARGET_LDFLAGS += -lubox -lubus
 endif
 
-ifdef CONFIG_PACKAGE_kmod-mac80211
+ifdef CONFIG_PACKAGE_kmod-cfg80211
   TARGET_LDFLAGS += -lm -lnl-tiny
 endif
 
   TARGET_LDFLAGS += -lm -lnl-tiny
 endif
 
@@ -267,7 +285,7 @@ define Build/RunMake
                $(TARGET_CONFIGURE_OPTS) \
                $(DRIVER_MAKEOPTS) \
                LIBS="$(TARGET_LDFLAGS)" \
                $(TARGET_CONFIGURE_OPTS) \
                $(DRIVER_MAKEOPTS) \
                LIBS="$(TARGET_LDFLAGS)" \
-               LIBS_c="" \
+               LIBS_c="$(TARGET_LDFLAGS_C)" \
                BCHECK= \
                $(2)
 endef
                BCHECK= \
                $(2)
 endef
@@ -276,7 +294,7 @@ define Build/Compile/wpad
        echo ` \
                $(call Build/RunMake,hostapd,-s MULTICALL=1 dump_cflags); \
                $(call Build/RunMake,wpa_supplicant,-s MULTICALL=1 dump_cflags) | \
        echo ` \
                $(call Build/RunMake,hostapd,-s MULTICALL=1 dump_cflags); \
                $(call Build/RunMake,wpa_supplicant,-s MULTICALL=1 dump_cflags) | \
-               sed -e 's,-n ,,g' -e 's,$(TARGET_CFLAGS),,' \
+               sed -e 's,-n ,,g' -e 's^$(TARGET_CFLAGS)^^' \
        ` > $(PKG_BUILD_DIR)/.cflags
        +$(call Build/RunMake,hostapd, \
                CFLAGS="$$$$(cat $(PKG_BUILD_DIR)/.cflags)" \
        ` > $(PKG_BUILD_DIR)/.cflags
        +$(call Build/RunMake,hostapd, \
                CFLAGS="$$$$(cat $(PKG_BUILD_DIR)/.cflags)" \
@@ -308,8 +326,15 @@ define Build/Compile/supplicant
        )
 endef
 
        )
 endef
 
+define Build/Compile/supplicant-full
+       $(call Build/RunMake,wpa_supplicant, \
+               eapol_test \
+       )
+endef
+
 define Build/Compile
        $(Build/Compile/$(LOCAL_TYPE))
 define Build/Compile
        $(Build/Compile/$(LOCAL_TYPE))
+       $(Build/Compile/$(BUILD_VARIANT))
 endef
 
 define Install/hostapd
 endef
 
 define Install/hostapd
@@ -349,8 +374,8 @@ define Package/wpad/install
        $(call Install/hostapd,$(1))
        $(call Install/supplicant,$(1))
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/wpad $(1)/usr/sbin/
        $(call Install/hostapd,$(1))
        $(call Install/supplicant,$(1))
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/wpad $(1)/usr/sbin/
-       ln -sf wpad $(1)/usr/sbin/hostapd
-       ln -sf wpad $(1)/usr/sbin/wpa_supplicant
+       $(LN) wpad $(1)/usr/sbin/hostapd
+       $(LN) wpad $(1)/usr/sbin/wpa_supplicant
 endef
 Package/wpad-mini/install = $(Package/wpad/install)
 
 endef
 Package/wpad-mini/install = $(Package/wpad/install)
 
@@ -368,6 +393,13 @@ ifneq ($(LOCAL_TYPE),hostapd)
   endef
 endif
 
   endef
 endif
 
+ifeq ($(BUILD_VARIANT),supplicant-full)
+  define Package/eapol-test/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(CP) $(PKG_BUILD_DIR)/wpa_supplicant/eapol_test $(1)/usr/sbin/
+  endef
+endif
+
 $(eval $(call BuildPackage,hostapd))
 $(eval $(call BuildPackage,hostapd-mini))
 $(eval $(call BuildPackage,wpad))
 $(eval $(call BuildPackage,hostapd))
 $(eval $(call BuildPackage,hostapd-mini))
 $(eval $(call BuildPackage,wpad))
@@ -379,3 +411,4 @@ $(eval $(call BuildPackage,wpa-cli))
 $(eval $(call BuildPackage,hostapd-utils))
 $(eval $(call BuildPackage,hostapd-common))
 $(eval $(call BuildPackage,hostapd-common-old))
 $(eval $(call BuildPackage,hostapd-utils))
 $(eval $(call BuildPackage,hostapd-common))
 $(eval $(call BuildPackage,hostapd-common-old))
+$(eval $(call BuildPackage,eapol-test))