Convert wpa_supplicant related module to soong
The conversion skip those condition which not belong to Android to
simplify the conversion, you can reference aosp/3218836 for those unused
if condition in Android.mk which is not put in the CL to preveninting
merge conflict. Also skip hostapd_noaidl due to seems there's no other
place reference it.
Bug: 325571506
Test: m hostapd_cli hostapd libhostapd_aidl wpa_cli wpa_supplicant \
wpa_supplicant_macsec libwpa_client libwpa_aidl libpasn
Flag: EXEMPT refactor
Change-Id: Ic41de8907377144b9aa94322bbfa3ae2667649c9
diff --git a/hostapd/Android.bp b/hostapd/Android.bp
index fb414d0..4f76a30 100644
--- a/hostapd/Android.bp
+++ b/hostapd/Android.bp
@@ -362,3 +362,345 @@
relative_install_path: "vintf",
installable: false,
}
+
+// For converting the default to soong
+cc_defaults {
+ name: "hostapd_driver_srcs_default",
+ srcs: [
+ "src/drivers/driver_nl80211.c",
+ "src/drivers/driver_nl80211_android.c",
+ "src/drivers/driver_nl80211_capa.c",
+ "src/drivers/driver_nl80211_event.c",
+ "src/drivers/driver_nl80211_monitor.c",
+ "src/drivers/driver_nl80211_scan.c",
+ "src/drivers/linux_ioctl.c",
+ "src/drivers/netlink.c",
+ "src/drivers/rfkill.c",
+ "src/utils/radiotap.c",
+ ],
+}
+
+cc_defaults {
+ name: "hostapd_driver_cflags_default",
+ cflags: [
+ "-DCONFIG_DRIVER_NL80211",
+ ] + select(soong_config_variable("wpa_supplicant_8", "board_wlan_device"), {
+ "bcmdhd": ["-DCONFIG_DRIVER_NL80211_BRCM"],
+ "synadhd": ["-DCONFIG_DRIVER_NL80211_SYNA"],
+ default: ["-DCONFIG_DRIVER_NL80211_QCA"],
+ }),
+}
+
+soong_config_module_type {
+ name: "hostapd_cc_defaults_type",
+ module_type: "cc_defaults",
+ config_namespace: "wpa_supplicant_8",
+ value_variables: [
+ "platform_version",
+ ],
+ properties: ["cflags"],
+}
+
+// Hostap related module share the same CFLAGS
+hostapd_cc_defaults_type {
+ name: "hostapd_cflags_default",
+ cflags: [
+ "-DWPA_IGNORE_CONFIG_ERRORS",
+ "-DANDROID_LOG_NAME=\"hostapd\"",
+ "-Wall",
+ "-Werror",
+ "-Wno-unused-parameter",
+ "-Wno-unused-variable",
+ "-Wno-macro-redefined",
+ "-DANDROID_P2P",
+ "-DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/vendor/wifi/hostapd/sockets\"",
+ "-DCONFIG_CTRL_IFACE_DIR=\"/data/vendor/wifi/hostapd/ctrl\"",
+ "-DCONFIG_HOSTAPD_CLI_HISTORY_DIR=\"/data/vendor/wifi/hostapd\"",
+ "-DHOSTAPD",
+ "-DHOSTAPD_DUMP_STATE",
+ "-DCONFIG_NO_RADIUS",
+ "-DCONFIG_NO_ACCOUNTING",
+ "-DCONFIG_CTRL_IFACE",
+ "-DCONFIG_CTRL_IFACE_UNIX",
+ "-DCONFIG_SAE",
+ "-DCONFIG_IEEE80211AC",
+ "-DCONFIG_WEP",
+ "-DCONFIG_WPS",
+ "-DEAP_SERVER_WSC",
+ "-DCONFIG_DPP",
+ "-DEAP_SERVER_IDENTITY",
+ "-DEAP_SERVER",
+ "-DPKCS12_FUNCS",
+ "-DCRYPTO_RSA_OAEP_SHA256",
+ "-DTLS_DEFAULT_CIPHERS=\"DEFAULT:!EXP:!LOW\"",
+ "-DCONFIG_SHA256",
+ "-DCONFIG_SHA384",
+ "-DCONFIG_SHA512",
+ "-DCONFIG_ECC",
+ "-DCONFIG_NO_RANDOM_POOL",
+ "-DCONFIG_IPV6",
+ "-DCONFIG_JSON",
+ "-DNEED_AP_MLME",
+ "-DCONFIG_INTERWORKING",
+ "-DCONFIG_ACS",
+ "-DCONFIG_ANDROID_LOG",
+ "-DCONFIG_CTRL_IFACE_AIDL",
+ ] + select(soong_config_variable("wpa_supplicant_8", "hostapd_use_stub_lib"), {
+ true: ["-DANDROID_LIB_STUB"],
+ default: [],
+ }) + select(soong_config_variable("wpa_supplicant_8", "hostapd_11ax"), {
+ true: ["-DCONFIG_IEEE80211AX"],
+ default: [],
+ }) + select(soong_config_variable("wpa_supplicant_8", "board_hostapd_config_80211w_mfp_optional"), {
+ true: ["-DENABLE_HOSTAPD_CONFIG_80211W_MFP_OPTIONAL"],
+ default: [],
+ }) + select(soong_config_variable("wpa_supplicant_8", "board_hostapd_private_lib_event"), {
+ true: ["-DANDROID_LIB_EVENT"],
+ default: [],
+ }),
+ arch: {
+ arm: {
+ cflags: [
+ "-mabi=aapcs-linux",
+ ],
+ },
+ },
+ defaults: [
+ "hostapd_driver_cflags_default",
+ ],
+ soong_config_variables: {
+ platform_version: {
+ cflags: ["-DVERSION_STR_POSTFIX=\"-%s\""],
+ },
+ },
+ enabled: select(soong_config_variable("wpa_supplicant_8", "wpa_build_hostapd"), {
+ true: true,
+ default: false,
+ }),
+}
+
+cc_defaults {
+ name: "hostapd_includes_default",
+ local_include_dirs: [
+ ".",
+ "src",
+ "src/utils",
+ ],
+ include_dirs: [
+ // There's an if condition for external/libnl but current code base should always have this.
+ "external/libnl/include",
+ "system/security/keystore/include",
+ ],
+}
+
+cc_defaults {
+ name: "hostapd_srcs_default",
+ srcs: [
+ "main.c",
+ "config_file.c",
+ "src/ap/hostapd.c",
+ "src/ap/wpa_auth_glue.c",
+ "src/ap/drv_callbacks.c",
+ "src/ap/ap_drv_ops.c",
+ "src/ap/utils.c",
+ "src/ap/authsrv.c",
+ "src/ap/ieee802_1x.c",
+ "src/ap/ap_config.c",
+ "src/ap/eap_user_db.c",
+ "src/ap/ieee802_11_auth.c",
+ "src/ap/sta_info.c",
+ "src/ap/wpa_auth.c",
+ "src/ap/tkip_countermeasures.c",
+ "src/ap/ap_mlme.c",
+ "src/ap/wpa_auth_ie.c",
+ "src/ap/preauth_auth.c",
+ "src/ap/pmksa_cache_auth.c",
+ "src/ap/ieee802_11_shared.c",
+ "src/ap/beacon.c",
+ "src/ap/bss_load.c",
+ "src/ap/neighbor_db.c",
+ "src/ap/rrm.c",
+ "src/drivers/drivers.c",
+ "src/utils/eloop.c",
+ "src/utils/common.c",
+ "src/utils/wpa_debug.c",
+ "src/utils/wpabuf.c",
+ "src/utils/os_unix.c",
+ "src/utils/ip_addr.c",
+ "src/utils/crc32.c",
+ "src/common/ieee802_11_common.c",
+ "src/common/wpa_common.c",
+ "src/common/hw_features_common.c",
+ "src/common/ptksa_cache.c",
+ "src/eapol_auth/eapol_auth_sm.c",
+ "src/eapol_auth/eapol_auth_dump.c",
+ "src/ap/vlan_init.c",
+ "src/ap/vlan_ifconfig.c",
+ "src/ap/vlan.c",
+ "src/common/ctrl_iface_common.c",
+ "ctrl_iface.c",
+ "src/ap/ctrl_iface_ap.c",
+ "src/common/sae.c",
+ "src/l2_packet/l2_packet_none.c",
+ "src/utils/uuid.c",
+ "src/ap/wps_hostapd.c",
+ "src/eap_server/eap_server_wsc.c",
+ "src/eap_common/eap_wsc_common.c",
+ "src/wps/wps.c",
+ "src/wps/wps_common.c",
+ "src/wps/wps_attr_parse.c",
+ "src/wps/wps_attr_build.c",
+ "src/wps/wps_attr_process.c",
+ "src/wps/wps_dev_attr.c",
+ "src/wps/wps_enrollee.c",
+ "src/wps/wps_registrar.c",
+ "src/common/dpp.c",
+ "src/common/dpp_auth.c",
+ "src/common/dpp_backup.c",
+ "src/common/dpp_crypto.c",
+ "src/common/dpp_pkex.c",
+ "src/common/dpp_reconfig.c",
+ "src/common/dpp_tcp.c",
+ "src/ap/dpp_hostapd.c",
+ "src/ap/gas_query_ap.c",
+ "eap_register.c",
+ "src/eap_server/eap_server.c",
+ "src/eap_common/eap_common.c",
+ "src/eap_server/eap_server_methods.c",
+ "src/eap_server/eap_server_identity.c",
+ "src/common/dragonfly.c",
+ "src/crypto/crypto_openssl.c",
+ "src/crypto/tls_none.c",
+ "src/crypto/aes-siv.c",
+ "src/crypto/aes-ctr.c",
+ "src/crypto/sha1-prf.c",
+ "src/crypto/sha256-prf.c",
+ "src/crypto/sha256-tlsprf.c",
+ "src/crypto/sha256-kdf.c",
+ "src/crypto/sha384-kdf.c",
+ "src/crypto/sha512-kdf.c",
+ "src/crypto/sha384-prf.c",
+ "src/crypto/sha512-prf.c",
+ "src/tls/asn1.c",
+ "src/crypto/dh_groups.c",
+ "src/utils/base64.c",
+ "src/utils/json.c",
+ "src/ap/wmm.c",
+ "src/ap/ap_list.c",
+ "src/ap/comeback_token.c",
+ "src/pasn/pasn_common.c",
+ "src/pasn/pasn_responder.c",
+ "src/ap/ieee802_11.c",
+ "src/ap/hw_features.c",
+ "src/ap/dfs.c",
+ "src/ap/ieee802_11_ht.c",
+ "src/ap/ieee802_11_vht.c",
+ "src/common/gas.c",
+ "src/ap/gas_serv.c",
+ "src/drivers/driver_common.c",
+ "src/ap/acs.c",
+ ] + select(soong_config_variable("wpa_supplicant_8", "hostapd_11ax"), {
+ true: ["src/ap/ieee802_11_he.c"],
+ default: [],
+ }),
+ defaults: [
+ "hostapd_driver_srcs_default",
+ ],
+}
+
+cc_binary {
+ name: "hostapd_cli",
+ proprietary: true,
+ srcs: [
+ "hostapd_cli.c",
+ "src/common/cli.c",
+ "src/common/wpa_ctrl.c",
+ "src/utils/common.c",
+ "src/utils/edit.c",
+ "src/utils/eloop.c",
+ "src/utils/os_unix.c",
+ "src/utils/wpa_debug.c",
+ ],
+ shared_libs: [
+ "libc",
+ "libcutils",
+ "liblog",
+ ],
+ defaults: [
+ "hostapd_cflags_default",
+ "hostapd_includes_default",
+ ],
+}
+
+soong_config_module_type {
+ name: "hostapd_cc_binary",
+ module_type: "cc_binary",
+ config_namespace: "wpa_supplicant_8",
+ value_variables: [
+ "board_hostapd_private_lib",
+ ],
+ properties: ["static_libs"],
+}
+
+hostapd_cc_binary {
+ name: "hostapd",
+ proprietary: true,
+ relative_install_path: "hw",
+ //vintf_fragments: ["android.hardware.wifi.hostapd.xml"],
+ required: [
+ "android.hardware.wifi.hostapd.xml",
+ ],
+ static_libs: [
+ "libhostapd_aidl",
+ ],
+ shared_libs: [
+ "libc",
+ "libcutils",
+ "liblog",
+ "libcrypto",
+ "libssl",
+ "libnl",
+ "android.hardware.wifi.hostapd-V3-ndk",
+ "android.hardware.wifi.common-V2-ndk",
+ "libbase",
+ "libutils",
+ "libbinder_ndk",
+ ],
+ init_rc: ["hostapd.android.rc"],
+ defaults: [
+ "hostapd_srcs_default",
+ "hostapd_cflags_default",
+ "hostapd_includes_default",
+ ],
+ soong_config_variables: {
+ board_hostapd_private_lib: {
+ static_libs: ["%s"],
+ },
+ },
+}
+
+cc_library_static {
+ name: "libhostapd_aidl",
+ soc_specific: true,
+ srcs: [
+ "aidl/aidl.cpp",
+ "aidl/hostapd.cpp",
+ ],
+ shared_libs: [
+ "android.hardware.wifi.hostapd-V3-ndk",
+ "android.hardware.wifi.common-V2-ndk",
+ "libbinder_ndk",
+ "libbase",
+ "libutils",
+ "liblog",
+ ],
+ export_include_dirs: ["aidl"],
+ cppflags: [
+ "-Wall",
+ "-Werror",
+ ],
+ defaults: [
+ "hostapd_cflags_default",
+ "hostapd_includes_default",
+ ],
+}