aboutsummaryrefslogtreecommitdiff
path: root/libtcc.c
diff options
context:
space:
mode:
authorgrischka <grischka>2011-08-06 16:08:46 +0200
committergrischka <grischka>2011-08-06 16:11:58 +0200
commite6f3bf7f08e4ca32e66db906a7bb2ccefdc7a54d (patch)
tree63b56135f2936427c08645fd2718addb57843934 /libtcc.c
parent39a07cca58f5f4bd9b84827f2ad39bb1fa74fcc5 (diff)
downloadtinycc-e6f3bf7f08e4ca32e66db906a7bb2ccefdc7a54d.tar.gz
tinycc-e6f3bf7f08e4ca32e66db906a7bb2ccefdc7a54d.tar.bz2
libtcc: cleanup the 'gen_makedeps' stuff
Diffstat (limited to 'libtcc.c')
-rw-r--r--libtcc.c35
1 files changed, 13 insertions, 22 deletions
diff --git a/libtcc.c b/libtcc.c
index 41eab81..a8ff87f 100644
--- a/libtcc.c
+++ b/libtcc.c
@@ -1065,12 +1065,10 @@ LIBTCCAPI void tcc_delete(TCCState *s1)
dynarray_reset(&s1->include_paths, &s1->nb_include_paths);
dynarray_reset(&s1->sysinclude_paths, &s1->nb_sysinclude_paths);
- tcc_free(s1->tcc_lib_path);
-
- dynarray_reset(&s1->input_files, &s1->nb_input_files);
- dynarray_reset(&s1->input_libs, &s1->nb_input_libs);
dynarray_reset(&s1->target_deps, &s1->nb_target_deps);
+ tcc_free(s1->tcc_lib_path);
+
#ifdef HAVE_SELINUX
munmap (s1->write_mem, s1->mem_size);
munmap (s1->runtime_mem, s1->mem_size);
@@ -1215,7 +1213,6 @@ the_end:
LIBTCCAPI int tcc_add_file(TCCState *s, const char *filename)
{
- dynarray_add((void ***)&s->input_files, &s->nb_input_files, tcc_strdup(filename));
if (s->output_type == TCC_OUTPUT_PREPROCESS)
return tcc_add_file_internal(s, filename, AFF_PRINT_ERROR | AFF_PREPROCESS);
else
@@ -1250,8 +1247,6 @@ LIBTCCAPI int tcc_add_library(TCCState *s, const char *libraryname)
char buf[1024];
int i;
- dynarray_add((void ***)&s->input_libs, &s->nb_input_libs, tcc_strdup(libraryname));
-
/* first we look for the dynamic library if not static linking */
if (!s->static_link) {
#ifdef TCC_TARGET_PE
@@ -1608,17 +1603,16 @@ PUB_FUNC void set_num_callers(int n)
}
-LIBTCCAPI const char *tcc_default_target(TCCState *s)
+PUB_FUNC char *tcc_default_target(TCCState *s, const char *default_file)
{
- /* FIXME will break in multithreaded case */
- static char outfile_default[1024];
-
+ char buf[1024];
char *ext;
- const char *name =
- strcmp(s->input_files[0], "-") == 0 ? "a"
- : tcc_basename(s->input_files[0]);
- pstrcpy(outfile_default, sizeof(outfile_default), name);
- ext = tcc_fileextension(outfile_default);
+ const char *name = "a";
+
+ if (default_file && strcmp(default_file, "-"))
+ name = tcc_basename(default_file);
+ pstrcpy(buf, sizeof(buf), name);
+ ext = tcc_fileextension(buf);
#ifdef TCC_TARGET_PE
if (s->output_type == TCC_OUTPUT_DLL)
strcpy(ext, ".dll");
@@ -1632,21 +1626,18 @@ LIBTCCAPI const char *tcc_default_target(TCCState *s)
&& *ext)
strcpy(ext, ".o");
else
- pstrcpy(outfile_default, sizeof(outfile_default), "a.out");
+ pstrcpy(buf, sizeof(buf), "a.out");
- return outfile_default;
+ return tcc_strdup(buf);
}
-LIBTCCAPI void tcc_gen_makedeps(TCCState *s, const char *target, const char *filename)
+PUB_FUNC void tcc_gen_makedeps(TCCState *s, const char *target, const char *filename)
{
FILE *depout;
char buf[1024], *ext;
int i;
- if (!target)
- target = tcc_default_target(s);
-
if (!filename) {
/* compute filename automatically
* dir/file.o -> dir/file.d */