aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xconfigure6
-rw-r--r--tcc.c12
2 files changed, 12 insertions, 6 deletions
diff --git a/configure b/configure
index a98f078..8517485 100755
--- a/configure
+++ b/configure
@@ -26,6 +26,7 @@ libdir=""
tccdir=""
includedir=""
mandir=""
+sysroot=""
cross_prefix=""
cc="gcc"
host_cc="gcc"
@@ -102,6 +103,8 @@ for opt do
;;
--mandir=*) mandir=`echo $opt | cut -d '=' -f 2`
;;
+ --sysroot=*) sysroot=`echo $opt | cut -d '=' -f 2`
+ ;;
--source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
;;
--cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
@@ -218,6 +221,7 @@ echo ""
echo "Advanced options (experts only):"
echo " --source-path=PATH path of source code [$source_path]"
echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
+echo " --sysroot=PREFIX prepend PREFIX to library/include paths []"
echo " --cc=CC use C compiler CC [$cc]"
echo " --make=MAKE use specified make [$make]"
echo ""
@@ -267,6 +271,7 @@ echo "Library directory $libdir"
echo "Include directory $includedir"
echo "Manual directory $mandir"
echo "Doc directory $docdir"
+echo "Target root prefix $sysroot"
echo "Source path $source_path"
echo "C compiler $cc"
echo "make $make"
@@ -287,6 +292,7 @@ echo "libdir=$libdir" >> config.mak
echo "includedir=$includedir" >> config.mak
echo "mandir=$mandir" >> config.mak
echo "docdir=$docdir" >> config.mak
+echo "#define CONFIG_SYSROOT \"$sysroot\"" >> $TMPH
echo "#define CONFIG_TCCDIR \"$tccdir\"" >> $TMPH
echo "MAKE=$make" >> config.mak
echo "CC=$cc" >> config.mak
diff --git a/tcc.c b/tcc.c
index aa34658..5252c44 100644
--- a/tcc.c
+++ b/tcc.c
@@ -113,7 +113,7 @@ typedef int BOOL;
/* path to find crt1.o, crti.o and crtn.o. Only needed when generating
executables or dlls */
-#define CONFIG_TCC_CRT_PREFIX "/usr/lib"
+#define CONFIG_TCC_CRT_PREFIX CONFIG_SYSROOT "/usr/lib"
#define INCLUDE_STACK_SIZE 32
#define IFDEF_STACK_SIZE 64
@@ -10190,9 +10190,9 @@ TCCState *tcc_new(void)
#ifndef TCC_TARGET_PE
/* default library paths */
- tcc_add_library_path(s, "/usr/local/lib");
- tcc_add_library_path(s, "/usr/lib");
- tcc_add_library_path(s, "/lib");
+ tcc_add_library_path(s, CONFIG_SYSROOT "/usr/local/lib");
+ tcc_add_library_path(s, CONFIG_SYSROOT "/usr/lib");
+ tcc_add_library_path(s, CONFIG_SYSROOT "/lib");
#endif
/* no section zero */
@@ -10469,8 +10469,8 @@ int tcc_set_output_type(TCCState *s, int output_type)
/* default include paths */
/* XXX: reverse order needed if -isystem support */
#ifndef TCC_TARGET_PE
- tcc_add_sysinclude_path(s, "/usr/local/include");
- tcc_add_sysinclude_path(s, "/usr/include");
+ tcc_add_sysinclude_path(s, CONFIG_SYSROOT "/usr/local/include");
+ tcc_add_sysinclude_path(s, CONFIG_SYSROOT "/usr/include");
#endif
snprintf(buf, sizeof(buf), "%s/include", tcc_lib_path);
tcc_add_sysinclude_path(s, buf);