Skip to content
Snippets Groups Projects
Commit 6cce7fa0 authored by Alexandre Julliard's avatar Alexandre Julliard
Browse files

configure: Add a generic mechanism for passing flags to dll and program rules.

parent 86395501
No related merge requests found
...@@ -163,6 +163,11 @@ wine_fn_append_rule () ...@@ -163,6 +163,11 @@ wine_fn_append_rule ()
AS_VAR_APPEND($[1],"$as_nl$[2]") AS_VAR_APPEND($[1],"$as_nl$[2]")
} }
wine_fn_has_flag ()
{
expr ",$[2]," : ".*,$[1],.*" >/dev/null
}
wine_fn_all_dir_rules () wine_fn_all_dir_rules ()
{ {
ac_dir=$[1] ac_dir=$[1]
...@@ -236,8 +241,8 @@ wine_fn_config_dll () ...@@ -236,8 +241,8 @@ 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]
ac_implib=$[3] ac_flags=$[3]
ac_implibsrc=$[4] ac_implib=$[4]
ac_file=$ac_dir/lib$ac_implib ac_file=$ac_dir/lib$ac_implib
ac_deps="tools/widl tools/winebuild tools/winegcc include" ac_deps="tools/widl tools/winebuild tools/winegcc include"
ac_implibflags="" ac_implibflags=""
...@@ -263,7 +268,7 @@ install-lib:: $ac_dir/Makefile __builddeps__ ...@@ -263,7 +268,7 @@ install-lib:: $ac_dir/Makefile __builddeps__
uninstall manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile uninstall manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
@cd $ac_dir && \$(MAKE) \$[@]"]) @cd $ac_dir && \$(MAKE) \$[@]"])
if test -n "$ac_implibsrc" if wine_fn_has_flag staticimplib $ac_flags
then then
wine_fn_append_rule ALL_MAKEFILE_DEPENDS \ wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
"__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
...@@ -282,7 +287,7 @@ $ac_file.cross.a: $ac_dir/Makefile dummy ...@@ -282,7 +287,7 @@ $ac_file.cross.a: $ac_dir/Makefile dummy
@cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a" @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
fi fi
elif test -n "$ac_implib" elif wine_fn_has_flag implib $ac_flags
then then
wine_fn_append_rule ALL_MAKEFILE_DEPENDS \ wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
"__builddeps__: $ac_file.$IMPLIBEXT "__builddeps__: $ac_file.$IMPLIBEXT
...@@ -324,7 +329,7 @@ wine_fn_config_program () ...@@ -324,7 +329,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]
ac_install=$[3] ac_flags=$[3]
wine_fn_all_dir_rules $ac_dir programs/Makeprog.rules wine_fn_all_dir_rules $ac_dir programs/Makeprog.rules
AS_VAR_IF([$ac_enable],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \ AS_VAR_IF([$ac_enable],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
...@@ -333,13 +338,13 @@ wine_fn_config_program () ...@@ -333,13 +338,13 @@ wine_fn_config_program ()
$ac_dir: $ac_dir/Makefile __builddeps__ dummy $ac_dir: $ac_dir/Makefile __builddeps__ dummy
@cd $ac_dir && \$(MAKE)" @cd $ac_dir && \$(MAKE)"
test -n "$ac_install" || return wine_fn_has_flag install $ac_flags || return
wine_fn_append_rule ALL_MAKEFILE_DEPENDS \ wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
"install install-lib:: $ac_dir/Makefile __builddeps__ "install install-lib:: $ac_dir/Makefile __builddeps__
@cd $ac_dir && \$(MAKE) install @cd $ac_dir && \$(MAKE) install
uninstall:: $ac_dir/Makefile uninstall:: $ac_dir/Makefile
@cd $ac_dir && \$(MAKE) uninstall" @cd $ac_dir && \$(MAKE) uninstall"
if test "$ac_install" = installbin -a -n "$DLLEXT" -a "x$enable_tools" != xno if wine_fn_has_flag installbin $ac_flags -a -n "$DLLEXT" -a "x$enable_tools" != xno
then then
wine_fn_append_rule ALL_MAKEFILE_DEPENDS \ wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
"install install-lib:: tools \$(DESTDIR)\$(bindir) "install install-lib:: tools \$(DESTDIR)\$(bindir)
...@@ -492,20 +497,20 @@ AS_VAR_POPDEF([ac_enable])]) ...@@ -492,20 +497,20 @@ AS_VAR_POPDEF([ac_enable])])
dnl **** Create a dll makefile from config.status **** dnl **** Create a dll makefile from config.status ****
dnl dnl
dnl Usage: WINE_CONFIG_DLL(name,enable,implib,implibsrc) dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
dnl dnl
AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
wine_fn_config_dll [$1] ac_enable [$3] m4_ifval([$4],["$4"])dnl wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
AS_VAR_POPDEF([ac_enable])]) AS_VAR_POPDEF([ac_enable])])
dnl **** Create a program makefile from config.status **** dnl **** Create a program makefile from config.status ****
dnl dnl
dnl Usage: WINE_CONFIG_PROGRAM(name,install,enable) dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
dnl dnl
AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
AS_VAR_PUSHDEF([ac_enable],m4_default([$3],[enable_]$1))dnl AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
wine_fn_config_program [$1] ac_enable [$2]dnl wine_fn_config_program [$1] ac_enable [$3]dnl
AS_VAR_POPDEF([ac_enable])]) AS_VAR_POPDEF([ac_enable])])
dnl **** Create a test makefile from config.status **** dnl **** Create a test makefile from config.status ****
......
This diff is collapsed.
This diff is collapsed.
...@@ -367,6 +367,7 @@ sub update_makefiles(@) ...@@ -367,6 +367,7 @@ sub update_makefiles(@)
my %make = %{$makefiles{$file}}; my %make = %{$makefiles{$file}};
my $rules = $make{"=rules"}; my $rules = $make{"=rules"};
my $args = ""; my $args = "";
my @flags;
my $is_win16 = $make{"MODULE"} && ($make{"MODULE"} =~ /16$/ || $modules16{$make{"MODULE"}}); my $is_win16 = $make{"MODULE"} && ($make{"MODULE"} =~ /16$/ || $modules16{$make{"MODULE"}});
if ($rules eq $makerules{"MAKE_DLL_RULES"}) if ($rules eq $makerules{"MAKE_DLL_RULES"})
{ {
...@@ -380,11 +381,12 @@ sub update_makefiles(@) ...@@ -380,11 +381,12 @@ sub update_makefiles(@)
die "Invalid MODULE in $file" unless $make{"MODULE"} eq "$name.dll"; die "Invalid MODULE in $file" unless $make{"MODULE"} eq "$name.dll";
} }
my $implib = $make{"IMPORTLIB"} || ""; my $implib = $make{"IMPORTLIB"} || "";
my $implib_srcs = defined($make{"IMPLIB_SRCS"}) && join( " ", @{$make{"IMPLIB_SRCS"}} ); push @flags, "implib" if $implib;
$args .= "," if $implib || $is_win16; push @flags, "staticimplib" if defined($make{"IMPLIB_SRCS"});
$args .= "," if $is_win16 || @flags;
$args .= "enable_win16" if $is_win16; $args .= "enable_win16" if $is_win16;
$args .= ",[" . join(",",@flags) ."]" if @flags;
$args .= ",[$implib]" if $implib; $args .= ",[$implib]" if $implib;
$args .= ",[$implib_srcs]" if $implib_srcs;
push @lines, "WINE_CONFIG_DLL($name$args)\n"; push @lines, "WINE_CONFIG_DLL($name$args)\n";
} }
elsif ($rules eq $makerules{"MAKE_PROG_RULES"}) elsif ($rules eq $makerules{"MAKE_PROG_RULES"})
...@@ -398,11 +400,11 @@ sub update_makefiles(@) ...@@ -398,11 +400,11 @@ sub update_makefiles(@)
{ {
die "Invalid MODULE in $file" unless $make{"MODULE"} eq "$name.exe"; die "Invalid MODULE in $file" unless $make{"MODULE"} eq "$name.exe";
} }
my $install = $dont_install{$name} ? "" : "install"; push @flags, "install" unless $dont_install{$name};
$install .= "bin" if $bin_install{$name}; push @flags, "installbin" if $bin_install{$name};
$args .= "," if $is_win16 || $install; $args .= "," if $is_win16 || @flags;
$args .= "$install" if $install; $args .= "enable_win16" if $is_win16;
$args .= ",enable_win16" if $is_win16; $args .= ",[" . join(",",@flags) ."]" if @flags;
push @lines, "WINE_CONFIG_PROGRAM($name$args)\n"; push @lines, "WINE_CONFIG_PROGRAM($name$args)\n";
} }
elsif ($rules eq $makerules{"MAKE_TEST_RULES"}) elsif ($rules eq $makerules{"MAKE_TEST_RULES"})
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment