AC_FUNC_MMAP
AC_CHECK_FUNCS([dup2 endpwent munmap strndup])
+# Add option to build support for the "SYSROOT" variable
+AC_ARG_WITH(SYSROOT, [--with-sysroot enable SYSROOT])
+if test "$with_sysroot" == "yes"
+then
+ AC_DEFINE([HAVE_SYSROOT], [1], [Add SYSROOT to Tizen variables.])
+ AC_MSG_NOTICE([with-sysroot=yes])
+else
+ AC_MSG_NOTICE([with-sysroot=no])
+fi
+
AC_CONFIG_FILES([
Makefile
src/Makefile
default: break;
}
}
+#if _FOREIGN_HAS_(SYSROOT)
+ else if (length == 7)
+ if (name[0]=='S' && name[1]=='Y' && name[2]=='S' && name[3]=='R' && name[4]=='O' && name[5]=='O' && name[6]=='T')
+ return SYSROOT;
+#endif
return _FOREIGN_INVALID_;
}
#ifndef FOREIGN_H
#define FOREIGN_H
-#define _FOREIGN_MASK_HOME_ 1
-#define _FOREIGN_MASK_UID_ 2
-#define _FOREIGN_MASK_USER_ 4
-#define _FOREIGN_MASK_GID_ 8
-#define _FOREIGN_MASK_EHOME_ 16
-#define _FOREIGN_MASK_EUID_ 32
-#define _FOREIGN_MASK_EUSER_ 64
+#define _FOREIGN_MASK_HOME_ 1
+#define _FOREIGN_MASK_UID_ 2
+#define _FOREIGN_MASK_USER_ 4
+#define _FOREIGN_MASK_GID_ 8
+#define _FOREIGN_MASK_EHOME_ 16
+#define _FOREIGN_MASK_EUID_ 32
+#define _FOREIGN_MASK_EUSER_ 64
+#define _FOREIGN_MASK_SYSROOT_ 128
+#ifdef HAVE_SYSROOT
+#define _FOREIGNS_TO_USE_ ( _FOREIGN_MASK_HOME_ \
+ | _FOREIGN_MASK_USER_ \
+ | _FOREIGN_MASK_SYSROOT_ )
+#else /* HAVE_SYSROOT */
#define _FOREIGNS_TO_USE_ ( _FOREIGN_MASK_HOME_ \
| _FOREIGN_MASK_USER_ )
+#endif /* HAVE_SYSROOT */
#define _FOREIGN_HAS_(x) (0 != ((_FOREIGNS_TO_USE_) & (_FOREIGN_MASK_##x##_)))
enum fkey {
- _FOREIGN_INVALID_ = -1,
+ _FOREIGN_INVALID_ = -1,
#if _FOREIGN_HAS_(HOME)
HOME,
#endif
#if _FOREIGN_HAS_(UID)
- UID,
+ UID,
#endif
#if _FOREIGN_HAS_(USER)
USER,
GID,
#endif
#if _FOREIGN_HAS_(EHOME)
- EHOME,
+ EHOME,
#endif
#if _FOREIGN_HAS_(EUID)
- EUID,
+ EUID,
#endif
#if _FOREIGN_HAS_(EUSER)
EUSER,
+#endif
+#if _FOREIGN_HAS_(SYSROOT)
+ SYSROOT,
#endif
_FOREIGN_COUNT_
};
#endif
/* get the foreign variable */
-static const char *foreignvar( struct reading *reading,
+static const char *foreignvar( struct reading *reading,
const char *name, size_t length)
{
enum fkey key = foreign( name, length);
foreignid( reading);
break;
#endif
+#if _FOREIGN_HAS_(SYSROOT)
+ case SYSROOT:
+ if (reading->dynvars[SYSROOT] == HNULL) {
+ const char *value;
+ value = getenv("SYSROOT");
+ reading->dynvars[SYSROOT] = heap_strdup( &reading->context->heap, value != NULL ? value : "");
+ }
+ break;
+#endif
default:
return NULL;
}
/* callback for parsing errors */
-static int errcb( struct parsing *parsing,
+static int errcb( struct parsing *parsing,
size_t position, const char *message)
{
struct parsinfo info;
}
/* callback for solving variables */
-static const char *getcb( struct parsing *parsing,
+static const char *getcb( struct parsing *parsing,
const char *key, size_t length,
size_t begin_pos, size_t end_pos)
{
}
/* callback to define variables */
-static int putcb( struct parsing *parsing,
- const char *key, size_t key_length,
+static int putcb( struct parsing *parsing,
+ const char *key, size_t key_length,
const char *value, size_t value_length,
size_t begin_pos, size_t end_pos)
{