mirror of
https://github.com/reactos/wine.git
synced 2024-11-28 22:20:26 +00:00
makedep: Store the includes list inside the makefile structure.
This commit is contained in:
parent
b69a0e89dc
commit
c6ba107a41
@ -111,7 +111,6 @@ static const struct
|
|||||||
#define HASH_SIZE 137
|
#define HASH_SIZE 137
|
||||||
|
|
||||||
static struct list files[HASH_SIZE];
|
static struct list files[HASH_SIZE];
|
||||||
static struct list includes = LIST_INIT(includes);
|
|
||||||
|
|
||||||
struct strarray
|
struct strarray
|
||||||
{
|
{
|
||||||
@ -155,6 +154,7 @@ struct makefile
|
|||||||
struct strarray delayimports;
|
struct strarray delayimports;
|
||||||
struct strarray extradllflags;
|
struct strarray extradllflags;
|
||||||
struct list sources;
|
struct list sources;
|
||||||
|
struct list includes;
|
||||||
const char *base_dir;
|
const char *base_dir;
|
||||||
const char *src_dir;
|
const char *src_dir;
|
||||||
const char *obj_dir;
|
const char *obj_dir;
|
||||||
@ -770,11 +770,11 @@ static struct incl_file *find_src_file( struct makefile *make, const char *name
|
|||||||
/*******************************************************************
|
/*******************************************************************
|
||||||
* find_include_file
|
* find_include_file
|
||||||
*/
|
*/
|
||||||
static struct incl_file *find_include_file( const char *name )
|
static struct incl_file *find_include_file( struct makefile *make, const char *name )
|
||||||
{
|
{
|
||||||
struct incl_file *file;
|
struct incl_file *file;
|
||||||
|
|
||||||
LIST_FOR_EACH_ENTRY( file, &includes, struct incl_file, entry )
|
LIST_FOR_EACH_ENTRY( file, &make->includes, struct incl_file, entry )
|
||||||
if (!strcmp( name, file->name )) return file;
|
if (!strcmp( name, file->name )) return file;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -784,7 +784,8 @@ static struct incl_file *find_include_file( const char *name )
|
|||||||
*
|
*
|
||||||
* Add an include file if it doesn't already exists.
|
* Add an include file if it doesn't already exists.
|
||||||
*/
|
*/
|
||||||
static struct incl_file *add_include( struct incl_file *parent, const char *name, int line, int system )
|
static struct incl_file *add_include( struct makefile *make, struct incl_file *parent,
|
||||||
|
const char *name, int line, int system )
|
||||||
{
|
{
|
||||||
struct incl_file *include;
|
struct incl_file *include;
|
||||||
|
|
||||||
@ -795,7 +796,7 @@ static struct incl_file *add_include( struct incl_file *parent, const char *name
|
|||||||
parent->files = xrealloc( parent->files, parent->files_size * sizeof(*parent->files) );
|
parent->files = xrealloc( parent->files, parent->files_size * sizeof(*parent->files) );
|
||||||
}
|
}
|
||||||
|
|
||||||
LIST_FOR_EACH_ENTRY( include, &includes, struct incl_file, entry )
|
LIST_FOR_EACH_ENTRY( include, &make->includes, struct incl_file, entry )
|
||||||
if (!strcmp( name, include->name )) goto found;
|
if (!strcmp( name, include->name )) goto found;
|
||||||
|
|
||||||
include = xmalloc( sizeof(*include) );
|
include = xmalloc( sizeof(*include) );
|
||||||
@ -804,7 +805,7 @@ static struct incl_file *add_include( struct incl_file *parent, const char *name
|
|||||||
include->included_by = parent;
|
include->included_by = parent;
|
||||||
include->included_line = line;
|
include->included_line = line;
|
||||||
include->system = system;
|
include->system = system;
|
||||||
list_add_tail( &includes, &include->entry );
|
list_add_tail( &make->includes, &include->entry );
|
||||||
found:
|
found:
|
||||||
parent->files[parent->files_count++] = include;
|
parent->files[parent->files_count++] = include;
|
||||||
return include;
|
return include;
|
||||||
@ -1352,7 +1353,7 @@ static struct file *open_include_file( struct makefile *make, struct incl_file *
|
|||||||
/*******************************************************************
|
/*******************************************************************
|
||||||
* add_all_includes
|
* add_all_includes
|
||||||
*/
|
*/
|
||||||
static void add_all_includes( struct incl_file *parent, struct file *file )
|
static void add_all_includes( struct makefile *make, struct incl_file *parent, struct file *file )
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
@ -1365,10 +1366,10 @@ static void add_all_includes( struct incl_file *parent, struct file *file )
|
|||||||
{
|
{
|
||||||
case INCL_NORMAL:
|
case INCL_NORMAL:
|
||||||
case INCL_IMPORT:
|
case INCL_IMPORT:
|
||||||
add_include( parent, file->deps[i].name, file->deps[i].line, 0 );
|
add_include( make, parent, file->deps[i].name, file->deps[i].line, 0 );
|
||||||
break;
|
break;
|
||||||
case INCL_SYSTEM:
|
case INCL_SYSTEM:
|
||||||
add_include( parent, file->deps[i].name, file->deps[i].line, 1 );
|
add_include( make, parent, file->deps[i].name, file->deps[i].line, 1 );
|
||||||
break;
|
break;
|
||||||
case INCL_CPP_QUOTE:
|
case INCL_CPP_QUOTE:
|
||||||
case INCL_CPP_QUOTE_SYSTEM:
|
case INCL_CPP_QUOTE_SYSTEM:
|
||||||
@ -1407,24 +1408,24 @@ static void parse_file( struct makefile *make, struct incl_file *source, int src
|
|||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
/* generated .h file always includes these */
|
/* generated .h file always includes these */
|
||||||
add_include( source, "rpc.h", 0, 1 );
|
add_include( make, source, "rpc.h", 0, 1 );
|
||||||
add_include( source, "rpcndr.h", 0, 1 );
|
add_include( make, source, "rpcndr.h", 0, 1 );
|
||||||
for (i = 0; i < file->deps_count; i++)
|
for (i = 0; i < file->deps_count; i++)
|
||||||
{
|
{
|
||||||
switch (file->deps[i].type)
|
switch (file->deps[i].type)
|
||||||
{
|
{
|
||||||
case INCL_IMPORT:
|
case INCL_IMPORT:
|
||||||
if (strendswith( file->deps[i].name, ".idl" ))
|
if (strendswith( file->deps[i].name, ".idl" ))
|
||||||
add_include( source, replace_extension( file->deps[i].name, ".idl", ".h" ),
|
add_include( make, source, replace_extension( file->deps[i].name, ".idl", ".h" ),
|
||||||
file->deps[i].line, 0 );
|
file->deps[i].line, 0 );
|
||||||
else
|
else
|
||||||
add_include( source, file->deps[i].name, file->deps[i].line, 0 );
|
add_include( make, source, file->deps[i].name, file->deps[i].line, 0 );
|
||||||
break;
|
break;
|
||||||
case INCL_CPP_QUOTE:
|
case INCL_CPP_QUOTE:
|
||||||
add_include( source, file->deps[i].name, file->deps[i].line, 0 );
|
add_include( make, source, file->deps[i].name, file->deps[i].line, 0 );
|
||||||
break;
|
break;
|
||||||
case INCL_CPP_QUOTE_SYSTEM:
|
case INCL_CPP_QUOTE_SYSTEM:
|
||||||
add_include( source, file->deps[i].name, file->deps[i].line, 1 );
|
add_include( make, source, file->deps[i].name, file->deps[i].line, 1 );
|
||||||
break;
|
break;
|
||||||
case INCL_NORMAL:
|
case INCL_NORMAL:
|
||||||
case INCL_SYSTEM:
|
case INCL_SYSTEM:
|
||||||
@ -1437,7 +1438,7 @@ static void parse_file( struct makefile *make, struct incl_file *source, int src
|
|||||||
return; /* generated .tab.h doesn't include anything */
|
return; /* generated .tab.h doesn't include anything */
|
||||||
}
|
}
|
||||||
|
|
||||||
add_all_includes( source, file );
|
add_all_includes( make, source, file );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1610,14 +1611,14 @@ static void add_generated_sources( struct makefile *make )
|
|||||||
{
|
{
|
||||||
file = add_generated_source( make, replace_extension( source->name, ".idl", "_c.c" ), NULL );
|
file = add_generated_source( make, replace_extension( source->name, ".idl", "_c.c" ), NULL );
|
||||||
add_dependency( file->file, replace_extension( source->name, ".idl", ".h" ), INCL_NORMAL );
|
add_dependency( file->file, replace_extension( source->name, ".idl", ".h" ), INCL_NORMAL );
|
||||||
add_all_includes( file, file->file );
|
add_all_includes( make, file, file->file );
|
||||||
}
|
}
|
||||||
if (source->file->flags & FLAG_IDL_SERVER)
|
if (source->file->flags & FLAG_IDL_SERVER)
|
||||||
{
|
{
|
||||||
file = add_generated_source( make, replace_extension( source->name, ".idl", "_s.c" ), NULL );
|
file = add_generated_source( make, replace_extension( source->name, ".idl", "_s.c" ), NULL );
|
||||||
add_dependency( file->file, "wine/exception.h", INCL_NORMAL );
|
add_dependency( file->file, "wine/exception.h", INCL_NORMAL );
|
||||||
add_dependency( file->file, replace_extension( source->name, ".idl", ".h" ), INCL_NORMAL );
|
add_dependency( file->file, replace_extension( source->name, ".idl", ".h" ), INCL_NORMAL );
|
||||||
add_all_includes( file, file->file );
|
add_all_includes( make, file, file->file );
|
||||||
}
|
}
|
||||||
if (source->file->flags & FLAG_IDL_IDENT)
|
if (source->file->flags & FLAG_IDL_IDENT)
|
||||||
{
|
{
|
||||||
@ -1625,20 +1626,20 @@ static void add_generated_sources( struct makefile *make )
|
|||||||
add_dependency( file->file, "rpc.h", INCL_NORMAL );
|
add_dependency( file->file, "rpc.h", INCL_NORMAL );
|
||||||
add_dependency( file->file, "rpcndr.h", INCL_NORMAL );
|
add_dependency( file->file, "rpcndr.h", INCL_NORMAL );
|
||||||
add_dependency( file->file, "guiddef.h", INCL_NORMAL );
|
add_dependency( file->file, "guiddef.h", INCL_NORMAL );
|
||||||
add_all_includes( file, file->file );
|
add_all_includes( make, file, file->file );
|
||||||
}
|
}
|
||||||
if (source->file->flags & FLAG_IDL_PROXY)
|
if (source->file->flags & FLAG_IDL_PROXY)
|
||||||
{
|
{
|
||||||
file = add_generated_source( make, "dlldata.o", "dlldata.c" );
|
file = add_generated_source( make, "dlldata.o", "dlldata.c" );
|
||||||
add_dependency( file->file, "objbase.h", INCL_NORMAL );
|
add_dependency( file->file, "objbase.h", INCL_NORMAL );
|
||||||
add_dependency( file->file, "rpcproxy.h", INCL_NORMAL );
|
add_dependency( file->file, "rpcproxy.h", INCL_NORMAL );
|
||||||
add_all_includes( file, file->file );
|
add_all_includes( make, file, file->file );
|
||||||
file = add_generated_source( make, replace_extension( source->name, ".idl", "_p.c" ), NULL );
|
file = add_generated_source( make, replace_extension( source->name, ".idl", "_p.c" ), NULL );
|
||||||
add_dependency( file->file, "objbase.h", INCL_NORMAL );
|
add_dependency( file->file, "objbase.h", INCL_NORMAL );
|
||||||
add_dependency( file->file, "rpcproxy.h", INCL_NORMAL );
|
add_dependency( file->file, "rpcproxy.h", INCL_NORMAL );
|
||||||
add_dependency( file->file, "wine/exception.h", INCL_NORMAL );
|
add_dependency( file->file, "wine/exception.h", INCL_NORMAL );
|
||||||
add_dependency( file->file, replace_extension( source->name, ".idl", ".h" ), INCL_NORMAL );
|
add_dependency( file->file, replace_extension( source->name, ".idl", ".h" ), INCL_NORMAL );
|
||||||
add_all_includes( file, file->file );
|
add_all_includes( make, file, file->file );
|
||||||
}
|
}
|
||||||
if (source->file->flags & FLAG_IDL_REGTYPELIB)
|
if (source->file->flags & FLAG_IDL_REGTYPELIB)
|
||||||
{
|
{
|
||||||
@ -1673,7 +1674,7 @@ static void add_generated_sources( struct makefile *make )
|
|||||||
{
|
{
|
||||||
file = add_generated_source( make, "testlist.o", "testlist.c" );
|
file = add_generated_source( make, "testlist.o", "testlist.c" );
|
||||||
add_dependency( file->file, "wine/test.h", INCL_NORMAL );
|
add_dependency( file->file, "wine/test.h", INCL_NORMAL );
|
||||||
add_all_includes( file, file->file );
|
add_all_includes( make, file, file->file );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1781,7 +1782,7 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t
|
|||||||
/* add source file dependency for parallel makes */
|
/* add source file dependency for parallel makes */
|
||||||
char *header = strmake( "%s.tab.h", obj );
|
char *header = strmake( "%s.tab.h", obj );
|
||||||
|
|
||||||
if (find_include_file( header ))
|
if (find_include_file( make, header ))
|
||||||
{
|
{
|
||||||
output( "%s: %s\n", obj_dir_path( make, header ), source->filename );
|
output( "%s: %s\n", obj_dir_path( make, header ), source->filename );
|
||||||
output( "\t$(BISON) -p %s_ -o %s.tab.c -d %s\n",
|
output( "\t$(BISON) -p %s_ -o %s.tab.c -d %s\n",
|
||||||
@ -1859,7 +1860,7 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t
|
|||||||
struct strarray targets = empty_strarray;
|
struct strarray targets = empty_strarray;
|
||||||
char *dest;
|
char *dest;
|
||||||
|
|
||||||
if (!source->file->flags || find_include_file( strmake( "%s.h", obj )))
|
if (!source->file->flags || find_include_file( make, strmake( "%s.h", obj )))
|
||||||
source->file->flags |= FLAG_IDL_HEADER;
|
source->file->flags |= FLAG_IDL_HEADER;
|
||||||
|
|
||||||
for (i = 0; i < sizeof(idl_outputs) / sizeof(idl_outputs[0]); i++)
|
for (i = 0; i < sizeof(idl_outputs) / sizeof(idl_outputs[0]); i++)
|
||||||
@ -2621,7 +2622,7 @@ static void update_makefile( const char *path )
|
|||||||
strarray_addall( &make->define_args, get_expanded_make_var_array( make, "EXTRADEFS" ));
|
strarray_addall( &make->define_args, get_expanded_make_var_array( make, "EXTRADEFS" ));
|
||||||
|
|
||||||
list_init( &make->sources );
|
list_init( &make->sources );
|
||||||
list_init( &includes );
|
list_init( &make->includes );
|
||||||
|
|
||||||
for (var = source_vars; *var; var++)
|
for (var = source_vars; *var; var++)
|
||||||
{
|
{
|
||||||
@ -2641,7 +2642,7 @@ static void update_makefile( const char *path )
|
|||||||
add_generated_source( make, value.str[i], NULL );
|
add_generated_source( make, value.str[i], NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
LIST_FOR_EACH_ENTRY( file, &includes, struct incl_file, entry ) parse_file( make, file, 0 );
|
LIST_FOR_EACH_ENTRY( file, &make->includes, struct incl_file, entry ) parse_file( make, file, 0 );
|
||||||
|
|
||||||
output_file_name = base_dir_path( make, makefile_name );
|
output_file_name = base_dir_path( make, makefile_name );
|
||||||
output_dependencies( make, output_file_name );
|
output_dependencies( make, output_file_name );
|
||||||
|
Loading…
Reference in New Issue
Block a user