diff --git a/Makefile.in b/Makefile.in index 9ad9f23dfb6..6a152ae380c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -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 diff --git a/aclocal.m4 b/aclocal.m4 index 3fd86064b7d..b7d236f308c 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -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 } diff --git a/configure b/configure index cd2b275cd4c..be4fabfe593 100755 --- a/configure +++ b/configure @@ -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 } diff --git a/tools/makedep.c b/tools/makedep.c index 8d39623e7a0..a5e47293bcd 100644 --- a/tools/makedep.c +++ b/tools/makedep.c @@ -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; }