From add0b5d28fe684d7e1ee9af71fc02dad8578e6dc Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 26 Mar 2002 01:55:25 +0000 Subject: [PATCH] Ignore imports and resources when building a .def file. --- tools/winebuild/build.h | 2 +- tools/winebuild/main.c | 4 ++-- tools/winebuild/parser.c | 12 ++++++++---- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h index adcb6f4d0ba..f3d23c4eedf 100644 --- a/tools/winebuild/build.h +++ b/tools/winebuild/build.h @@ -223,7 +223,7 @@ extern void BuildRelays32( FILE *outfile ); extern void BuildSpec16File( FILE *outfile ); extern void BuildSpec32File( FILE *outfile ); extern void BuildDef32File( FILE *outfile ); -extern SPEC_TYPE ParseTopLevel( FILE *file ); +extern SPEC_TYPE ParseTopLevel( FILE *file, int def_only ); /* global variables */ diff --git a/tools/winebuild/main.c b/tools/winebuild/main.c index df64de8dbb9..4eb9fb29645 100644 --- a/tools/winebuild/main.c +++ b/tools/winebuild/main.c @@ -270,7 +270,7 @@ int main(int argc, char **argv) switch(exec_mode) { case MODE_SPEC: - switch (ParseTopLevel( input_file )) + switch (ParseTopLevel( input_file, 0 )) { case SPEC_WIN16: BuildSpec16File( output_file ); @@ -282,7 +282,7 @@ int main(int argc, char **argv) } break; case MODE_DEF: - switch (ParseTopLevel( input_file )) + switch (ParseTopLevel( input_file, 1 )) { case SPEC_WIN16: fatal_error( "Cannot yet build .def file for 16-bit dlls\n" ); diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c index e205cceadbc..78b9bcfc22a 100644 --- a/tools/winebuild/parser.c +++ b/tools/winebuild/parser.c @@ -508,7 +508,7 @@ static void sort_names(void) * * Parse a spec file. */ -SPEC_TYPE ParseTopLevel( FILE *file ) +SPEC_TYPE ParseTopLevel( FILE *file, int def_only ) { const char *token; @@ -582,12 +582,16 @@ SPEC_TYPE ParseTopLevel( FILE *file ) } else fatal_error( "Unknown option '%s' for import directive\n", name ); } - add_import_dll( name, delay ); + if (!def_only) add_import_dll( name, delay ); } else if (strcmp(token, "rsrc") == 0) { - if (SpecType != SPEC_WIN16) load_res32_file( GetToken(0) ); - else load_res16_file( GetToken(0) ); + if (!def_only) + { + if (SpecType != SPEC_WIN16) load_res32_file( GetToken(0) ); + else load_res16_file( GetToken(0) ); + } + else GetToken(0); /* skip it */ } else if (strcmp(token, "owner") == 0) {