makefiles: Generate the uninstall rule using the subdirs file lists.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2018-02-21 12:29:06 +01:00
parent 832a40109e
commit 1a52ba0bc8
4 changed files with 132 additions and 143 deletions

View File

@ -118,13 +118,6 @@ include/stamp-h: $(srcdir)/include/config.h.in config.status
distclean:: clean
$(RM) -r autom4te.cache documentation/html documentation/api-guide documentation/api-guide-xml documentation/man$(api_manext)
# Rules for uninstalling
.PHONY: install install-lib install-dev uninstall __uninstall__
uninstall:: __uninstall__
-rmdir $(DESTDIR)$(fontdir) $(DESTDIR)$(datadir)/wine $(DESTDIR)$(fakedlldir) $(DESTDIR)$(dlldir) $(DESTDIR)$(includedir)/windows/ddk \
$(DESTDIR)$(includedir)/windows $(DESTDIR)$(includedir)/msvcrt/sys $(DESTDIR)$(includedir)/msvcrt $(DESTDIR)$(includedir)
# Rules for API documentation
install-manpages:: manpages
@ -137,7 +130,7 @@ install-manpages:: manpages
# dependencies needed to build any dll or program
__tooldeps__: libs/port libs/wpp
__builddeps__: __tooldeps__ libs/wine include po
.PHONY: depend dummy check test testclean crosstest __tooldeps__ __builddeps__
.PHONY: depend dummy check test crosstest __tooldeps__ __builddeps__ install install-lib install-dev
dummy:
loader: libs/port libs/wine tools

60
aclocal.m4 vendored
View File

@ -250,13 +250,10 @@ wine_fn_install_rules ()
wine_fn_has_flag install-lib || wine_fn_has_flag install-dev || return
wine_fn_append_rule \
".PHONY: $ac_dir/install $ac_dir/uninstall
".PHONY: $ac_dir/install
$ac_dir/install:: $ac_dir
@cd $ac_dir && \$(MAKE) install
$ac_dir/uninstall::
@cd $ac_dir && \$(MAKE) uninstall
install:: $ac_dir/install
__uninstall__: $ac_dir/uninstall"
install:: $ac_dir/install"
if wine_fn_has_flag install-lib
then
@ -309,13 +306,10 @@ wine_fn_config_lib ()
wine_fn_all_rules
wine_fn_append_rule \
".PHONY: $ac_dir/install $ac_dir/uninstall
".PHONY: $ac_dir/install
$ac_dir/install:: $ac_dir
\$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
install install-dev:: $ac_dir/install
__uninstall__: $ac_dir/uninstall
__builddeps__: $ac_dir
$ac_dir: $ac_deps"
}
@ -355,23 +349,18 @@ wine_fn_config_dll ()
"$ac_dir: __builddeps__
manpages htmlpages sgmlpages xmlpages::
@cd $ac_dir && \$(MAKE) \$[@]
.PHONY: $ac_dir/install-lib $ac_dir/uninstall
install install-lib:: $ac_dir/install-lib
__uninstall__: $ac_dir/uninstall"
.PHONY: $ac_dir/install-lib
install install-lib:: $ac_dir/install-lib"
if test -n "$DLLEXT"
then
wine_fn_append_rule \
"$ac_dir/install-lib:: $ac_dir
\$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT
\$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(dlldir)/fakedlls/$ac_dll
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/fakedlls/$ac_dll"
\$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(dlldir)/fakedlls/$ac_dll"
else
wine_fn_append_rule \
"$ac_dir/install-lib:: $ac_dir
\$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
\$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll"
fi])
if wine_fn_has_flag staticimplib
@ -381,13 +370,10 @@ $ac_dir/uninstall::
$ac_file.a $ac_file.cross.a: $ac_deps
$ac_file.a: dummy
@cd $ac_dir && \$(MAKE) lib$ac_implib.a
.PHONY: $ac_dir/install-dev $ac_dir/uninstall
.PHONY: $ac_dir/install-dev
$ac_dir/install-dev:: $ac_file.a
\$(INSTALL_DATA) $ac_file.a \$(DESTDIR)\$(dlldir)/lib$ac_implib.a
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.a
install install-dev:: $ac_dir/install-dev
__uninstall__: $ac_dir/uninstall"
install install-dev:: $ac_dir/install-dev"
if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
then
@ -405,13 +391,10 @@ $ac_file.def: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
\$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
$ac_file.a: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
\$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
.PHONY: $ac_dir/install-dev $ac_dir/uninstall
.PHONY: $ac_dir/install-dev
$ac_dir/install-dev:: $ac_file.$IMPLIBEXT
\$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
install install-dev:: $ac_dir/install-dev
__uninstall__: $ac_dir/uninstall"
install install-dev:: $ac_dir/install-dev"
if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
then
wine_fn_append_rule \
@ -442,42 +425,33 @@ wine_fn_config_program ()
wine_fn_has_flag install || return
wine_fn_append_rule \
".PHONY: $ac_dir/install $ac_dir/uninstall
install install-lib:: $ac_dir/install
__uninstall__: $ac_dir/uninstall"
".PHONY: $ac_dir/install
install install-lib:: $ac_dir/install"
if test -n "$DLLEXT"
then
wine_fn_append_rule \
"$ac_dir/install:: $ac_dir
\$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT
\$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(dlldir)/fakedlls/$ac_program
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/fakedlls/$ac_program"
\$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(dlldir)/fakedlls/$ac_program"
if test -z "$with_wine64" && wine_fn_has_flag installbin
then
wine_fn_append_rule \
"$ac_dir/install:: __tooldeps__
\$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
\$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name"
fi
else
wine_fn_append_rule \
"$ac_dir/install:: $ac_dir
\$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(bindir)/$ac_program"
\$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program"
fi
if test -z "$with_wine64" && wine_fn_has_flag manpage
then
wine_fn_append_rule \
"$ac_dir/install:: $ac_dir
\$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
\$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
fi
}

60
configure vendored
View File

@ -7729,13 +7729,10 @@ wine_fn_install_rules ()
wine_fn_has_flag install-lib || wine_fn_has_flag install-dev || return
wine_fn_append_rule \
".PHONY: $ac_dir/install $ac_dir/uninstall
".PHONY: $ac_dir/install
$ac_dir/install:: $ac_dir
@cd $ac_dir && \$(MAKE) install
$ac_dir/uninstall::
@cd $ac_dir && \$(MAKE) uninstall
install:: $ac_dir/install
__uninstall__: $ac_dir/uninstall"
install:: $ac_dir/install"
if wine_fn_has_flag install-lib
then
@ -7793,13 +7790,10 @@ fi
wine_fn_all_rules
wine_fn_append_rule \
".PHONY: $ac_dir/install $ac_dir/uninstall
".PHONY: $ac_dir/install
$ac_dir/install:: $ac_dir
\$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
install install-dev:: $ac_dir/install
__uninstall__: $ac_dir/uninstall
__builddeps__: $ac_dir
$ac_dir: $ac_deps"
}
@ -7842,23 +7836,18 @@ else
"$ac_dir: __builddeps__
manpages htmlpages sgmlpages xmlpages::
@cd $ac_dir && \$(MAKE) \$@
.PHONY: $ac_dir/install-lib $ac_dir/uninstall
install install-lib:: $ac_dir/install-lib
__uninstall__: $ac_dir/uninstall"
.PHONY: $ac_dir/install-lib
install install-lib:: $ac_dir/install-lib"
if test -n "$DLLEXT"
then
wine_fn_append_rule \
"$ac_dir/install-lib:: $ac_dir
\$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT
\$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(dlldir)/fakedlls/$ac_dll
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/fakedlls/$ac_dll"
\$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(dlldir)/fakedlls/$ac_dll"
else
wine_fn_append_rule \
"$ac_dir/install-lib:: $ac_dir
\$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
\$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll"
fi
fi
@ -7869,13 +7858,10 @@ fi
$ac_file.a $ac_file.cross.a: $ac_deps
$ac_file.a: dummy
@cd $ac_dir && \$(MAKE) lib$ac_implib.a
.PHONY: $ac_dir/install-dev $ac_dir/uninstall
.PHONY: $ac_dir/install-dev
$ac_dir/install-dev:: $ac_file.a
\$(INSTALL_DATA) $ac_file.a \$(DESTDIR)\$(dlldir)/lib$ac_implib.a
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.a
install install-dev:: $ac_dir/install-dev
__uninstall__: $ac_dir/uninstall"
install install-dev:: $ac_dir/install-dev"
if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
then
@ -7893,13 +7879,10 @@ $ac_file.def: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
\$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$@ --export $srcdir/$ac_dir/$ac_name.spec
$ac_file.a: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
\$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$@ --export $srcdir/$ac_dir/$ac_name.spec
.PHONY: $ac_dir/install-dev $ac_dir/uninstall
.PHONY: $ac_dir/install-dev
$ac_dir/install-dev:: $ac_file.$IMPLIBEXT
\$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
install install-dev:: $ac_dir/install-dev
__uninstall__: $ac_dir/uninstall"
install install-dev:: $ac_dir/install-dev"
if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
then
wine_fn_append_rule \
@ -7932,42 +7915,33 @@ fi
wine_fn_has_flag install || return
wine_fn_append_rule \
".PHONY: $ac_dir/install $ac_dir/uninstall
install install-lib:: $ac_dir/install
__uninstall__: $ac_dir/uninstall"
".PHONY: $ac_dir/install
install install-lib:: $ac_dir/install"
if test -n "$DLLEXT"
then
wine_fn_append_rule \
"$ac_dir/install:: $ac_dir
\$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT
\$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(dlldir)/fakedlls/$ac_program
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/fakedlls/$ac_program"
\$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(dlldir)/fakedlls/$ac_program"
if test -z "$with_wine64" && wine_fn_has_flag installbin
then
wine_fn_append_rule \
"$ac_dir/install:: __tooldeps__
\$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
\$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name"
fi
else
wine_fn_append_rule \
"$ac_dir/install:: $ac_dir
\$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(bindir)/$ac_program"
\$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program"
fi
if test -z "$with_wine64" && wine_fn_has_flag manpage
then
wine_fn_append_rule \
"$ac_dir/install:: $ac_dir
\$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
$ac_dir/uninstall::
\$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
\$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
fi
}

View File

@ -190,6 +190,8 @@ struct makefile
struct strarray in_files;
struct strarray ok_files;
struct strarray clean_files;
struct strarray distclean_files;
struct strarray uninstall_files;
struct strarray object_files;
struct strarray crossobj_files;
struct strarray c2man_files;
@ -471,6 +473,15 @@ static void strarray_set_value( struct strarray *array, const char *name, const
}
/*******************************************************************
* strarray_set_qsort
*/
static void strarray_qsort( struct strarray *array, int (*func)(const char **, const char **) )
{
if (array->count) qsort( array->str, array->count, sizeof(*array->str), (void *)func );
}
/*******************************************************************
* output_filename
*/
@ -2196,16 +2207,14 @@ static void output_symlink_rule( const char *src_name, const char *link_name )
* Rules are stored as a (file,dest) pair of values.
* The first char of dest indicates the type of install.
*/
static struct strarray output_install_rules( struct makefile *make, enum install_rules rules,
const char *target )
static void output_install_rules( struct makefile *make, enum install_rules rules, const char *target )
{
unsigned int i;
char *install_sh;
struct strarray files = make->install_rules[rules];
struct strarray uninstall = empty_strarray;
struct strarray targets = empty_strarray;
if (!files.count) return uninstall;
if (!files.count) return;
for (i = 0; i < files.count; i += 2)
{
@ -2265,12 +2274,67 @@ static struct strarray output_install_rules( struct makefile *make, enum install
default:
assert(0);
}
strarray_add( &uninstall, dest );
strarray_add( &make->uninstall_files, dest );
}
strarray_add_uniq( &make->phony_targets, "install" );
strarray_add_uniq( &make->phony_targets, target );
return uninstall;
}
static int cmp_string_length( const char **a, const char **b )
{
int paths_a = 0, paths_b = 0;
const char *p;
for (p = *a; *p; p++) if (*p == '/') paths_a++;
for (p = *b; *p; p++) if (*p == '/') paths_b++;
if (paths_b != paths_a) return paths_b - paths_a;
return strcmp( *a, *b );
}
/*******************************************************************
* output_uninstall_rules
*/
static void output_uninstall_rules( struct makefile *make )
{
static const char *dirs_order[] =
{ "$(includedir)", "$(mandir)", "$(fontdir)", "$(datadir)", "$(dlldir)" };
struct strarray subdirs = empty_strarray;
unsigned int i, j;
if (!make->uninstall_files.count) return;
output( "uninstall::\n" );
output_rm_filenames( make->uninstall_files );
strarray_add_uniq( &make->phony_targets, "uninstall" );
if (!make->subdirs.count) return;
for (i = 0; i < make->uninstall_files.count; i++)
{
char *dir = xstrdup( make->uninstall_files.str[i] );
while (strchr( dir, '/' ))
{
*strrchr( dir, '/' ) = 0;
strarray_add_uniq( &subdirs, xstrdup(dir) );
}
}
strarray_qsort( &subdirs, cmp_string_length );
output( "\t-rmdir" );
for (i = 0; i < sizeof(dirs_order)/sizeof(dirs_order[0]); i++)
{
for (j = 0; j < subdirs.count; j++)
{
if (!subdirs.str[j]) continue;
if (strncmp( subdirs.str[j] + strlen("$(DESTDIR)"), dirs_order[i], strlen(dirs_order[i]) ))
continue;
output_filename( subdirs.str[j] );
subdirs.str[j] = NULL;
}
}
for (j = 0; j < subdirs.count; j++)
if (subdirs.str[j]) output_filename( subdirs.str[j] );
output( "\n" );
}
@ -3328,27 +3392,23 @@ static void output_subdirs( struct makefile *make )
struct strarray makefile_deps = empty_strarray;
struct strarray clean_files = empty_strarray;
struct strarray testclean_files = empty_strarray;
struct strarray distclean_files = get_expanded_make_var_array( make, "CONFIGURE_TARGETS" );
struct strarray distclean_files = empty_strarray;
unsigned int i, j;
strarray_add( &distclean_files, obj_dir_path( make, output_makefile_name ));
if (!make->src_dir) strarray_add( &distclean_files, obj_dir_path( make, ".gitignore" ));
strarray_addall( &distclean_files, make->distclean_files );
for (i = 0; i < make->subdirs.count; i++)
{
const struct makefile *submake = make->submakes[i];
strarray_add( &makefile_deps, top_src_dir_path( make, base_dir_path( submake,
strmake ( "%s.in", output_makefile_name ))));
strarray_add( &distclean_files, base_dir_path( submake, output_makefile_name ));
if (!make->src_dir) strarray_add( &distclean_files, base_dir_path( submake, ".gitignore" ));
for (j = 0; j < submake->clean_files.count; j++)
strarray_add( &clean_files, base_dir_path( submake, submake->clean_files.str[j] ));
if (submake->testdll)
{
for (j = 0; j < submake->ok_files.count; j++)
strarray_add( &testclean_files, base_dir_path( submake, submake->ok_files.str[j] ));
strarray_add( &distclean_files, base_dir_path( submake, "testlist.c" ));
}
for (j = 0; j < submake->distclean_files.count; j++)
strarray_add( &distclean_files, base_dir_path( submake, submake->distclean_files.str[j] ));
for (j = 0; j < submake->ok_files.count; j++)
strarray_add( &testclean_files, base_dir_path( submake, submake->ok_files.str[j] ));
strarray_addall( &make->uninstall_files, submake->uninstall_files );
strarray_addall( &build_deps, output_importlib_symlinks( make, submake ));
}
output( "Makefile:" );
@ -3379,11 +3439,10 @@ static void output_subdirs( struct makefile *make )
/*******************************************************************
* output_sources
*/
static struct strarray output_sources( struct makefile *make )
static void output_sources( struct makefile *make )
{
struct incl_file *source;
unsigned int i, j;
struct strarray uninstall_files = empty_strarray;
strarray_add( &make->phony_targets, "all" );
@ -3423,6 +3482,15 @@ static struct strarray output_sources( struct makefile *make )
add_install_rule( make, make->scripts.str[i], make->scripts.str[i],
strmake( "S$(bindir)/%s", make->scripts.str[i] ));
if (!make->src_dir) strarray_add( &make->distclean_files, ".gitignore" );
strarray_add( &make->distclean_files, "Makefile" );
if (make->testdll) strarray_add( &make->distclean_files, "testlist.c" );
if (!make->base_dir)
strarray_addall( &make->distclean_files, get_expanded_make_var_array( make, "CONFIGURE_TARGETS" ));
else if (!strcmp( make->base_dir, "po" ))
strarray_add( &make->distclean_files, "LINGUAS" );
if (make->subdirs.count) output_subdirs( make );
if (!make->disabled)
@ -3433,16 +3501,9 @@ static struct strarray output_sources( struct makefile *make )
output_filenames_obj_dir( make, make->all_targets );
output( "\n" );
}
strarray_addall( &uninstall_files, output_install_rules( make, INSTALL_LIB, "install-lib" ));
strarray_addall( &uninstall_files, output_install_rules( make, INSTALL_DEV, "install-dev" ));
if (uninstall_files.count)
{
output( "uninstall::\n" );
output( "\trm -f" );
output_filenames( uninstall_files );
output( "\n" );
strarray_add_uniq( &make->phony_targets, "uninstall" );
}
output_install_rules( make, INSTALL_LIB, "install-lib" );
output_install_rules( make, INSTALL_DEV, "install-dev" );
output_uninstall_rules( make );
}
strarray_addall( &make->clean_files, make->object_files );
@ -3467,10 +3528,6 @@ static struct strarray output_sources( struct makefile *make )
output_filenames( make->phony_targets );
output( "\n" );
}
if (!make->base_dir)
strarray_addall( &make->clean_files, get_expanded_make_var_array( make, "CONFIGURE_TARGETS" ));
return make->clean_files;
}
@ -3664,7 +3721,7 @@ static void output_top_variables( const struct makefile *make )
*/
static void output_dependencies( struct makefile *make )
{
struct strarray targets, ignore_files = empty_strarray;
struct strarray ignore_files = empty_strarray;
char buffer[1024];
FILE *src_file;
int found = 0;
@ -3686,28 +3743,19 @@ static void output_dependencies( struct makefile *make )
input_file_name = NULL;
if (!found) output( "\n%s (everything below this line is auto-generated; DO NOT EDIT!!)\n", separator );
targets = output_sources( make );
output_sources( make );
fclose( output_file );
output_file = NULL;
rename_temp_file( output_file_name );
strarray_add( &ignore_files, ".gitignore" );
strarray_add( &ignore_files, "Makefile" );
if (make->testdll)
{
output_testlist( make );
strarray_add( &ignore_files, "testlist.c" );
}
if (make->base_dir && !strcmp( make->base_dir, "po" ))
{
output_linguas( make );
strarray_add( &ignore_files, "LINGUAS" );
}
strarray_addall( &ignore_files, targets );
strarray_addall( &ignore_files, make->distclean_files );
strarray_addall( &ignore_files, make->clean_files );
if (make->testdll) output_testlist( make );
if (make->base_dir && !strcmp( make->base_dir, "po" )) output_linguas( make );
if (!make->src_dir) output_gitignore( base_dir_path( make, ".gitignore" ), ignore_files );
create_file_directories( make, targets );
create_file_directories( make, ignore_files );
output_file_name = NULL;
}