// Copyright (C) 2021 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// The hostapd related modules are split into 2 sections:
// 1. For cuttlefish series products, start from `hostapd_headers` to `hostapd_cli_srcs`.
// 2. For non-cuttlefish series products, ex: physical devices created by oems,
//    the section starts from `hostapd_driver_srcs_default` to the end of this file.

package {
    default_applicable_licenses: [
        "external_wpa_supplicant_8_license",
        "external_wpa_supplicant_8_hostapd_license",
    ],
}

license {
    name: "external_wpa_supplicant_8_hostapd_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-BSD-3-Clause",
        "SPDX-license-identifier-ISC",
        "legacy_unencumbered",
    ],
}

// The section below is for cuttlefish series products. For non-cuttlefish
// products please update the section starting at `hostapd_driver_srcs_default`.
// Start of cuttlefish section.
cc_library_headers {
    name: "hostapd_headers",
    export_include_dirs: [
        ".",
        "src",
        "src/utils",
    ],
    soc_specific: true,
}

cc_defaults {
    name: "hostapd_defaults",
    defaults: ["hostapd_cflags_defaults"],
    srcs: [":hostapd_srcs"],
    shared_libs: [
        "android.hardware.wifi.hostapd-V3-ndk",
        "libbase",
        "libutils",
        "libbinder_ndk",
        "libc",
        "libcutils",
        "liblog",
        "libcrypto",
        "libssl",
        "libnl",
    ],
    relative_install_path: "hw",
    soc_specific: true,
    static_libs: [
        "libhostapd_aidl_bp",
    ],
    header_libs: [
        "hostapd_headers",
        "libhostapd_aidl_headers",
    ],
}

cc_defaults {
    name: "hostapd_cflags_defaults",
    // Generated by building hostapd and printing LOCAL_CFLAGS.
    cflags: [
        "-DWPA_IGNORE_CONFIG_ERRORS",
        "-DANDROID_LOG_NAME=\"hostapd\"",
        "-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_SUITEB",
        "-DCONFIG_SUITEB192",
        "-DCONFIG_IEEE80211R",
        "-DCONFIG_IEEE80211R_AP",
        "-DCONFIG_ETH_P_OUI",
        "-DCONFIG_SAE",
        "-DCONFIG_SAE_PK",
        "-DCONFIG_OWE",
        "-DCONFIG_FILS",
        "-DCONFIG_WNM",
        "-DCONFIG_WNM_AP",
        "-DCONFIG_IEEE80211AC",
        "-DCONFIG_MBO",
        "-DCONFIG_WEP",
        "-DCONFIG_DRIVER_NL80211",
        "-DEAP_SERVER_MD5",
        "-DEAP_SERVER_TLS",
        "-DEAP_SERVER_PEAP",
        "-DEAP_SERVER_TTLS",
        "-DEAP_SERVER_MSCHAPV2",
        "-DEAP_SERVER_GTC",
        "-DEAP_SERVER_SIM",
        "-DEAP_SERVER_AKA",
        "-DEAP_SERVER_AKA_PRIME",
        "-DEAP_SERVER_PWD",
        "-DCONFIG_WPS",
        "-DEAP_SERVER_WSC",
        "-DCONFIG_WPS_NFC",
        "-DCONFIG_WPS_OOB",
        "-DCONFIG_DPP",
        "-DCONFIG_DPP2",
        "-DEAP_SERVER_IDENTITY",
        "-DEAP_SERVER",
        "-DPKCS12_FUNCS",
        "-DEAP_TLS_FUNCS",
        "-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_HS20",
        "-DCONFIG_INTERWORKING",
        "-DCONFIG_PROXYARP",
        "-DCONFIG_ACS",
        "-DCONFIG_ANDROID_LOG",
        "-DCONFIG_CTRL_IFACE_AIDL",
        "-Wall",
        "-Werror",
        "-Wno-unused-parameter",
        "-Wno-unused-variable",
        "-Wno-macro-redefined",
    ] +
        // Devices that include this module should set these soong config vars appropriately.
        // For example:
        //   $(call soong_config_set, hostapd, platform_version, $(PLATFORM_VERSION))
        //   $(call soong_config_set, hostapd, nl80211_driver, CONFIG_DRIVER_NL80211_QCA)
        select(soong_config_variable("hostapd", "platform_version"), {
            any @ version: ["-DVERSION_STR_POSTFIX=\"-" + version + "\""],
            default: ["-DVERSION_STR_POSTFIX=\"-Android\""],
        }) +
        select(soong_config_variable("hostapd", "nl80211_driver"), {
            any @ driver: ["-D" + driver],
            // Flag is optional, so no default value provided.
            default: [],
        }),

    // Similar to suppressing clang compiler warnings, here we
    // suppress clang-tidy warnings to reduce noises in Android build.log.
    tidy_checks: [
        "-android-cloexec-*",
        "-bugprone-branch-clone",
        "-bugprone-macro-parentheses",
        "-bugprone-misplaced-widening-cast",
        "-bugprone-signal-handler",
        "-bugprone-signed-char-misuse",
        "-bugprone-sizeof-expression",
        "-bugprone-suspicious-string-compare",
        "-bugprone-too-small-loop-variable",
        "-cert-err34-c",
        "-cert-msc30-c",
        "-cert-msc50-cpp",
        "-cert-msc54-cpp",
        "-cert-sig30-c",
        "-cert-str34-c",
        "-clang-analyzer-core.NullDereference",
        "-clang-analyzer-core.UndefinedBinaryOperatorResult",
        "-clang-analyzer-deadcode.DeadStores",
        "-clang-analyzer-optin.performance.Padding",
        "-clang-analyzer-optin.portability.UnixAPI",
        "-clang-analyzer-security.insecureAPI.UncheckedReturn",
        "-clang-analyzer-unix.cstring.NullArg",
        "-clang-analyzer-unix.Malloc",
        "-clang-diagnostic-unused-but-set-variable",
        "-misc-redundant-expression",
    ],
}

// Generated by building hostapd and printing LOCAL_SRC_FILES.
filegroup {
    name: "hostapd_srcs",
    srcs: [
        "main.c",
        "config_file.c",
        "ctrl_iface.c",
        "eap_register.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",
        "src/ap/ctrl_iface_ap.c",
        "src/ap/wpa_auth_ft.c",
        "src/ap/eth_p_oui.c",
        "src/common/sae.c",
        "src/common/sae_pk.c",
        "src/ap/fils_hlp.c",
        "src/ap/wnm_ap.c",
        "src/ap/mbo_ap.c",
        "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/netlink.c",
        "src/drivers/rfkill.c",
        "src/utils/radiotap.c",
        "src/drivers/linux_ioctl.c",
        "src/l2_packet/l2_packet_linux.c",
        "src/eap_server/eap_server_md5.c",
        "src/eap_server/eap_server_tls.c",
        "src/eap_server/eap_server_peap.c",
        "src/eap_common/eap_peap_common.c",
        "src/eap_server/eap_server_ttls.c",
        "src/eap_server/eap_server_mschapv2.c",
        "src/eap_server/eap_server_gtc.c",
        "src/eap_server/eap_server_sim.c",
        "src/eap_server/eap_server_aka.c",
        "src/eap_common/eap_sim_common.c",
        "src/eap_server/eap_sim_db.c",
        "src/eap_server/eap_server_pwd.c",
        "src/eap_common/eap_pwd_common.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/wps/ndef.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",
        "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/ms_funcs.c",
        "src/eap_common/chap.c",
        "src/eap_server/eap_server_tls_common.c",
        "src/crypto/tls_openssl.c",
        "src/crypto/tls_openssl_ocsp.c",
        "src/crypto/crypto_openssl.c",
        "src/crypto/fips_prf_openssl.c",
        "src/crypto/aes-siv.c",
        "src/crypto/aes-ctr.c",
        "src/crypto/sha1-prf.c",
        "src/crypto/sha1-tlsprf.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_responder.c",
        "src/pasn/pasn_common.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/ap/hs20.c",
        "src/common/gas.c",
        "src/ap/gas_serv.c",
        "src/ap/x_snoop.c",
        "src/ap/dhcp_snoop.c",
        "src/ap/ndisc_snoop.c",
        "src/drivers/driver_common.c",
        "src/ap/acs.c",
    ],

}

// This manifest can used by a vendor apex module for hostapd as well.
vintf_fragment {
    name: "android.hardware.wifi.hostapd.xml",
    src: "android.hardware.wifi.hostapd.xml",
    soc_specific: true,
}

// Generated by building hostapd_cli and printing LOCAL_SRC_FILES
filegroup {
    name: "hostapd_cli_srcs",
    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",
    ],
}

prebuilt_etc {
    name: "android.hardware.wifi.hostapd.xml.prebuilt",
    src: "android.hardware.wifi.hostapd.xml",
    relative_install_path: "vintf",
    installable: false,
}

// End of cuttlefish section.

// The section starting below is for non-cuttlefish products.
// For cuttlefish series please update the section starting from `hostapd_headers`.

// If you need to add a new build setting based on a product config, ex:
// ifeq ($(BOARD_HOSTAPD_CONFIG_80211W_MFP_OPTIONAL),true)
//   L_CFLAGS += -DENABLE_HOSTAPD_CONFIG_80211W_MFP_OPTIONAL
// endif

// In order to export the Makefile variable to soong, you will need to use a `soong_config_set` method
// under `build/core/board_config_wpa_supplicant.mk`. Ex:
// ifeq ($(BOARD_HOSTAPD_CONFIG_80211W_MFP_OPTIONAL),true)
//   $(call soong_config_set_bool,wpa_supplicant_8,board_hostapd_config_80211w_mfp_optional,true)
// endif

// And then use the select statement in Android.bp to reflect the condition you need, ex:
// select(soong_config_variable("wpa_supplicant_8", "board_hostapd_config_80211w_mfp_optional"), {
//     true: ["-DENABLE_HOSTAPD_CONFIG_80211W_MFP_OPTIONAL"],
//     default: [],
// })

// Start of non-cuttlefish section
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", "hostapd_11be"), {
        true: ["-DCONFIG_IEEE80211BE"],
        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: [],
    }) +
    select(soong_config_variable("wpa_supplicant_8", "hostapd_11be"), {
        true: ["src/ap/ieee802_11_eht.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",
    ],
}

// End of non-cuttlefish section
