Whitelist windows modules

And stop changing variables based on HOST_OS.

Bug: 23566667
Change-Id: I3b3b2f0aef066eb224cb1fa6f2e9f32c32695711
diff --git a/Android.mk b/Android.mk
index 9487b30..e904263 100644
--- a/Android.mk
+++ b/Android.mk
@@ -49,30 +49,29 @@
 
 # Host static library
 include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
+LOCAL_IS_HOST_MODULE := true
 LOCAL_MODULE := libcrypto_static
+LOCAL_MODULE_HOST_OS := darwin linux windows
 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/src/include
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk $(LOCAL_PATH)/crypto-sources.mk
 LOCAL_CFLAGS = -Wno-unused-parameter
 # Windows and Macs both have problems with assembly files
-ifneq ($(HOST_OS),linux)
-LOCAL_CFLAGS += -DOPENSSL_NO_ASM
-endif
+LOCAL_CFLAGS_darwin += -DOPENSSL_NO_ASM
+LOCAL_CFLAGS_windows += -DOPENSSL_NO_ASM
 include $(LOCAL_PATH)/crypto-sources.mk
 include $(BUILD_HOST_STATIC_LIBRARY)
 
 # Host shared library
 include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
+LOCAL_IS_HOST_MODULE := true
 LOCAL_MODULE := libcrypto-host
 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
 LOCAL_MULTILIB := both
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk $(LOCAL_PATH)/crypto-sources.mk
 LOCAL_CFLAGS += -fvisibility=hidden -DBORINGSSL_SHARED_LIBRARY -DBORINGSSL_IMPLEMENTATION -Wno-unused-parameter
 # Windows and Macs both have problems with assembly files
-ifneq ($(HOST_OS),linux)
-LOCAL_CFLAGS += -DOPENSSL_NO_ASM
-endif
+LOCAL_CFLAGS_darwin += -DOPENSSL_NO_ASM
+LOCAL_CFLAGS_windows += -DOPENSSL_NO_ASM
 include $(LOCAL_PATH)/crypto-sources.mk
 include $(BUILD_HOST_SHARED_LIBRARY)
 
diff --git a/crypto-sources.mk b/crypto-sources.mk
index 78194f2..7d9319c 100644
--- a/crypto-sources.mk
+++ b/crypto-sources.mk
@@ -3,10 +3,13 @@
 
 LOCAL_CFLAGS += -I$(LOCAL_PATH)/src/include -I$(LOCAL_PATH)/src/crypto -Wno-unused-parameter
 # Do not add in the architecture-specific files if we don't want to build assembly
-ifeq (,$(filter -DOPENSSL_NO_ASM,$(LOCAL_CFLAGS)))
-LOCAL_SRC_FILES_x86 = $(linux_x86_sources)
-LOCAL_SRC_FILES_x86_64 = $(linux_x86_64_sources)
-LOCAL_SRC_FILES_arm = $(linux_arm_sources)
-LOCAL_SRC_FILES_arm64 = $(linux_aarch64_sources)
+ifeq ($(LOCAL_IS_HOST_MODULE),true)
+LOCAL_SRC_FILES_linux_x86 := $(linux_x86_sources)
+LOCAL_SRC_FILES_linux_x86_64 := $(linux_x86_64_sources)
+else
+LOCAL_SRC_FILES_x86 := $(linux_x86_sources)
+LOCAL_SRC_FILES_x86_64 := $(linux_x86_64_sources)
+LOCAL_SRC_FILES_arm := $(linux_arm_sources)
+LOCAL_SRC_FILES_arm64 := $(linux_aarch64_sources)
 endif
 LOCAL_SRC_FILES += $(crypto_sources)