diff options
| author | Thomas Preud'homme <thomas.preudhomme@celest.fr> | 2011-07-07 10:36:38 +0200 |
|---|---|---|
| committer | Thomas Preud'homme <thomas.preudhomme@celest.fr> | 2011-07-07 12:10:57 +0200 |
| commit | 4d6a4a26e08ef8581c70d29f578a42ab7d738c2d (patch) | |
| tree | f7919143ec0132e962a29b0840215a396d9124ff | |
| parent | a6775fc1544c23d9d1c265f143b5aafc3b906082 (diff) | |
| download | tinycc-4d6a4a26e08ef8581c70d29f578a42ab7d738c2d.tar.gz tinycc-4d6a4a26e08ef8581c70d29f578a42ab7d738c2d.tar.bz2 | |
Add configuration of include subdirectories
Add the possibility to search headers in several subdirectories of
/usr/local/include and /usr/include. A possible use case would be for
tcc to search for headers in /usr/local/include/x86_64-linux-gnu,
/usr/local/include, /usr/include/x86_64-linux-gnu and /usr/include in
turn.
| -rw-r--r-- | libtcc.c | 19 | ||||
| -rw-r--r-- | tcc.h | 3 |
2 files changed, 20 insertions, 2 deletions
@@ -1328,8 +1328,23 @@ LIBTCCAPI int tcc_set_output_type(TCCState *s, int output_type) /* default include paths */ /* -isystem paths have already been handled */ #ifndef TCC_TARGET_PE - tcc_add_sysinclude_path(s, CONFIG_SYSROOT "/usr/local/include"); - tcc_add_sysinclude_path(s, CONFIG_SYSROOT "/usr/include"); + { + int i, nb_extra_incdirs, nb_prefixs; + char **extra_incdirs; + const char incdir_prefix1[] = CONFIG_SYSROOT "/usr/local/include"; + const char incdir_prefix2[] = CONFIG_SYSROOT "/usr/include"; + const char * const incdir_prefixs[] = {incdir_prefix1, + incdir_prefix2}; + + nb_prefixs = sizeof incdir_prefixs / sizeof *incdir_prefixs; + nb_extra_incdirs = tcc_split_path_components(CONFIG_TCC_INCSUBDIR, + incdir_prefixs, + nb_prefixs, + &extra_incdirs); + for (i = 0; i < nb_extra_incdirs; i++) + tcc_add_sysinclude_path(s, extra_incdirs[i]); + dynarray_reset(&extra_incdirs, &nb_extra_incdirs); + } #endif snprintf(buf, sizeof(buf), "%s/include", s->tcc_lib_path); tcc_add_sysinclude_path(s, buf); @@ -150,6 +150,9 @@ typedef int BOOL; #endif #endif #define CONFIG_TCC_CRT_PREFIX CONFIG_SYSROOT "/usr" CONFIG_TCC_LDDIR +#ifndef CONFIG_TCC_INCSUBDIR + #define CONFIG_TCC_INCSUBDIR "" +#endif #define INCLUDE_STACK_SIZE 32 #define IFDEF_STACK_SIZE 64 |
