2016-10-21 24 views
0

我正在使用ndk-build構建庫的bucnh。在某些時候,一個MK文件可能被包含兩次,因爲它進口的第三方庫,我保護的雙進口使用全局變量:Android makefiles:如何「提前回歸」?

# Importing nlopt! 
# Prevent warnings reporting module was imported twice: 
ifneq ($(imported_nlopt_$(TARGET_ARCH_ABI)),true) 
    imported_nlopt_$(TARGET_ARCH_ABI) := true 
    ifeq ($(APP_OPTIM),debug) 
     # Importing static library nlopt_debug: 
      include $(CLEAR_VARS) 
      LOCAL_MODULE := nlopt_debug 
      LOCAL_SRC_FILES := nlopt/nlopt-2.4.2/lib/$(PLATFORM)/$(COMPILER)/Debug/$(LIB_PREFIX)nlopt$(DEBUG_INFIX)$(DYNAMIC_LINK_EXT) 
      include $(PREBUILT_SHARED_LIBRARY) 
    else 
     # Importing static library nlopt_release: 
      include $(CLEAR_VARS) 
      LOCAL_MODULE := nlopt_release 
      LOCAL_SRC_FILES := nlopt/nlopt-2.4.2/lib/$(PLATFORM)/$(COMPILER)/Release/$(LIB_PREFIX)nlopt$(DYNAMIC_LINK_EXT) 
      include $(PREBUILT_SHARED_LIBRARY) 
    endif 
else 
    $(info "NLOPT already imported!") 
endif 

我需要做到這一點在許多地方,它開始是煩人我整個文件在if聲明中。

makefile中支持「早期回報」嗎?我可以做些什麼:

ifeq ($(imported_nlopt_$(TARGET_ARCH_ABI)),true) 
    return 
endif 

imported_nlopt_$(TARGET_ARCH_ABI) := true 
... 

return當我執行此操作時無法識別。

+0

AFAIK nope。沒有這樣的東西在做。 – Hayt

回答

0

幸運的是,在Android.mk中,僅保護語句include $(BUILD_SHARED_LIBRARY)等已足夠