From ba44088eb8b027bc36b7a28dc335ce0da920cf12 Mon Sep 17 00:00:00 2001 From: Andrew Bettison Date: Wed, 26 Mar 2014 16:07:28 +1030 Subject: [PATCH] Move Android INSTANCE_PATH from instance.c to Android.mk --- Android.mk | 1 + instance.c | 38 ++++++++++++++++++-------------------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/Android.mk b/Android.mk index be0bdd03..43971d68 100644 --- a/Android.mk +++ b/Android.mk @@ -16,6 +16,7 @@ SQLITE3_INC := $(LOCAL_PATH)/sqlite-amalgamation-3070900 SERVALD_LOCAL_CFLAGS = \ -g \ -DSERVALD_VERSION="\"Android\"" -DSERVALD_COPYRIGHT="\"Android\"" \ + -DINSTANCE_PATH="\"/data/data/org.servalproject/var/serval-node\"" \ -DSHELL -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" \ -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" \ -DHAVE_LIBC=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 \ diff --git a/instance.c b/instance.c index 5266263b..4cb4c944 100644 --- a/instance.c +++ b/instance.c @@ -29,27 +29,23 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * ./configure INSTANCE_PATH=/var/local/serval/node * - * This will cause servald to never use FHS paths, and always use an instance - * path, even if the SERVALINSTANCE_PATH environment variable is not set. - */ -#ifdef INSTANCE_PATH -#define DEFAULT_INSTANCE_PATH INSTANCE_PATH -#else - -/* On Android systems, always use an instance path (no FHS paths). + * This will cause servald to never use FHS paths, and always use an instance path, even if the + * SERVALINSTANCE_PATH environment variable is not set. + * + * On Android systems, the INSTANCE_PATH macro is set in Android.mk, so Android builds of servald + * always use an instance path and never fall back to FHS paths. */ #ifdef ANDROID -#define DEFAULT_INSTANCE_PATH "/data/data/org.servalproject/var/serval-node" -#define SERVAL_ETC_PATH "" -#define SERVAL_RUN_PATH "" -#define SYSTEM_LOG_PATH "" -#define SERVAL_LOG_PATH "" -#define SERVAL_CACHE_PATH "" -#define SERVAL_TMP_PATH "" -#define RHIZOME_STORE_PATH "" -#else -#define DEFAULT_INSTANCE_PATH NULL -#endif +# ifndef INSTANCE_PATH +# error Must set INSTANCE_PATH macro on Android systems +# endif +# define SERVAL_ETC_PATH "" +# define SERVAL_RUN_PATH "" +# define SYSTEM_LOG_PATH "" +# define SERVAL_LOG_PATH "" +# define SERVAL_CACHE_PATH "" +# define SERVAL_TMP_PATH "" +# define RHIZOME_STORE_PATH "" #endif /* The following paths are based on the Filesystem Hierarchy Standard (FHS) 2.3 @@ -93,8 +89,10 @@ const char *instance_path() { if (!know_instancepath) { instancepath = getenv("SERVALINSTANCE_PATH"); +#ifdef INSTANCE_PATH if (instancepath == NULL) - instancepath = DEFAULT_INSTANCE_PATH; + instancepath = INSTANCE_PATH; +#endif know_instancepath = 1; } return instancepath;