mirror of
https://gitlab.winehq.org/wine/wine.git
synced 2024-11-19 17:06:04 -07:00
makefiles: Generate the uninstall rule using the subdirs file lists.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
832a40109e
commit
1a52ba0bc8
4 changed files with 132 additions and 143 deletions
|
@ -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
60
aclocal.m4
vendored
|
@ -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
60
configure
vendored
|
@ -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
|
||||
}
|
||||
|
||||
|
|
146
tools/makedep.c
146
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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue