Alexandre Julliard : makedep: Use a string array to manage include directories.
Alexandre Julliard
julliard at winehq.org
Fri Dec 27 13:31:09 CST 2013
Module: wine
Branch: master
Commit: a8862d5d3cc51eaf62a55f9b95d36f8bf9dc0fdf
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a8862d5d3cc51eaf62a55f9b95d36f8bf9dc0fdf
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu Dec 26 21:51:38 2013 +0100
makedep: Use a string array to manage include directories.
---
tools/makedep.c | 62 +++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 44 insertions(+), 18 deletions(-)
diff --git a/tools/makedep.c b/tools/makedep.c
index 099eff6..2a7a4a6 100644
--- a/tools/makedep.c
+++ b/tools/makedep.c
@@ -1358,18 +1358,18 @@ static struct strarray output_sources(void)
struct strarray po_files = empty_strarray;
struct strarray mc_files = empty_strarray;
struct strarray test_files = empty_strarray;
+ struct strarray includes = empty_strarray;
struct strarray subdirs = empty_strarray;
- column = output( "includes = -I." );
- if (src_dir) output_filename( strmake( "-I%s", src_dir ), &column );
+ strarray_add( &includes, "-I." );
+ if (src_dir) strarray_add( &includes, strmake( "-I%s", src_dir ));
if (parent_dir)
{
- if (src_dir) output_filename( strmake( "-I%s/%s", src_dir, parent_dir ), &column );
- else output_filename( strmake( "-I%s", parent_dir ), &column );
+ if (src_dir) strarray_add( &includes, strmake( "-I%s/%s", src_dir, parent_dir ));
+ else strarray_add( &includes, strmake( "-I%s", parent_dir ));
}
- if (top_src_dir && top_obj_dir) output_filename( strmake( "-I%s/include", top_obj_dir ), &column );
- output_filenames( &include_args, &column );
- output( "\n" );
+ if (top_src_dir && top_obj_dir) strarray_add( &includes, strmake( "-I%s/include", top_obj_dir ));
+ strarray_addall( &includes, &include_args );
LIST_FOR_EACH_ENTRY( source, &sources, struct incl_file, entry )
{
@@ -1435,15 +1435,21 @@ static struct strarray output_sources(void)
if (source->flags & FLAG_RC_PO)
{
output( "%s.res: $(WRC) $(ALL_MO_FILES) %s\n", obj, sourcedep );
- output( "\t$(WRC) $(includes) $(RCFLAGS) -o $@ %s\n", source->filename );
- column += output( "%s.res rsrc.pot:", obj );
+ column = output( "\t$(WRC) -o $@ %s", source->filename );
+ output_filenames( &includes, &column );
+ output_filename( "$(RCFLAGS)", &column );
+ output( "\n" );
+ column = output( "%s.res rsrc.pot:", obj );
strarray_add( &po_files, source->filename );
}
else
{
output( "%s.res: $(WRC) %s\n", obj, sourcedep );
- output( "\t$(WRC) $(includes) $(RCFLAGS) -o $@ %s\n", source->filename );
- column += output( "%s.res:", obj );
+ column = output( "\t$(WRC) -o $@ %s", source->filename );
+ output_filenames( &includes, &column );
+ output_filename( "$(RCFLAGS)", &column );
+ output( "\n" );
+ column = output( "%s.res:", obj );
}
strarray_add( &clean_files, strmake( "%s.res", obj ));
}
@@ -1474,7 +1480,11 @@ static struct strarray output_sources(void)
column = 0;
output_filenames( &targets, &column );
output( ": $(WIDL)\n" );
- output( "\t$(WIDL) $(includes) $(TARGETFLAGS) $(IDLFLAGS) -o $@ %s\n", source->filename );
+ column = output( "\t$(WIDL) -o $@ %s", source->filename );
+ output_filenames( &includes, &column );
+ output_filename( "$(TARGETFLAGS)", &column );
+ output_filename( "$(IDLFLAGS)", &column );
+ output( "\n" );
column = 0;
output_filenames( &targets, &column );
column += output( ": %s", sourcedep );
@@ -1517,15 +1527,28 @@ static struct strarray output_sources(void)
strarray_add( &clean_files, strmake( "%s.%s", obj, object_extensions.str[i] ));
output( "%s.%s: %s\n", obj, object_extensions.str[i], sourcedep );
if (strstr( object_extensions.str[i], "cross" ))
- output( "\t$(CROSSCC) -c $(includes) $(ALLCROSSCFLAGS) -o $@ %s\n", source->filename );
+ {
+ column = output( "\t$(CROSSCC) -c -o $@ %s", source->filename );
+ output_filenames( &includes, &column );
+ output_filename( "$(ALLCROSSCFLAGS)", &column );
+ output( "\n" );
+ }
else
- output( "\t$(CC) -c $(includes) $(ALLCFLAGS) -o $@ %s\n", source->filename );
+ {
+ column = output( "\t$(CC) -c -o $@ %s", source->filename );
+ output_filenames( &includes, &column );
+ output_filename( "$(ALLCFLAGS)", &column );
+ output( "\n" );
+ }
}
if (source->flags & FLAG_C_IMPLIB)
{
strarray_add( &clean_files, strmake( "%s.cross.o", obj ));
output( "%s.cross.o: %s\n", obj, sourcedep );
- output( "\t$(CROSSCC) -c $(includes) $(ALLCROSSCFLAGS) -o $@ %s\n", source->filename );
+ column = output( "\t$(CROSSCC) -c -o $@ %s", source->filename );
+ output_filenames( &includes, &column );
+ output_filename( "$(ALLCROSSCFLAGS)", &column );
+ output( "\n" );
}
if (is_test && !strcmp( ext, "c" ) && !is_generated_idl( source ))
{
@@ -1533,6 +1556,7 @@ static struct strarray output_sources(void)
output( "%s.ok:\n", obj );
output( "\t$(RUNTEST) $(RUNTESTFLAGS) %s && touch $@\n", obj );
}
+ column = 0;
for (i = 0; i < object_extensions.count; i++)
column += output( "%s.%s ", obj, object_extensions.str[i] );
if (source->flags & FLAG_C_IMPLIB) column += output( "%s.cross.o", obj );
@@ -1553,7 +1577,9 @@ static struct strarray output_sources(void)
column = output( "rsrc.pot: $(WRC)" );
output_filenames( &po_files, &column );
output( "\n" );
- column = output( "\t$(WRC) $(includes) $(RCFLAGS) -O pot -o $@" );
+ column = output( "\t$(WRC) -O pot -o $@" );
+ output_filenames( &includes, &column );
+ output_filename( "$(RCFLAGS)", &column );
output_filenames( &po_files, &column );
output( "\n" );
strarray_add( &clean_files, "rsrc.pot" );
@@ -1785,7 +1811,7 @@ static void update_makefile( const char *path )
value = get_expanded_make_var_array( "EXTRAINCL" );
for (i = 0; i < value.count; i++)
if (!strncmp( value.str[i], "-I", 2 ))
- strarray_add( &include_args, value.str[i] );
+ strarray_add_uniq( &include_args, value.str[i] );
init_paths();
@@ -1812,7 +1838,7 @@ static void parse_option( const char *opt )
switch(opt[1])
{
case 'I':
- if (opt[2]) strarray_add( &include_args, opt );
+ if (opt[2]) strarray_add_uniq( &include_args, opt );
break;
case 'C':
src_dir = opt + 2;
More information about the wine-cvs
mailing list