From f6e01adab7ed2adbdc8f07b855d1ae4669c607c9 Mon Sep 17 00:00:00 2001
From: sapier <Sapier at GMX dot net>
Date: Mon, 7 Jul 2014 23:10:26 +0200
Subject: [PATCH] Makefile support for build without leveldb

---
 build/android/Makefile       | 13 +++++++++++--
 build/android/jni/Android.mk | 30 ++++++++++++++++++------------
 2 files changed, 29 insertions(+), 14 deletions(-)

diff --git a/build/android/Makefile b/build/android/Makefile
index 6528e839c..ba6ab3b74 100644
--- a/build/android/Makefile
+++ b/build/android/Makefile
@@ -36,6 +36,7 @@ TARGET_TOOLCHAIN = arm-linux-androideabi-
 TARGET_CFLAGS_ADDON = -mfloat-abi=softfp -mfpu=vfp
 CROSS_PREFIX = arm-linux-androideabi-
 COMPILER_VERSION = 4.8
+HAVE_LEVELDB = 1
 
 ################################################################################
 # toolchain config for arm new processors
@@ -50,6 +51,7 @@ COMPILER_VERSION = 4.8
 #TARGET_LDFLAGS_ADDON = -Wl,--no-warn-mismatch -lm_hard
 #CROSS_PREFIX = arm-linux-androideabi-
 #COMPILER_VERSION = 4.8
+#HAVE_LEVELDB = 1
 
 ################################################################################
 # toolchain config for little endian mips
@@ -60,6 +62,7 @@ COMPILER_VERSION = 4.8
 #TARGET_TOOLCHAIN = mipsel-linux-android-
 #CROSS_PREFIX = mipsel-linux-android-
 #COMPILER_VERSION = 4.8
+#HAVE_LEVELDB = 0
 
 ################################################################################
 # toolchain config for x86
@@ -70,6 +73,7 @@ COMPILER_VERSION = 4.8
 #TARGET_TOOLCHAIN = x86-
 #CROSS_PREFIX = i686-linux-android-
 #COMPILER_VERSION = 4.8
+#HAVE_LEVELDB = 1
 
 ################################################################################
 ASSETS_TIMESTAMP = deps/assets_timestamp
@@ -135,6 +139,11 @@ FREETYPE_URL_GIT = https://github.com/cdave1/freetype2-android
 	$(IRRLICHT_TIMESTAMP) $(CURL_TIMESTAMP) \
 	$(OPENSSL_TIMESTAMP) curl_binary \
 	$(ROOT)/jni/src/android_version.h
+	
+#use interim target variable to switch leveldb on or off
+ifeq ($(HAVE_LEVELDB),1)
+	LEVELDB_TARGET = $(LEVELDB_LIB)
+endif
 
 debug : $(PATHCFGFILE)
 	export NDEBUG=;                                                            \
@@ -628,14 +637,14 @@ assets : $(ASSETS_TIMESTAMP)
 clean_assets :
 	@$(RM) -r assets
 	
-apk: $(PATHCFGFILE) assets $(IRRLICHT_LIB) $(CURL_LIB) $(LEVELDB_LIB)              \
+apk: $(PATHCFGFILE) assets $(IRRLICHT_LIB) $(CURL_LIB) $(LEVELDB_TARGET)       \
 	$(OPENAL_LIB) $(OGG_LIB) prep_srcdir $(ROOT)/jni/src/android_version.h
 	@export NDEBUG=$$NDEBUG; $(MAKE) -j${PARALLEL} manifest;                   \
 	export PATH=$$PATH:${SDKFOLDER}/platform-tools:${ANDROID_NDK};             \
 	export ANDROID_HOME=${SDKFOLDER};                                          \
 	mkdir -p ${ROOT}/src;                                                      \
 	ndk-build NDK_MODULE_PATH=${NDK_MODULE_PATH} -j${PARALLEL}                 \
-	GPROF=${GPROF} APP_ABI=${TARGET_ABI}                                       \
+	GPROF=${GPROF} APP_ABI=${TARGET_ABI} HAVE_LEVELDB=${HAVE_LEVELDB}          \
 	APP_PLATFORM=${APP_PLATFORM}                                               \
 	TARGET_LIBDIR=${TARGET_LIBDIR}                                             \
 	TARGET_CFLAGS+="${TARGET_CFLAGS_ADDON}"                                    \
diff --git a/build/android/jni/Android.mk b/build/android/jni/Android.mk
index 862347b87..9b2057781 100644
--- a/build/android/jni/Android.mk
+++ b/build/android/jni/Android.mk
@@ -7,10 +7,12 @@ LOCAL_MODULE := Irrlicht
 LOCAL_SRC_FILES := deps/irrlicht/lib/Android/libIrrlicht.a
 include $(PREBUILT_STATIC_LIBRARY)
 
-include $(CLEAR_VARS)
-LOCAL_MODULE := LevelDB
-LOCAL_SRC_FILES := deps/leveldb/libleveldb.a
-include $(PREBUILT_STATIC_LIBRARY)
+ifeq ($(HAVE_LEVELDB), 1)
+	include $(CLEAR_VARS)
+	LOCAL_MODULE := LevelDB
+	LOCAL_SRC_FILES := deps/leveldb/libleveldb.a
+	include $(PREBUILT_STATIC_LIBRARY)
+endif
 
 include $(CLEAR_VARS)
 LOCAL_MODULE := curl
@@ -57,13 +59,13 @@ ifdef GPROF
 GPROF_DEF=-DGPROF
 endif
 
-LOCAL_CFLAGS := -D_IRR_ANDROID_PLATFORM_ \
-				-DHAVE_TOUCHSCREENGUI    \
-				-DUSE_CURL=1             \
-				-DUSE_SOUND=1            \
-				-DUSE_FREETYPE=1         \
-				-DUSE_LEVELDB=1          \
-				$(GPROF_DEF)             \
+LOCAL_CFLAGS := -D_IRR_ANDROID_PLATFORM_      \
+				-DHAVE_TOUCHSCREENGUI         \
+				-DUSE_CURL=1                  \
+				-DUSE_SOUND=1                 \
+				-DUSE_FREETYPE=1              \
+				-DUSE_LEVELDB=$(HAVE_LEVELDB) \
+				$(GPROF_DEF)                  \
 				-pipe -fstrict-aliasing
 
 ifndef NDEBUG
@@ -294,7 +296,11 @@ LOCAL_SRC_FILES +=                                \
 LOCAL_SRC_FILES += jni/src/json/jsoncpp.cpp
 
 LOCAL_SHARED_LIBRARIES := openal ogg vorbis ssl crypto
-LOCAL_STATIC_LIBRARIES := Irrlicht freetype curl LevelDB android_native_app_glue $(PROFILER_LIBS)
+LOCAL_STATIC_LIBRARIES := Irrlicht freetype curl android_native_app_glue $(PROFILER_LIBS)
+
+ifeq ($(HAVE_LEVELDB), 1)
+	LOCAL_STATIC_LIBRARIES += LevelDB
+endif
 LOCAL_LDLIBS := -lEGL -llog -lGLESv1_CM -lGLESv2 -lz -landroid
 
 include $(BUILD_SHARED_LIBRARY)
-- 
GitLab