From cb078bd3bf627c668960345a625d9ff6103490d5 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 30 Nov 2018 13:09:12 +0100 Subject: [PATCH] makefiles: Look in the extra targets for dependencies. Signed-off-by: Alexandre Julliard --- programs/winetest/Makefile.in | 4 +--- programs/winetest/winetest.rc | 3 +++ tools/makedep.c | 12 +++++++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/programs/winetest/Makefile.in b/programs/winetest/Makefile.in index d74a27996a6..2719a24ec27 100644 --- a/programs/winetest/Makefile.in +++ b/programs/winetest/Makefile.in @@ -21,12 +21,10 @@ EXTRA_TARGETS = build.nfo INSTALL_LIB = none build.rc: dummy - build="BUILD_INFO STRINGRES build.nfo STRINGTABLE { 1 \"`GIT_DIR=$(top_srcdir)/.git git rev-parse HEAD 2>/dev/null`\" }" && (echo $$build | cmp -s - $@) || echo $$build >$@ || ($(RM) $@ && exit 1) + build="STRINGTABLE { 1 \"`GIT_DIR=$(top_srcdir)/.git git rev-parse HEAD 2>/dev/null`\" }" && (echo $$build | cmp -s - $@) || echo $$build >$@ || (rm -f $@ && exit 1) build.nfo: -$(CC) -v 2>$@ -build.res: build.nfo - dummy: .PHONY: dummy diff --git a/programs/winetest/winetest.rc b/programs/winetest/winetest.rc index a9dcc1852ba..a3898b6ce01 100644 --- a/programs/winetest/winetest.rc +++ b/programs/winetest/winetest.rc @@ -90,3 +90,6 @@ END /* @makedep: winetest.ico */ IDI_WINE ICON "winetest.ico" + +/* @makedep: build.nfo */ +BUILD_INFO STRINGRES "build.nfo" diff --git a/tools/makedep.c b/tools/makedep.c index 1afac8d65a7..355f7fc0130 100644 --- a/tools/makedep.c +++ b/tools/makedep.c @@ -170,6 +170,7 @@ struct makefile struct strarray extradllflags; struct strarray install_lib; struct strarray install_dev; + struct strarray extra_targets; struct list sources; struct list includes; const char *base_dir; @@ -1433,6 +1434,14 @@ static struct file *open_include_file( const struct makefile *make, struct incl_ return file; } + /* check for extra targets */ + if (strarray_exists( &make->extra_targets, pFile->name )) + { + pFile->sourcename = filename; + pFile->filename = obj_dir_path( make, pFile->name ); + return NULL; + } + /* now try in source dir */ if ((file = open_local_file( make, pFile->name, &pFile->filename ))) return file; @@ -3740,7 +3749,7 @@ static void output_sources( struct makefile *make ) strarray_addall( &make->clean_files, make->object_files ); strarray_addall_uniq( &make->clean_files, make->crossobj_files ); strarray_addall( &make->clean_files, make->all_targets ); - strarray_addall( &make->clean_files, get_expanded_make_var_array( make, "EXTRA_TARGETS" )); + strarray_addall( &make->clean_files, make->extra_targets ); if (make->clean_files.count) { @@ -4044,6 +4053,7 @@ static void load_sources( struct makefile *make ) make->extradllflags = get_expanded_make_var_array( make, "EXTRADLLFLAGS" ); make->install_lib = get_expanded_make_var_array( make, "INSTALL_LIB" ); make->install_dev = get_expanded_make_var_array( make, "INSTALL_DEV" ); + make->extra_targets = get_expanded_make_var_array( make, "EXTRA_TARGETS" ); if (make->module && strendswith( make->module, ".a" )) make->staticlib = make->module;