makefiles: Generate the remaining top-level rules from makedep.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2018-02-22 18:17:46 +01:00
parent 2b59daf326
commit e91304e416
4 changed files with 73 additions and 100 deletions

View File

@ -131,7 +131,7 @@ install-manpages:: manpages
# dependencies needed to build any dll or program # dependencies needed to build any dll or program
__tooldeps__: libs/port libs/wpp __tooldeps__: libs/port libs/wpp
__builddeps__: __tooldeps__ libs/wine include po __builddeps__: __tooldeps__ libs/wine include po
.PHONY: depend dummy check test crosstest __tooldeps__ __builddeps__ install install-lib install-dev .PHONY: depend dummy __tooldeps__ install install-lib install-dev
dummy: dummy:
loader: libs/port libs/wine tools loader: libs/port libs/wine tools

40
aclocal.m4 vendored
View File

@ -233,11 +233,6 @@ wine_fn_append_rule ()
wine_fn_all_rules () wine_fn_all_rules ()
{ {
wine_fn_append_file SUBDIRS $ac_dir wine_fn_append_file SUBDIRS $ac_dir
wine_fn_append_rule \
"all: $ac_dir
.PHONY: $ac_dir
$ac_dir: dummy
@cd $ac_dir && \$(MAKE)"
} }
wine_fn_disabled_rules () wine_fn_disabled_rules ()
@ -255,22 +250,15 @@ wine_fn_config_makefile ()
dnl These are created as symlinks for wow64 builds dnl These are created as symlinks for wow64 builds
fonts|server) test -z "$with_wine64" || return ;; fonts|server) test -z "$with_wine64" || return ;;
esac esac
AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return]) AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules],[wine_fn_all_rules])
wine_fn_all_rules
} }
wine_fn_config_lib () wine_fn_config_lib ()
{ {
ac_name=$[1] ac_name=$[1]
ac_dir=dlls/$ac_name ac_dir=dlls/$ac_name
ac_deps="include"
AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
wine_fn_all_rules wine_fn_all_rules
wine_fn_append_rule \
"__builddeps__: $ac_dir
$ac_dir: $ac_deps"
} }
wine_fn_config_dll () wine_fn_config_dll ()
@ -278,14 +266,7 @@ wine_fn_config_dll ()
ac_name=$[1] ac_name=$[1]
ac_dir=dlls/$ac_name ac_dir=dlls/$ac_name
ac_enable=$[2] ac_enable=$[2]
AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules],[wine_fn_all_rules])
AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return])
wine_fn_all_rules
wine_fn_append_rule \
"$ac_dir: __builddeps__
manpages htmlpages sgmlpages xmlpages::
@cd $ac_dir && \$(MAKE) \$[@]"
} }
wine_fn_config_program () wine_fn_config_program ()
@ -293,11 +274,7 @@ wine_fn_config_program ()
ac_name=$[1] ac_name=$[1]
ac_dir=programs/$ac_name ac_dir=programs/$ac_name
ac_enable=$[2] ac_enable=$[2]
AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules],[wine_fn_all_rules])
AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return])
wine_fn_all_rules
wine_fn_append_rule "$ac_dir: __builddeps__"
} }
wine_fn_config_test () wine_fn_config_test ()
@ -309,7 +286,6 @@ wine_fn_config_test ()
wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
wine_fn_all_rules wine_fn_all_rules
wine_fn_append_rule "$ac_dir: __builddeps__"
} }
wine_fn_config_tool () wine_fn_config_tool ()
@ -328,19 +304,11 @@ wine_fn_config_tool ()
wine_fn_config_symlink () wine_fn_config_symlink ()
{ {
ac_linkdir=
if test "x$[1]" = "x-d"
then
ac_linkdir=$[2]
shift; shift
fi
ac_links=$[@] ac_links=$[@]
wine_fn_append_rule \ wine_fn_append_rule \
"$ac_links: "$ac_links:
@./config.status \$[@]" @./config.status \$[@]"
for f in $ac_links; do wine_fn_append_file CONFIGURE_TARGETS $f; done for f in $ac_links; do wine_fn_append_file CONFIGURE_TARGETS $f; done
test -n "$ac_linkdir" || return
wine_fn_append_rule "$ac_linkdir/depend: $ac_links"
}]) }])
dnl **** Define helper function to append a file to a makefile file list **** dnl **** Define helper function to append a file to a makefile file list ****
@ -364,7 +332,7 @@ m4_ifval([$4],[if test "x$[$4]" != xno; then
])m4_foreach([f],[$3], ])m4_foreach([f],[$3],
[AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
wine_fn_config_symlink[]m4_if([$1],[$2],,m4_ifval([$1],[ -d $1]))[]m4_foreach([f],[$3],[ ]m4_ifval([$1],[$1/])f)m4_ifval([$4],[ wine_fn_config_symlink[]m4_foreach([f],[$3],[ ]m4_ifval([$1],[$1/])f)m4_ifval([$4],[
fi])[]dnl fi])[]dnl
])]) ])])

48
configure vendored
View File

@ -7729,11 +7729,6 @@ wine_fn_append_rule ()
wine_fn_all_rules () wine_fn_all_rules ()
{ {
wine_fn_append_file SUBDIRS $ac_dir wine_fn_append_file SUBDIRS $ac_dir
wine_fn_append_rule \
"all: $ac_dir
.PHONY: $ac_dir
$ac_dir: dummy
@cd $ac_dir && \$(MAKE)"
} }
wine_fn_disabled_rules () wine_fn_disabled_rules ()
@ -7751,27 +7746,18 @@ wine_fn_config_makefile ()
fonts|server) test -z "$with_wine64" || return ;; fonts|server) test -z "$with_wine64" || return ;;
esac esac
if eval test \"x\$"$ac_enable"\" = x"no"; then : if eval test \"x\$"$ac_enable"\" = x"no"; then :
wine_fn_disabled_rules; return wine_fn_disabled_rules
else
wine_fn_all_rules
fi fi
wine_fn_all_rules
} }
wine_fn_config_lib () wine_fn_config_lib ()
{ {
ac_name=$1 ac_name=$1
ac_dir=dlls/$ac_name ac_dir=dlls/$ac_name
ac_deps="include"
if test "x$enable_tools" = xno; then :
else
ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"
fi
wine_fn_all_rules wine_fn_all_rules
wine_fn_append_rule \
"__builddeps__: $ac_dir
$ac_dir: $ac_deps"
} }
wine_fn_config_dll () wine_fn_config_dll ()
@ -7779,16 +7765,11 @@ wine_fn_config_dll ()
ac_name=$1 ac_name=$1
ac_dir=dlls/$ac_name ac_dir=dlls/$ac_name
ac_enable=$2 ac_enable=$2
if eval test \"x\$"$ac_enable"\" = x"no"; then : if eval test \"x\$"$ac_enable"\" = x"no"; then :
wine_fn_disabled_rules; return wine_fn_disabled_rules
else
wine_fn_all_rules
fi fi
wine_fn_all_rules
wine_fn_append_rule \
"$ac_dir: __builddeps__
manpages htmlpages sgmlpages xmlpages::
@cd $ac_dir && \$(MAKE) \$@"
} }
wine_fn_config_program () wine_fn_config_program ()
@ -7796,13 +7777,11 @@ wine_fn_config_program ()
ac_name=$1 ac_name=$1
ac_dir=programs/$ac_name ac_dir=programs/$ac_name
ac_enable=$2 ac_enable=$2
if eval test \"x\$"$ac_enable"\" = x"no"; then : if eval test \"x\$"$ac_enable"\" = x"no"; then :
wine_fn_disabled_rules; return wine_fn_disabled_rules
else
wine_fn_all_rules
fi fi
wine_fn_all_rules
wine_fn_append_rule "$ac_dir: __builddeps__"
} }
wine_fn_config_test () wine_fn_config_test ()
@ -7816,7 +7795,6 @@ fi
wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
wine_fn_all_rules wine_fn_all_rules
wine_fn_append_rule "$ac_dir: __builddeps__"
} }
wine_fn_config_tool () wine_fn_config_tool ()
@ -7837,19 +7815,11 @@ fi
wine_fn_config_symlink () wine_fn_config_symlink ()
{ {
ac_linkdir=
if test "x$1" = "x-d"
then
ac_linkdir=$2
shift; shift
fi
ac_links=$@ ac_links=$@
wine_fn_append_rule \ wine_fn_append_rule \
"$ac_links: "$ac_links:
@./config.status \$@" @./config.status \$@"
for f in $ac_links; do wine_fn_append_file CONFIGURE_TARGETS $f; done for f in $ac_links; do wine_fn_append_file CONFIGURE_TARGETS $f; done
test -n "$ac_linkdir" || return
wine_fn_append_rule "$ac_linkdir/depend: $ac_links"
} }
wine_binary="wine" wine_binary="wine"

View File

@ -3400,7 +3400,9 @@ static void output_programs( struct makefile *make )
static void output_subdirs( struct makefile *make ) static void output_subdirs( struct makefile *make )
{ {
struct strarray symlinks = empty_strarray; struct strarray symlinks = empty_strarray;
struct strarray all_deps = empty_strarray;
struct strarray build_deps = empty_strarray; struct strarray build_deps = empty_strarray;
struct strarray builddeps_deps = empty_strarray;
struct strarray makefile_deps = empty_strarray; struct strarray makefile_deps = empty_strarray;
struct strarray clean_files = empty_strarray; struct strarray clean_files = empty_strarray;
struct strarray testclean_files = empty_strarray; struct strarray testclean_files = empty_strarray;
@ -3410,12 +3412,6 @@ static void output_subdirs( struct makefile *make )
struct strarray crosstest_deps = empty_strarray; struct strarray crosstest_deps = empty_strarray;
unsigned int i, j; unsigned int i, j;
strarray_add( &tools_deps, tools_dir_path( make, "widl" ));
strarray_add( &tools_deps, tools_dir_path( make, "winebuild" ));
strarray_add( &tools_deps, tools_dir_path( make, "winegcc" ));
strarray_add( &tools_deps, obj_dir_path( make, "include" ));
strarray_add( &tools_deps, "dummy" );
strarray_addall( &distclean_files, make->distclean_files ); strarray_addall( &distclean_files, make->distclean_files );
for (i = 0; i < make->subdirs.count; i++) for (i = 0; i < make->subdirs.count; i++)
{ {
@ -3437,18 +3433,14 @@ static void output_subdirs( struct makefile *make )
char *importlib_path = base_dir_path( submake, strmake( "lib%s", submake->importlib )); char *importlib_path = base_dir_path( submake, strmake( "lib%s", submake->importlib ));
if (submake->implib_objs.count) if (submake->implib_objs.count)
{ {
output( "%s.a:", importlib_path ); output( "%s.a: dummy\n", importlib_path );
output_filenames( tools_deps );
output( "\n" );
output( "\t@cd %s && $(MAKE) lib%s.a\n", subdir, submake->importlib ); output( "\t@cd %s && $(MAKE) lib%s.a\n", subdir, submake->importlib );
strarray_add( &build_deps, strmake( "%s.a", importlib_path )); strarray_add( &tools_deps, strmake( "%s.a", importlib_path ));
if (crosstarget) if (crosstarget)
{ {
output( "%s.cross.a:", importlib_path ); output( "%s.cross.a: dummy\n", importlib_path );
output_filenames( tools_deps );
output( "\n" );
output( "\t@cd %s && $(MAKE) lib%s.cross.a\n", subdir, submake->importlib ); output( "\t@cd %s && $(MAKE) lib%s.cross.a\n", subdir, submake->importlib );
strarray_add( &build_deps, strmake( "%s.cross.a", importlib_path )); strarray_add( &tools_deps, strmake( "%s.cross.a", importlib_path ));
} }
} }
else else
@ -3485,20 +3477,38 @@ static void output_subdirs( struct makefile *make )
} }
if (submake->disabled) continue; if (submake->disabled) continue;
if (submake->testdll) strarray_add( &all_deps, subdir );
if (submake->module)
{
if (!submake->staticlib)
{
strarray_add( &builddeps_deps, subdir );
if (!make->appmode.count)
{
output( "manpages htmlpages sgmlpages xmlpages::\n" );
output( "\t@cd %s && $(MAKE) $@\n", subdir );
}
}
else strarray_add( &tools_deps, subdir );
}
else if (submake->testdll)
{ {
output( "check test::\n" ); output( "check test::\n" );
output( "\t@cd %s && $(MAKE) test\n", subdir ); output( "\t@cd %s && $(MAKE) test\n", subdir );
strarray_add( &winetest_deps, subdir ); strarray_add( &winetest_deps, subdir );
strarray_add( &builddeps_deps, subdir );
if (crosstarget) if (crosstarget)
{ {
char *target = base_dir_path( submake, "crosstest" ); char *target = base_dir_path( submake, "crosstest" );
output( "crosstest: %s\n", target ); output( "crosstest: %s\n", target );
output( "%s: __builddeps__ dummy\n", target ); output( "%s: dummy\n", target );
output( "\t@cd %s && $(MAKE) crosstest\n", subdir ); output( "\t@cd %s && $(MAKE) crosstest\n", subdir );
strarray_add( &crosstest_deps, target ); strarray_add( &crosstest_deps, target );
strarray_add( &builddeps_deps, target );
} }
} }
if (submake->install_rules[INSTALL_LIB].count) if (submake->install_rules[INSTALL_LIB].count)
{ {
output( "install install-lib:: %s\n", submake->base_dir ); output( "install install-lib:: %s\n", submake->base_dir );
@ -3510,36 +3520,61 @@ static void output_subdirs( struct makefile *make )
output_install_commands( make, submake, submake->install_rules[INSTALL_DEV] ); output_install_commands( make, submake, submake->install_rules[INSTALL_DEV] );
} }
} }
output( "all:" );
output_filenames( all_deps );
output( "\n" );
output_filenames( all_deps );
output( ": dummy\n" );
output( "\t@cd $@ && $(MAKE)\n" );
output( "Makefile:" ); output( "Makefile:" );
output_filenames( makefile_deps ); output_filenames( makefile_deps );
output( "\n" ); output( "\n" );
output_filenames( makefile_deps ); output_filenames( makefile_deps );
output( ":\n" ); output( ":\n" );
output( "programs/winetest:" ); if (winetest_deps.count)
output_filenames( winetest_deps ); {
output( "\n" ); output( "programs/winetest:" );
output( "crosstest:" ); output_filenames( winetest_deps );
output_filenames( crosstest_deps ); output( "\n" );
output( "\n" ); strarray_add( &make->phony_targets, "check" );
strarray_add( &make->phony_targets, "test" );
}
if (crosstest_deps.count)
{
output( "crosstest:" );
output_filenames( crosstest_deps );
output( "\n" );
strarray_add( &make->phony_targets, "crosstest" );
}
output( "clean::\n"); output( "clean::\n");
output_rm_filenames( clean_files ); output_rm_filenames( clean_files );
output( "testclean::\n"); output( "testclean::\n");
output_rm_filenames( testclean_files ); output_rm_filenames( testclean_files );
output( "distclean::\n"); output( "distclean::\n");
output_rm_filenames( distclean_files ); output_rm_filenames( distclean_files );
strarray_add( &make->phony_targets, "check" ); output_filenames( tools_deps );
strarray_add( &make->phony_targets, "test" ); output( ":" );
output_filename( tools_dir_path( make, "widl" ));
output_filename( tools_dir_path( make, "winebuild" ));
output_filename( tools_dir_path( make, "winegcc" ));
output_filename( obj_dir_path( make, "include" ));
output( "\n" );
output_filenames( builddeps_deps );
output( ": __builddeps__\n" );
strarray_add( &make->phony_targets, "distclean" ); strarray_add( &make->phony_targets, "distclean" );
strarray_add( &make->phony_targets, "testclean" ); strarray_add( &make->phony_targets, "testclean" );
strarray_addall( &make->phony_targets, all_deps );
strarray_addall( &make->phony_targets, crosstest_deps ); strarray_addall( &make->phony_targets, crosstest_deps );
strarray_addall( &make->clean_files, symlinks ); strarray_addall( &make->clean_files, symlinks );
strarray_addall( &build_deps, tools_deps );
strarray_addall( &build_deps, symlinks ); strarray_addall( &build_deps, symlinks );
if (build_deps.count) if (build_deps.count)
{ {
output( "__builddeps__:" ); output( "__builddeps__:" );
output_filenames( build_deps ); output_filenames( build_deps );
output( "\n" ); output( "\n" );
strarray_add( &make->phony_targets, "__builddeps__" );
} }
if (get_expanded_make_variable( make, "GETTEXTPO_LIBS" )) output_po_files( make ); if (get_expanded_make_variable( make, "GETTEXTPO_LIBS" )) output_po_files( make );
} }