aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libtcc.c18
-rw-r--r--tcc.c1
-rw-r--r--tcc.h2
3 files changed, 21 insertions, 0 deletions
diff --git a/libtcc.c b/libtcc.c
index 7fc9827..25d004c 100644
--- a/libtcc.c
+++ b/libtcc.c
@@ -1941,3 +1941,21 @@ PUB_FUNC void tcc_print_stats(TCCState *s, int64_t total_time)
tt, (int)(total_lines / tt),
total_bytes / tt / 1000000.0);
}
+
+PUB_FUNC void tcc_set_environment(TCCState *s)
+{
+ char * path;
+
+ path = getenv("C_INCLUDE_PATH");
+ if(path != NULL) {
+ tcc_add_include_path(s, path);
+ }
+ path = getenv("CPATH");
+ if(path != NULL) {
+ tcc_add_include_path(s, path);
+ }
+ path = getenv("LD_LIBRARY_PATH");
+ if(path != NULL) {
+ tcc_add_library_path(s, path);
+ }
+} \ No newline at end of file
diff --git a/tcc.c b/tcc.c
index cd306b0..52638ef 100644
--- a/tcc.c
+++ b/tcc.c
@@ -252,6 +252,7 @@ int main(int argc, char **argv)
s->output_type = TCC_OUTPUT_EXE;
optind = tcc_parse_args(s, argc - 1, argv + 1);
+ tcc_set_environment(s);
if (optind == 0) {
help();
diff --git a/tcc.h b/tcc.h
index 119f862..e94f91f 100644
--- a/tcc.h
+++ b/tcc.h
@@ -1061,6 +1061,8 @@ ST_FUNC int tcc_add_dll(TCCState *s, const char *filename, int flags);
PUB_FUNC void tcc_print_stats(TCCState *s, int64_t total_time);
PUB_FUNC int tcc_parse_args(TCCState *s, int argc, char **argv);
+PUB_FUNC void tcc_set_environment(TCCState *s);
+
/* ------------ tccpp.c ------------ */
ST_DATA struct BufferedFile *file;