makefiles: Generate the common rules for dlls from configure.

This commit is contained in:
Alexandre Julliard 2013-10-10 11:05:21 +02:00
parent a3b76d3366
commit 41c7ba4b5d
6 changed files with 52 additions and 33 deletions

1
.gitignore vendored
View file

@ -21,7 +21,6 @@
Makefile Makefile
dlldata.c dlldata.c
dlls/*/*.def dlls/*/*.def
dlls/Makedll.rules
dlls/actxprxy/actxprxy_activscp.h dlls/actxprxy/actxprxy_activscp.h
dlls/actxprxy/actxprxy_activscp_p.c dlls/actxprxy/actxprxy_activscp_p.c
dlls/actxprxy/actxprxy_comcat.h dlls/actxprxy/actxprxy_comcat.h

4
aclocal.m4 vendored
View file

@ -393,14 +393,14 @@ wine_fn_config_dll ()
dnl enable_win16 is special in that it disables import libs too dnl enable_win16 is special in that it disables import libs too
[if wine_fn_has_flag implib && test "$ac_enable" != enable_win16 [if wine_fn_has_flag implib && test "$ac_enable" != enable_win16
then then
wine_fn_depend_rules dlls/Makedll.rules wine_fn_depend_rules Make.rules.in
wine_fn_clean_rules $ac_clean wine_fn_clean_rules $ac_clean
else else
wine_fn_disabled_rules $ac_clean wine_fn_disabled_rules $ac_clean
return return
fi], fi],
[wine_fn_all_rules dlls/Makedll.rules [wine_fn_all_rules Make.rules.in
wine_fn_clean_rules $ac_clean wine_fn_clean_rules $ac_clean
wine_fn_append_rule \ wine_fn_append_rule \
"$ac_dir: __builddeps__ "$ac_dir: __builddeps__

29
configure vendored
View file

@ -627,6 +627,7 @@ LIBOBJS
PORCFLAGS PORCFLAGS
LINGUAS LINGUAS
ALL_TEST_RESOURCES ALL_TEST_RESOURCES
MAKE_DLL_RULES
MAKE_IMPLIB_RULES MAKE_IMPLIB_RULES
LDAPLIBS LDAPLIBS
LIBRT LIBRT
@ -801,7 +802,6 @@ PATH_SEPARATOR
SHELL' SHELL'
ac_subst_files='MAKE_RULES ac_subst_files='MAKE_RULES
MAKE_TEST_RULES MAKE_TEST_RULES
MAKE_DLL_RULES
MAKE_PROG_RULES' MAKE_PROG_RULES'
ac_user_opts=' ac_user_opts='
enable_option_checking enable_option_checking
@ -16065,6 +16065,24 @@ all: \$(STATICLIB:.a=.cross.a)
fi fi
if test -n "$DLLEXT"
then
deps="\$(MODULE)$DLLEXT \$(MODULE).fake"
else
deps="\$(MODULE)"
fi
MAKE_DLL_RULES="
DLLFLAGS = $DLLFLAGS
MAINSPEC = \$(MODULE:%.dll=%).spec
IDL_TLB_RES = \$(IDL_TLB_SRCS:.idl=_t.res)
MODULEFLAGS = -shared \$(srcdir)/\$(MAINSPEC) \$(EXTRADLLFLAGS)
all: $deps
"
wine_rules_file=conf$$rules.make wine_rules_file=conf$$rules.make
rm -f $wine_rules_file rm -f $wine_rules_file
ALL_POT_FILES="" ALL_POT_FILES=""
@ -16266,14 +16284,14 @@ wine_fn_config_dll ()
if eval test \"x\$"$ac_enable"\" = x"no"; then : if eval test \"x\$"$ac_enable"\" = x"no"; then :
if wine_fn_has_flag implib && test "$ac_enable" != enable_win16 if wine_fn_has_flag implib && test "$ac_enable" != enable_win16
then then
wine_fn_depend_rules dlls/Makedll.rules wine_fn_depend_rules Make.rules.in
wine_fn_clean_rules $ac_clean wine_fn_clean_rules $ac_clean
else else
wine_fn_disabled_rules $ac_clean wine_fn_disabled_rules $ac_clean
return return
fi fi
else else
wine_fn_all_rules dlls/Makedll.rules wine_fn_all_rules Make.rules.in
wine_fn_clean_rules $ac_clean wine_fn_clean_rules $ac_clean
wine_fn_append_rule \ wine_fn_append_rule \
"$ac_dir: __builddeps__ "$ac_dir: __builddeps__
@ -16605,10 +16623,6 @@ wine_fn_config_makerules Maketest.rules Make.rules
MAKE_TEST_RULES=Maketest.rules MAKE_TEST_RULES=Maketest.rules
ac_config_files="$ac_config_files Maketest.rules" ac_config_files="$ac_config_files Maketest.rules"
wine_fn_config_makerules dlls/Makedll.rules Make.rules
MAKE_DLL_RULES=dlls/Makedll.rules
ac_config_files="$ac_config_files dlls/Makedll.rules"
wine_fn_config_makerules programs/Makeprog.rules Make.rules wine_fn_config_makerules programs/Makeprog.rules Make.rules
MAKE_PROG_RULES=programs/Makeprog.rules MAKE_PROG_RULES=programs/Makeprog.rules
ac_config_files="$ac_config_files programs/Makeprog.rules" ac_config_files="$ac_config_files programs/Makeprog.rules"
@ -18180,7 +18194,6 @@ do
"include/wine") CONFIG_COMMANDS="$CONFIG_COMMANDS include/wine" ;; "include/wine") CONFIG_COMMANDS="$CONFIG_COMMANDS include/wine" ;;
"Make.rules") CONFIG_FILES="$CONFIG_FILES Make.rules" ;; "Make.rules") CONFIG_FILES="$CONFIG_FILES Make.rules" ;;
"Maketest.rules") CONFIG_FILES="$CONFIG_FILES Maketest.rules" ;; "Maketest.rules") CONFIG_FILES="$CONFIG_FILES Maketest.rules" ;;
"dlls/Makedll.rules") CONFIG_FILES="$CONFIG_FILES dlls/Makedll.rules" ;;
"programs/Makeprog.rules") CONFIG_FILES="$CONFIG_FILES programs/Makeprog.rules" ;; "programs/Makeprog.rules") CONFIG_FILES="$CONFIG_FILES programs/Makeprog.rules" ;;
"Makefile") CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;; "Makefile") CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;;
"Make.tmp") CONFIG_FILES="$CONFIG_FILES Make.tmp:Make.vars.in:Makefile.in" ;; "Make.tmp") CONFIG_FILES="$CONFIG_FILES Make.tmp:Make.vars.in:Makefile.in" ;;

View file

@ -2608,6 +2608,24 @@ all: \$(STATICLIB:.a=.cross.a)
") ")
fi fi
dnl Dll rules
if test -n "$DLLEXT"
then
deps="\$(MODULE)$DLLEXT \$(MODULE).fake"
else
deps="\$(MODULE)"
fi
AC_SUBST(MAKE_DLL_RULES,"
DLLFLAGS = $DLLFLAGS
MAINSPEC = \$(MODULE:%.dll=%).spec
IDL_TLB_RES = \$(IDL_TLB_SRCS:.idl=_t.res)
MODULEFLAGS = -shared \$(srcdir)/\$(MAINSPEC) \$(EXTRADLLFLAGS)
all: $deps
")
dnl Main makefile dnl Main makefile
WINE_APPEND_RULE([ WINE_APPEND_RULE([
@ -2636,7 +2654,6 @@ WINE_CONFIG_EXTRA_DIR(include/wine)
WINE_CONFIG_MAKERULES([Make.rules],[MAKE_RULES]) WINE_CONFIG_MAKERULES([Make.rules],[MAKE_RULES])
WINE_CONFIG_MAKERULES([Maketest.rules],[MAKE_TEST_RULES],[Make.rules]) WINE_CONFIG_MAKERULES([Maketest.rules],[MAKE_TEST_RULES],[Make.rules])
WINE_CONFIG_MAKERULES([dlls/Makedll.rules],[MAKE_DLL_RULES],[Make.rules])
WINE_CONFIG_MAKERULES([programs/Makeprog.rules],[MAKE_PROG_RULES],[Make.rules]) WINE_CONFIG_MAKERULES([programs/Makeprog.rules],[MAKE_PROG_RULES],[Make.rules])
WINE_CONFIG_DLL(acledit) WINE_CONFIG_DLL(acledit)

View file

@ -1,17 +0,0 @@
# Global rules for building dlls -*-Makefile-*-
#
# Each individual makefile should define the following variables:
# MODULE : name of the main module being built
# EXTRALIBS : extra libraries to link in (optional)
#
# plus all variables required by the global Make.rules.in
#
DLLFLAGS = @DLLFLAGS@
MAINSPEC = $(MODULE:%.dll=%).spec
IDL_TLB_RES = $(IDL_TLB_SRCS:.idl=_t.res)
MODULEFLAGS = -shared $(srcdir)/$(MAINSPEC) $(EXTRADLLFLAGS)
all: $(MODULE)$(DLLEXT) $(MODULE)$(FAKEEXT)
@MAKE_RULES@

View file

@ -25,7 +25,6 @@ use strict;
my %makerules = my %makerules =
( (
"MAKE_RULES" => "Make.rules", "MAKE_RULES" => "Make.rules",
"MAKE_DLL_RULES" => "dlls/Makedll.rules",
"MAKE_TEST_RULES" => "Maketest.rules", "MAKE_TEST_RULES" => "Maketest.rules",
"MAKE_PROG_RULES" => "programs/Makeprog.rules", "MAKE_PROG_RULES" => "programs/Makeprog.rules",
); );
@ -351,7 +350,7 @@ sub parse_makefile($)
} }
if (defined $make{"=flags"} && defined $make{"=rules"} && if (defined $make{"=flags"} && defined $make{"=rules"} &&
($make{"=rules"} eq $makerules{"MAKE_DLL_RULES"} || ($make{"=rules"} eq "MAKE_DLL_RULES" ||
$make{"=rules"} eq $makerules{"MAKE_PROG_RULES"})) $make{"=rules"} eq $makerules{"MAKE_PROG_RULES"}))
{ {
die "Custom install-lib rule not allowed in $file" if defined ${$make{"=flags"}}{"install-lib"}; die "Custom install-lib rule not allowed in $file" if defined ${$make{"=flags"}}{"install-lib"};
@ -377,6 +376,14 @@ sub assign_sources_to_makefiles(@)
$subdirs{"$dir/ $subdir"} = 1 if $subdir; $subdirs{"$dir/ $subdir"} = 1 if $subdir;
next unless $dir; next unless $dir;
my $basedir = dirname( $dir );
if ($basedir && !defined $makefiles{"$basedir/Makefile"})
{
$subdir = $basedir;
$basedir = dirname( $basedir );
$subdirs{"$basedir/ $subdir"} = 1;
}
die "no makefile found for $file\n" unless defined $makefiles{"$dir/Makefile"}; die "no makefile found for $file\n" unless defined $makefiles{"$dir/Makefile"};
my $make = $makefiles{"$dir/Makefile"}; my $make = $makefiles{"$dir/Makefile"};
@ -447,7 +454,7 @@ sub update_makefiles(@)
my $args = ""; my $args = "";
my $is_win16 = $make{"MODULE"} && ($make{"MODULE"} =~ /16$/ || $modules16{$make{"MODULE"}}); my $is_win16 = $make{"MODULE"} && ($make{"MODULE"} =~ /16$/ || $modules16{$make{"MODULE"}});
my $flag_args = defined $make{"=flags"} ? ",[" . join(",",sort keys %{$make{"=flags"}}) ."]" : ""; my $flag_args = defined $make{"=flags"} ? ",[" . join(",",sort keys %{$make{"=flags"}}) ."]" : "";
if ($rules eq $makerules{"MAKE_DLL_RULES"}) if ($rules eq "MAKE_DLL_RULES")
{ {
(my $name = $file) =~ s/^dlls\/(.*)\/Makefile/$1/; (my $name = $file) =~ s/^dlls\/(.*)\/Makefile/$1/;
if ($name =~ /\./) if ($name =~ /\./)
@ -546,7 +553,7 @@ sub update_ignores(@)
{ {
my @pattern = @{$src}; my @pattern = @{$src};
next unless defined $makefile{$pattern[0]}; next unless defined $makefile{$pattern[0]};
next if $pattern[0] eq "IDL_TLB_SRCS" && $makefile{"=rules"} eq "dlls/Makedll.rules"; next if $pattern[0] eq "IDL_TLB_SRCS" && $makefile{"=rules"} eq "MAKE_DLL_RULES";
push @list, map { (my $ret = $_) =~ s/$pattern[1]$/$pattern[2]/; $ret; } @{$makefile{$pattern[0]}}; push @list, map { (my $ret = $_) =~ s/$pattern[1]$/$pattern[2]/; $ret; } @{$makefile{$pattern[0]}};
} }
foreach my $f (@list) foreach my $f (@list)