From 733ed05650274a02a09ee0ae998ba2662252a25f Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Thu, 22 Feb 2018 14:34:56 +0100 Subject: [PATCH] makefiles: Generate the top-level install rules using the subdirs rules. Signed-off-by: Alexandre Julliard --- aclocal.m4 | 126 ++--------------- configure | 312 +++++++++++++++---------------------------- configure.ac | 206 ++++++++++++++-------------- tools/make_makefiles | 29 ---- tools/makedep.c | 93 ++++++++----- 5 files changed, 281 insertions(+), 485 deletions(-) diff --git a/aclocal.m4 b/aclocal.m4 index b7d236f308c..ce6aba9562f 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -245,35 +245,6 @@ $ac_dir: dummy @cd $ac_dir && \$(MAKE)" } -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/install:: $ac_dir - @cd $ac_dir && \$(MAKE) install -install:: $ac_dir/install" - - if wine_fn_has_flag install-lib - then - wine_fn_append_rule \ -".PHONY: $ac_dir/install-lib -$ac_dir/install-lib:: $ac_dir - @cd $ac_dir && \$(MAKE) install-lib -install-lib:: $ac_dir/install-lib" - fi - - if wine_fn_has_flag install-dev - then - wine_fn_append_rule \ -".PHONY: $ac_dir/install-dev -$ac_dir/install-dev:: $ac_dir - @cd $ac_dir && \$(MAKE) install-dev -install-dev:: $ac_dir/install-dev" - fi -} - wine_fn_disabled_rules () { wine_fn_append_file SUBDIRS $ac_dir @@ -284,7 +255,6 @@ wine_fn_config_makefile () { ac_dir=$[1] ac_enable=$[2] - ac_flags=$[3] case $ac_dir in dnl These are created as symlinks for wow64 builds @@ -292,13 +262,11 @@ wine_fn_config_makefile () esac AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return]) wine_fn_all_rules - wine_fn_install_rules } wine_fn_config_lib () { ac_name=$[1] - ac_flags=$[2] ac_dir=dlls/$ac_name ac_deps="include" @@ -306,11 +274,7 @@ wine_fn_config_lib () wine_fn_all_rules wine_fn_append_rule \ -".PHONY: $ac_dir/install -$ac_dir/install:: $ac_dir - \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a -install install-dev:: $ac_dir/install -__builddeps__: $ac_dir +"__builddeps__: $ac_dir $ac_dir: $ac_deps" } @@ -348,20 +312,7 @@ wine_fn_config_dll () wine_fn_append_rule \ "$ac_dir: __builddeps__ manpages htmlpages sgmlpages xmlpages:: - @cd $ac_dir && \$(MAKE) \$[@] -.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" - else - wine_fn_append_rule \ -"$ac_dir/install-lib:: $ac_dir - \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll" - fi]) + @cd $ac_dir && \$(MAKE) \$[@]"]) if wine_fn_has_flag staticimplib then @@ -369,11 +320,7 @@ install install-lib:: $ac_dir/install-lib" "__builddeps__: $ac_file.a $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/install-dev:: $ac_file.a - \$(INSTALL_DATA) $ac_file.a \$(DESTDIR)\$(dlldir)/lib$ac_implib.a -install install-dev:: $ac_dir/install-dev" + @cd $ac_dir && \$(MAKE) lib$ac_implib.a" if test -n "$CROSSTARGET" -a -z "$ac_implibflags" then @@ -390,11 +337,7 @@ $ac_file.cross.a: dummy $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/install-dev:: $ac_file.$IMPLIBEXT - \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT -install install-dev:: $ac_dir/install-dev" + \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec" if test -n "$CROSSTARGET" -a -z "$ac_implibflags" then wine_fn_append_rule \ @@ -410,56 +353,17 @@ wine_fn_config_program () ac_name=$[1] ac_dir=programs/$ac_name ac_enable=$[2] - ac_flags=$[3] - ac_program=$ac_name - - case $ac_name in - *.*) ;; - *) ac_program=$ac_program.exe ;; - esac AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return]) wine_fn_all_rules wine_fn_append_rule "$ac_dir: __builddeps__" - - wine_fn_has_flag install || return - wine_fn_append_rule \ -".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" - - 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" - fi - else - wine_fn_append_rule \ -"$ac_dir/install:: $ac_dir - \$(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)" - fi } wine_fn_config_test () { ac_dir=$[1] ac_name=$[2] - ac_flags=$[3] AS_VAR_IF([enable_tests],[no],[wine_fn_disabled_rules; return]) @@ -487,11 +391,9 @@ $ac_dir/crosstest: __builddeps__ dummy wine_fn_config_tool () { ac_dir=$[1] - ac_flags=$[2] AS_VAR_IF([enable_tools],[no],[wine_fn_append_file DISABLED_SUBDIRS $ac_dir; return]) wine_fn_all_rules - wine_fn_install_rules wine_fn_append_rule "__tooldeps__: $ac_dir" wine_fn_append_rule "$ac_dir: libs/port" @@ -544,13 +446,13 @@ fi])[]dnl dnl **** Create a makefile from config.status **** dnl -dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags) +dnl Usage: WINE_CONFIG_MAKEFILE(file,enable) dnl AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl m4_append_uniq([_AC_USER_OPTS],ac_enable,[ ])dnl -wine_fn_config_makefile [$1] ac_enable [$3]dnl +wine_fn_config_makefile [$1] ac_enable[]dnl AS_VAR_POPDEF([ac_enable])]) dnl **** Create a dll makefile from config.status **** @@ -566,41 +468,41 @@ AS_VAR_POPDEF([ac_enable])]) dnl **** Create a program makefile from config.status **** dnl -dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags) +dnl Usage: WINE_CONFIG_PROGRAM(name,enable) dnl AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl m4_append_uniq([_AC_USER_OPTS],ac_enable,[ ])dnl -wine_fn_config_program [$1] ac_enable [$3]dnl +wine_fn_config_program [$1] ac_enable[]dnl AS_VAR_POPDEF([ac_enable])]) dnl **** Create a test makefile from config.status **** dnl -dnl Usage: WINE_CONFIG_TEST(dir,flags) +dnl Usage: WINE_CONFIG_TEST(dir) dnl AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl -wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl +wine_fn_config_test $1 ac_name[]ac_suffix[]dnl m4_popdef([ac_suffix])dnl m4_popdef([ac_name])]) dnl **** Create a static lib makefile from config.status **** dnl -dnl Usage: WINE_CONFIG_LIB(name,flags) +dnl Usage: WINE_CONFIG_LIB(name) dnl AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl -wine_fn_config_lib [$1] [$2]]) +wine_fn_config_lib [$1]]) dnl **** Create a tool makefile from config.status **** dnl -dnl Usage: WINE_CONFIG_TOOL(name,flags) +dnl Usage: WINE_CONFIG_TOOL(name) dnl AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl m4_append_uniq([_AC_USER_OPTS],[enable_tools],[ ])dnl -wine_fn_config_tool [$1] [$2]]) +wine_fn_config_tool [$1]]) dnl **** Append a file to the .gitignore list **** dnl diff --git a/configure b/configure index a0713c0fa37..d21bd541389 100755 --- a/configure +++ b/configure @@ -7741,35 +7741,6 @@ $ac_dir: dummy @cd $ac_dir && \$(MAKE)" } -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/install:: $ac_dir - @cd $ac_dir && \$(MAKE) install -install:: $ac_dir/install" - - if wine_fn_has_flag install-lib - then - wine_fn_append_rule \ -".PHONY: $ac_dir/install-lib -$ac_dir/install-lib:: $ac_dir - @cd $ac_dir && \$(MAKE) install-lib -install-lib:: $ac_dir/install-lib" - fi - - if wine_fn_has_flag install-dev - then - wine_fn_append_rule \ -".PHONY: $ac_dir/install-dev -$ac_dir/install-dev:: $ac_dir - @cd $ac_dir && \$(MAKE) install-dev -install-dev:: $ac_dir/install-dev" - fi -} - wine_fn_disabled_rules () { wine_fn_append_file SUBDIRS $ac_dir @@ -7780,7 +7751,6 @@ wine_fn_config_makefile () { ac_dir=$1 ac_enable=$2 - ac_flags=$3 case $ac_dir in fonts|server) test -z "$with_wine64" || return ;; @@ -7789,13 +7759,11 @@ wine_fn_config_makefile () wine_fn_disabled_rules; return fi wine_fn_all_rules - wine_fn_install_rules } wine_fn_config_lib () { ac_name=$1 - ac_flags=$2 ac_dir=dlls/$ac_name ac_deps="include" @@ -7807,11 +7775,7 @@ fi wine_fn_all_rules wine_fn_append_rule \ -".PHONY: $ac_dir/install -$ac_dir/install:: $ac_dir - \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a -install install-dev:: $ac_dir/install -__builddeps__: $ac_dir +"__builddeps__: $ac_dir $ac_dir: $ac_deps" } @@ -7852,20 +7816,7 @@ else wine_fn_append_rule \ "$ac_dir: __builddeps__ manpages htmlpages sgmlpages xmlpages:: - @cd $ac_dir && \$(MAKE) \$@ -.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" - else - wine_fn_append_rule \ -"$ac_dir/install-lib:: $ac_dir - \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll" - fi + @cd $ac_dir && \$(MAKE) \$@" fi if wine_fn_has_flag staticimplib @@ -7874,11 +7825,7 @@ fi "__builddeps__: $ac_file.a $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/install-dev:: $ac_file.a - \$(INSTALL_DATA) $ac_file.a \$(DESTDIR)\$(dlldir)/lib$ac_implib.a -install install-dev:: $ac_dir/install-dev" + @cd $ac_dir && \$(MAKE) lib$ac_implib.a" if test -n "$CROSSTARGET" -a -z "$ac_implibflags" then @@ -7895,11 +7842,7 @@ $ac_file.cross.a: dummy $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/install-dev:: $ac_file.$IMPLIBEXT - \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT -install install-dev:: $ac_dir/install-dev" + \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$@ --export $srcdir/$ac_dir/$ac_name.spec" if test -n "$CROSSTARGET" -a -z "$ac_implibflags" then wine_fn_append_rule \ @@ -7915,13 +7858,6 @@ wine_fn_config_program () ac_name=$1 ac_dir=programs/$ac_name ac_enable=$2 - ac_flags=$3 - ac_program=$ac_name - - case $ac_name in - *.*) ;; - *) ac_program=$ac_program.exe ;; - esac if eval test \"x\$"$ac_enable"\" = x"no"; then : wine_fn_disabled_rules; return @@ -7929,44 +7865,12 @@ fi wine_fn_all_rules wine_fn_append_rule "$ac_dir: __builddeps__" - - wine_fn_has_flag install || return - wine_fn_append_rule \ -".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" - - 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" - fi - else - wine_fn_append_rule \ -"$ac_dir/install:: $ac_dir - \$(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)" - fi } wine_fn_config_test () { ac_dir=$1 ac_name=$2 - ac_flags=$3 if test "x$enable_tests" = xno; then : wine_fn_disabled_rules; return @@ -7996,13 +7900,11 @@ $ac_dir/crosstest: __builddeps__ dummy wine_fn_config_tool () { ac_dir=$1 - ac_flags=$2 if test "x$enable_tools" = xno; then : wine_fn_append_file DISABLED_SUBDIRS $ac_dir; return fi wine_fn_all_rules - wine_fn_install_rules wine_fn_append_rule "__tooldeps__: $ac_dir" wine_fn_append_rule "$ac_dir: libs/port" @@ -19330,122 +19232,122 @@ wine_fn_config_test dlls/xmllite/tests xmllite_test wine_fn_config_dll xolehlp enable_xolehlp wine_fn_config_dll xpsprint enable_xpsprint wine_fn_config_dll xpssvcs enable_xpssvcs -wine_fn_config_makefile fonts enable_fonts install-lib -wine_fn_config_makefile include enable_include install-dev +wine_fn_config_makefile fonts enable_fonts +wine_fn_config_makefile include enable_include wine_fn_config_makefile libs/port enable_libs_port -wine_fn_config_makefile libs/wine enable_libs_wine implib,install-dev,install-lib +wine_fn_config_makefile libs/wine enable_libs_wine wine_fn_config_makefile libs/wpp enable_libs_wpp -wine_fn_config_makefile loader enable_loader install-lib +wine_fn_config_makefile loader enable_loader wine_fn_config_makefile po enable_po -wine_fn_config_program arp enable_arp install -wine_fn_config_program aspnet_regiis enable_aspnet_regiis install -wine_fn_config_program attrib enable_attrib install -wine_fn_config_program cabarc enable_cabarc install -wine_fn_config_program cacls enable_cacls install -wine_fn_config_program clock enable_clock install -wine_fn_config_program cmd enable_cmd install +wine_fn_config_program arp enable_arp +wine_fn_config_program aspnet_regiis enable_aspnet_regiis +wine_fn_config_program attrib enable_attrib +wine_fn_config_program cabarc enable_cabarc +wine_fn_config_program cacls enable_cacls +wine_fn_config_program clock enable_clock +wine_fn_config_program cmd enable_cmd wine_fn_config_test programs/cmd/tests cmd.exe_test -wine_fn_config_program conhost enable_conhost install -wine_fn_config_program control enable_control install -wine_fn_config_program cscript enable_cscript install -wine_fn_config_program dpnsvr enable_dpnsvr install -wine_fn_config_program dxdiag enable_dxdiag install -wine_fn_config_program eject enable_eject install -wine_fn_config_program expand enable_expand install -wine_fn_config_program explorer enable_explorer install -wine_fn_config_program extrac32 enable_extrac32 install -wine_fn_config_program findstr enable_findstr install -wine_fn_config_program fsutil enable_fsutil install -wine_fn_config_program hh enable_hh install -wine_fn_config_program hostname enable_hostname install -wine_fn_config_program icacls enable_icacls install -wine_fn_config_program icinfo enable_icinfo install -wine_fn_config_program iexplore enable_iexplore install -wine_fn_config_program ipconfig enable_ipconfig install -wine_fn_config_program lodctr enable_lodctr install -wine_fn_config_program mofcomp enable_mofcomp install -wine_fn_config_program mshta enable_mshta install -wine_fn_config_program msiexec enable_msiexec install,installbin,manpage -wine_fn_config_program msinfo32 enable_msinfo32 install -wine_fn_config_program net enable_net install -wine_fn_config_program netsh enable_netsh install -wine_fn_config_program netstat enable_netstat install -wine_fn_config_program ngen enable_ngen install -wine_fn_config_program notepad enable_notepad install,installbin,manpage -wine_fn_config_program oleview enable_oleview install -wine_fn_config_program ping enable_ping install -wine_fn_config_program plugplay enable_plugplay install -wine_fn_config_program powershell enable_powershell install -wine_fn_config_program presentationfontcache enable_presentationfontcache install -wine_fn_config_program progman enable_progman install -wine_fn_config_program reg enable_reg install +wine_fn_config_program conhost enable_conhost +wine_fn_config_program control enable_control +wine_fn_config_program cscript enable_cscript +wine_fn_config_program dpnsvr enable_dpnsvr +wine_fn_config_program dxdiag enable_dxdiag +wine_fn_config_program eject enable_eject +wine_fn_config_program expand enable_expand +wine_fn_config_program explorer enable_explorer +wine_fn_config_program extrac32 enable_extrac32 +wine_fn_config_program findstr enable_findstr +wine_fn_config_program fsutil enable_fsutil +wine_fn_config_program hh enable_hh +wine_fn_config_program hostname enable_hostname +wine_fn_config_program icacls enable_icacls +wine_fn_config_program icinfo enable_icinfo +wine_fn_config_program iexplore enable_iexplore +wine_fn_config_program ipconfig enable_ipconfig +wine_fn_config_program lodctr enable_lodctr +wine_fn_config_program mofcomp enable_mofcomp +wine_fn_config_program mshta enable_mshta +wine_fn_config_program msiexec enable_msiexec +wine_fn_config_program msinfo32 enable_msinfo32 +wine_fn_config_program net enable_net +wine_fn_config_program netsh enable_netsh +wine_fn_config_program netstat enable_netstat +wine_fn_config_program ngen enable_ngen +wine_fn_config_program notepad enable_notepad +wine_fn_config_program oleview enable_oleview +wine_fn_config_program ping enable_ping +wine_fn_config_program plugplay enable_plugplay +wine_fn_config_program powershell enable_powershell +wine_fn_config_program presentationfontcache enable_presentationfontcache +wine_fn_config_program progman enable_progman +wine_fn_config_program reg enable_reg wine_fn_config_test programs/reg/tests reg.exe_test -wine_fn_config_program regasm enable_regasm install -wine_fn_config_program regedit enable_regedit install,installbin,manpage +wine_fn_config_program regasm enable_regasm +wine_fn_config_program regedit enable_regedit wine_fn_config_test programs/regedit/tests regedit.exe_test -wine_fn_config_program regsvcs enable_regsvcs install -wine_fn_config_program regsvr32 enable_regsvr32 install,installbin,manpage -wine_fn_config_program rpcss enable_rpcss install -wine_fn_config_program rundll.exe16 enable_win16 install -wine_fn_config_program rundll32 enable_rundll32 install -wine_fn_config_program sc enable_sc install -wine_fn_config_program schtasks enable_schtasks install +wine_fn_config_program regsvcs enable_regsvcs +wine_fn_config_program regsvr32 enable_regsvr32 +wine_fn_config_program rpcss enable_rpcss +wine_fn_config_program rundll.exe16 enable_win16 +wine_fn_config_program rundll32 enable_rundll32 +wine_fn_config_program sc enable_sc +wine_fn_config_program schtasks enable_schtasks wine_fn_config_test programs/schtasks/tests schtasks.exe_test -wine_fn_config_program sdbinst enable_sdbinst install -wine_fn_config_program secedit enable_secedit install -wine_fn_config_program servicemodelreg enable_servicemodelreg install -wine_fn_config_program services enable_services install +wine_fn_config_program sdbinst enable_sdbinst +wine_fn_config_program secedit enable_secedit +wine_fn_config_program servicemodelreg enable_servicemodelreg +wine_fn_config_program services enable_services wine_fn_config_test programs/services/tests services.exe_test -wine_fn_config_program shutdown enable_shutdown install -wine_fn_config_program spoolsv enable_spoolsv install -wine_fn_config_program start enable_start install -wine_fn_config_program subst enable_subst install -wine_fn_config_program svchost enable_svchost install -wine_fn_config_program systeminfo enable_systeminfo install -wine_fn_config_program taskkill enable_taskkill install -wine_fn_config_program tasklist enable_tasklist install -wine_fn_config_program taskmgr enable_taskmgr install -wine_fn_config_program termsv enable_termsv install -wine_fn_config_program uninstaller enable_uninstaller install -wine_fn_config_program unlodctr enable_unlodctr install -wine_fn_config_program view enable_view install -wine_fn_config_program wevtutil enable_wevtutil install -wine_fn_config_program wineboot enable_wineboot install,installbin,manpage -wine_fn_config_program winebrowser enable_winebrowser install -wine_fn_config_program winecfg enable_winecfg install,installbin,manpage -wine_fn_config_program wineconsole enable_wineconsole install,installbin,manpage -wine_fn_config_program winedbg enable_winedbg install,installbin,manpage -wine_fn_config_program winedevice enable_winedevice install -wine_fn_config_program winefile enable_winefile install,installbin,manpage -wine_fn_config_program winemenubuilder enable_winemenubuilder install -wine_fn_config_program winemine enable_winemine install,installbin,manpage -wine_fn_config_program winemsibuilder enable_winemsibuilder install -wine_fn_config_program winepath enable_winepath install,installbin,manpage +wine_fn_config_program shutdown enable_shutdown +wine_fn_config_program spoolsv enable_spoolsv +wine_fn_config_program start enable_start +wine_fn_config_program subst enable_subst +wine_fn_config_program svchost enable_svchost +wine_fn_config_program systeminfo enable_systeminfo +wine_fn_config_program taskkill enable_taskkill +wine_fn_config_program tasklist enable_tasklist +wine_fn_config_program taskmgr enable_taskmgr +wine_fn_config_program termsv enable_termsv +wine_fn_config_program uninstaller enable_uninstaller +wine_fn_config_program unlodctr enable_unlodctr +wine_fn_config_program view enable_view +wine_fn_config_program wevtutil enable_wevtutil +wine_fn_config_program wineboot enable_wineboot +wine_fn_config_program winebrowser enable_winebrowser +wine_fn_config_program winecfg enable_winecfg +wine_fn_config_program wineconsole enable_wineconsole +wine_fn_config_program winedbg enable_winedbg +wine_fn_config_program winedevice enable_winedevice +wine_fn_config_program winefile enable_winefile +wine_fn_config_program winemenubuilder enable_winemenubuilder +wine_fn_config_program winemine enable_winemine +wine_fn_config_program winemsibuilder enable_winemsibuilder +wine_fn_config_program winepath enable_winepath wine_fn_config_program winetest enable_winetest -wine_fn_config_program winevdm enable_win16 install -wine_fn_config_program winhelp.exe16 enable_win16 install -wine_fn_config_program winhlp32 enable_winhlp32 install -wine_fn_config_program winoldap.mod16 enable_win16 install -wine_fn_config_program winver enable_winver install -wine_fn_config_program wmic enable_wmic install -wine_fn_config_program wmplayer enable_wmplayer install -wine_fn_config_program wordpad enable_wordpad install -wine_fn_config_program write enable_write install -wine_fn_config_program wscript enable_wscript install +wine_fn_config_program winevdm enable_win16 +wine_fn_config_program winhelp.exe16 enable_win16 +wine_fn_config_program winhlp32 enable_winhlp32 +wine_fn_config_program winoldap.mod16 enable_win16 +wine_fn_config_program winver enable_winver +wine_fn_config_program wmic enable_wmic +wine_fn_config_program wmplayer enable_wmplayer +wine_fn_config_program wordpad enable_wordpad +wine_fn_config_program write enable_write +wine_fn_config_program wscript enable_wscript wine_fn_config_test programs/wscript/tests wscript.exe_test -wine_fn_config_program wusa enable_wusa install -wine_fn_config_program xcopy enable_xcopy install +wine_fn_config_program wusa enable_wusa +wine_fn_config_program xcopy enable_xcopy wine_fn_config_test programs/xcopy/tests xcopy.exe_test -wine_fn_config_makefile server enable_server install-lib +wine_fn_config_makefile server enable_server wine_fn_config_tool tools wine_fn_config_tool tools/sfnt2fon -wine_fn_config_tool tools/widl install-dev -wine_fn_config_tool tools/winebuild install-dev -wine_fn_config_tool tools/winedump install-dev -wine_fn_config_tool tools/winegcc install-dev -wine_fn_config_tool tools/winemaker install-dev -wine_fn_config_tool tools/wmc install-dev -wine_fn_config_tool tools/wrc install-dev +wine_fn_config_tool tools/widl +wine_fn_config_tool tools/winebuild +wine_fn_config_tool tools/winedump +wine_fn_config_tool tools/winegcc +wine_fn_config_tool tools/winemaker +wine_fn_config_tool tools/wmc +wine_fn_config_tool tools/wrc wine_fn_append_file CONFIGURE_TARGETS "TAGS" diff --git a/configure.ac b/configure.ac index e72efce805f..762c10167d0 100644 --- a/configure.ac +++ b/configure.ac @@ -3778,122 +3778,122 @@ WINE_CONFIG_TEST(dlls/xmllite/tests) WINE_CONFIG_DLL(xolehlp) WINE_CONFIG_DLL(xpsprint) WINE_CONFIG_DLL(xpssvcs) -WINE_CONFIG_MAKEFILE([fonts],,[install-lib]) -WINE_CONFIG_MAKEFILE([include],,[install-dev]) +WINE_CONFIG_MAKEFILE([fonts]) +WINE_CONFIG_MAKEFILE([include]) WINE_CONFIG_MAKEFILE([libs/port]) -WINE_CONFIG_MAKEFILE([libs/wine],,[implib,install-dev,install-lib]) +WINE_CONFIG_MAKEFILE([libs/wine],,[implib]) WINE_CONFIG_MAKEFILE([libs/wpp]) -WINE_CONFIG_MAKEFILE([loader],,[install-lib]) +WINE_CONFIG_MAKEFILE([loader]) WINE_CONFIG_MAKEFILE([po]) -WINE_CONFIG_PROGRAM(arp,,[install]) -WINE_CONFIG_PROGRAM(aspnet_regiis,,[install]) -WINE_CONFIG_PROGRAM(attrib,,[install]) -WINE_CONFIG_PROGRAM(cabarc,,[install]) -WINE_CONFIG_PROGRAM(cacls,,[install]) -WINE_CONFIG_PROGRAM(clock,,[install]) -WINE_CONFIG_PROGRAM(cmd,,[install]) +WINE_CONFIG_PROGRAM(arp) +WINE_CONFIG_PROGRAM(aspnet_regiis) +WINE_CONFIG_PROGRAM(attrib) +WINE_CONFIG_PROGRAM(cabarc) +WINE_CONFIG_PROGRAM(cacls) +WINE_CONFIG_PROGRAM(clock) +WINE_CONFIG_PROGRAM(cmd) WINE_CONFIG_TEST(programs/cmd/tests) -WINE_CONFIG_PROGRAM(conhost,,[install]) -WINE_CONFIG_PROGRAM(control,,[install]) -WINE_CONFIG_PROGRAM(cscript,,[install]) -WINE_CONFIG_PROGRAM(dpnsvr,,[install]) -WINE_CONFIG_PROGRAM(dxdiag,,[install]) -WINE_CONFIG_PROGRAM(eject,,[install]) -WINE_CONFIG_PROGRAM(expand,,[install]) -WINE_CONFIG_PROGRAM(explorer,,[install]) -WINE_CONFIG_PROGRAM(extrac32,,[install]) -WINE_CONFIG_PROGRAM(findstr,,[install]) -WINE_CONFIG_PROGRAM(fsutil,,[install]) -WINE_CONFIG_PROGRAM(hh,,[install]) -WINE_CONFIG_PROGRAM(hostname,,[install]) -WINE_CONFIG_PROGRAM(icacls,,[install]) -WINE_CONFIG_PROGRAM(icinfo,,[install]) -WINE_CONFIG_PROGRAM(iexplore,,[install]) -WINE_CONFIG_PROGRAM(ipconfig,,[install]) -WINE_CONFIG_PROGRAM(lodctr,,[install]) -WINE_CONFIG_PROGRAM(mofcomp,,[install]) -WINE_CONFIG_PROGRAM(mshta,,[install]) -WINE_CONFIG_PROGRAM(msiexec,,[install,installbin,manpage]) -WINE_CONFIG_PROGRAM(msinfo32,,[install]) -WINE_CONFIG_PROGRAM(net,,[install]) -WINE_CONFIG_PROGRAM(netsh,,[install]) -WINE_CONFIG_PROGRAM(netstat,,[install]) -WINE_CONFIG_PROGRAM(ngen,,[install]) -WINE_CONFIG_PROGRAM(notepad,,[install,installbin,manpage]) -WINE_CONFIG_PROGRAM(oleview,,[install]) -WINE_CONFIG_PROGRAM(ping,,[install]) -WINE_CONFIG_PROGRAM(plugplay,,[install]) -WINE_CONFIG_PROGRAM(powershell,,[install]) -WINE_CONFIG_PROGRAM(presentationfontcache,,[install]) -WINE_CONFIG_PROGRAM(progman,,[install]) -WINE_CONFIG_PROGRAM(reg,,[install]) +WINE_CONFIG_PROGRAM(conhost) +WINE_CONFIG_PROGRAM(control) +WINE_CONFIG_PROGRAM(cscript) +WINE_CONFIG_PROGRAM(dpnsvr) +WINE_CONFIG_PROGRAM(dxdiag) +WINE_CONFIG_PROGRAM(eject) +WINE_CONFIG_PROGRAM(expand) +WINE_CONFIG_PROGRAM(explorer) +WINE_CONFIG_PROGRAM(extrac32) +WINE_CONFIG_PROGRAM(findstr) +WINE_CONFIG_PROGRAM(fsutil) +WINE_CONFIG_PROGRAM(hh) +WINE_CONFIG_PROGRAM(hostname) +WINE_CONFIG_PROGRAM(icacls) +WINE_CONFIG_PROGRAM(icinfo) +WINE_CONFIG_PROGRAM(iexplore) +WINE_CONFIG_PROGRAM(ipconfig) +WINE_CONFIG_PROGRAM(lodctr) +WINE_CONFIG_PROGRAM(mofcomp) +WINE_CONFIG_PROGRAM(mshta) +WINE_CONFIG_PROGRAM(msiexec) +WINE_CONFIG_PROGRAM(msinfo32) +WINE_CONFIG_PROGRAM(net) +WINE_CONFIG_PROGRAM(netsh) +WINE_CONFIG_PROGRAM(netstat) +WINE_CONFIG_PROGRAM(ngen) +WINE_CONFIG_PROGRAM(notepad) +WINE_CONFIG_PROGRAM(oleview) +WINE_CONFIG_PROGRAM(ping) +WINE_CONFIG_PROGRAM(plugplay) +WINE_CONFIG_PROGRAM(powershell) +WINE_CONFIG_PROGRAM(presentationfontcache) +WINE_CONFIG_PROGRAM(progman) +WINE_CONFIG_PROGRAM(reg) WINE_CONFIG_TEST(programs/reg/tests) -WINE_CONFIG_PROGRAM(regasm,,[install]) -WINE_CONFIG_PROGRAM(regedit,,[install,installbin,manpage]) +WINE_CONFIG_PROGRAM(regasm) +WINE_CONFIG_PROGRAM(regedit) WINE_CONFIG_TEST(programs/regedit/tests) -WINE_CONFIG_PROGRAM(regsvcs,,[install]) -WINE_CONFIG_PROGRAM(regsvr32,,[install,installbin,manpage]) -WINE_CONFIG_PROGRAM(rpcss,,[install]) -WINE_CONFIG_PROGRAM(rundll.exe16,enable_win16,[install]) -WINE_CONFIG_PROGRAM(rundll32,,[install]) -WINE_CONFIG_PROGRAM(sc,,[install]) -WINE_CONFIG_PROGRAM(schtasks,,[install]) +WINE_CONFIG_PROGRAM(regsvcs) +WINE_CONFIG_PROGRAM(regsvr32) +WINE_CONFIG_PROGRAM(rpcss) +WINE_CONFIG_PROGRAM(rundll.exe16,enable_win16) +WINE_CONFIG_PROGRAM(rundll32) +WINE_CONFIG_PROGRAM(sc) +WINE_CONFIG_PROGRAM(schtasks) WINE_CONFIG_TEST(programs/schtasks/tests) -WINE_CONFIG_PROGRAM(sdbinst,,[install]) -WINE_CONFIG_PROGRAM(secedit,,[install]) -WINE_CONFIG_PROGRAM(servicemodelreg,,[install]) -WINE_CONFIG_PROGRAM(services,,[install]) +WINE_CONFIG_PROGRAM(sdbinst) +WINE_CONFIG_PROGRAM(secedit) +WINE_CONFIG_PROGRAM(servicemodelreg) +WINE_CONFIG_PROGRAM(services) WINE_CONFIG_TEST(programs/services/tests) -WINE_CONFIG_PROGRAM(shutdown,,[install]) -WINE_CONFIG_PROGRAM(spoolsv,,[install]) -WINE_CONFIG_PROGRAM(start,,[install]) -WINE_CONFIG_PROGRAM(subst,,[install]) -WINE_CONFIG_PROGRAM(svchost,,[install]) -WINE_CONFIG_PROGRAM(systeminfo,,[install]) -WINE_CONFIG_PROGRAM(taskkill,,[install]) -WINE_CONFIG_PROGRAM(tasklist,,[install]) -WINE_CONFIG_PROGRAM(taskmgr,,[install]) -WINE_CONFIG_PROGRAM(termsv,,[install]) -WINE_CONFIG_PROGRAM(uninstaller,,[install]) -WINE_CONFIG_PROGRAM(unlodctr,,[install]) -WINE_CONFIG_PROGRAM(view,,[install]) -WINE_CONFIG_PROGRAM(wevtutil,,[install]) -WINE_CONFIG_PROGRAM(wineboot,,[install,installbin,manpage]) -WINE_CONFIG_PROGRAM(winebrowser,,[install]) -WINE_CONFIG_PROGRAM(winecfg,,[install,installbin,manpage]) -WINE_CONFIG_PROGRAM(wineconsole,,[install,installbin,manpage]) -WINE_CONFIG_PROGRAM(winedbg,,[install,installbin,manpage]) -WINE_CONFIG_PROGRAM(winedevice,,[install]) -WINE_CONFIG_PROGRAM(winefile,,[install,installbin,manpage]) -WINE_CONFIG_PROGRAM(winemenubuilder,,[install]) -WINE_CONFIG_PROGRAM(winemine,,[install,installbin,manpage]) -WINE_CONFIG_PROGRAM(winemsibuilder,,[install]) -WINE_CONFIG_PROGRAM(winepath,,[install,installbin,manpage]) +WINE_CONFIG_PROGRAM(shutdown) +WINE_CONFIG_PROGRAM(spoolsv) +WINE_CONFIG_PROGRAM(start) +WINE_CONFIG_PROGRAM(subst) +WINE_CONFIG_PROGRAM(svchost) +WINE_CONFIG_PROGRAM(systeminfo) +WINE_CONFIG_PROGRAM(taskkill) +WINE_CONFIG_PROGRAM(tasklist) +WINE_CONFIG_PROGRAM(taskmgr) +WINE_CONFIG_PROGRAM(termsv) +WINE_CONFIG_PROGRAM(uninstaller) +WINE_CONFIG_PROGRAM(unlodctr) +WINE_CONFIG_PROGRAM(view) +WINE_CONFIG_PROGRAM(wevtutil) +WINE_CONFIG_PROGRAM(wineboot) +WINE_CONFIG_PROGRAM(winebrowser) +WINE_CONFIG_PROGRAM(winecfg) +WINE_CONFIG_PROGRAM(wineconsole) +WINE_CONFIG_PROGRAM(winedbg) +WINE_CONFIG_PROGRAM(winedevice) +WINE_CONFIG_PROGRAM(winefile) +WINE_CONFIG_PROGRAM(winemenubuilder) +WINE_CONFIG_PROGRAM(winemine) +WINE_CONFIG_PROGRAM(winemsibuilder) +WINE_CONFIG_PROGRAM(winepath) WINE_CONFIG_PROGRAM(winetest) -WINE_CONFIG_PROGRAM(winevdm,enable_win16,[install]) -WINE_CONFIG_PROGRAM(winhelp.exe16,enable_win16,[install]) -WINE_CONFIG_PROGRAM(winhlp32,,[install]) -WINE_CONFIG_PROGRAM(winoldap.mod16,enable_win16,[install]) -WINE_CONFIG_PROGRAM(winver,,[install]) -WINE_CONFIG_PROGRAM(wmic,,[install]) -WINE_CONFIG_PROGRAM(wmplayer,,[install]) -WINE_CONFIG_PROGRAM(wordpad,,[install]) -WINE_CONFIG_PROGRAM(write,,[install]) -WINE_CONFIG_PROGRAM(wscript,,[install]) +WINE_CONFIG_PROGRAM(winevdm,enable_win16) +WINE_CONFIG_PROGRAM(winhelp.exe16,enable_win16) +WINE_CONFIG_PROGRAM(winhlp32) +WINE_CONFIG_PROGRAM(winoldap.mod16,enable_win16) +WINE_CONFIG_PROGRAM(winver) +WINE_CONFIG_PROGRAM(wmic) +WINE_CONFIG_PROGRAM(wmplayer) +WINE_CONFIG_PROGRAM(wordpad) +WINE_CONFIG_PROGRAM(write) +WINE_CONFIG_PROGRAM(wscript) WINE_CONFIG_TEST(programs/wscript/tests) -WINE_CONFIG_PROGRAM(wusa,,[install]) -WINE_CONFIG_PROGRAM(xcopy,,[install]) +WINE_CONFIG_PROGRAM(wusa) +WINE_CONFIG_PROGRAM(xcopy) WINE_CONFIG_TEST(programs/xcopy/tests) -WINE_CONFIG_MAKEFILE([server],,[install-lib]) +WINE_CONFIG_MAKEFILE([server]) WINE_CONFIG_TOOL(tools) WINE_CONFIG_TOOL(tools/sfnt2fon) -WINE_CONFIG_TOOL(tools/widl,[install-dev]) -WINE_CONFIG_TOOL(tools/winebuild,[install-dev]) -WINE_CONFIG_TOOL(tools/winedump,[install-dev]) -WINE_CONFIG_TOOL(tools/winegcc,[install-dev]) -WINE_CONFIG_TOOL(tools/winemaker,[install-dev]) -WINE_CONFIG_TOOL(tools/wmc,[install-dev]) -WINE_CONFIG_TOOL(tools/wrc,[install-dev]) +WINE_CONFIG_TOOL(tools/widl) +WINE_CONFIG_TOOL(tools/winebuild) +WINE_CONFIG_TOOL(tools/winedump) +WINE_CONFIG_TOOL(tools/winegcc) +WINE_CONFIG_TOOL(tools/winemaker) +WINE_CONFIG_TOOL(tools/wmc) +WINE_CONFIG_TOOL(tools/wrc) dnl End of auto-generated output commands dnl Main ignore file diff --git a/tools/make_makefiles b/tools/make_makefiles index 01eadb89e82..ae779d17fc8 100755 --- a/tools/make_makefiles +++ b/tools/make_makefiles @@ -251,32 +251,6 @@ sub parse_makefile($) } } - if ($file =~ /^programs\/([^\/]+)\/Makefile/) - { - my $prog = $1; - if (defined $make{"INSTALL_LIB"}) - { - ${$make{"=flags"}}{"install"} = 1 if grep { "$prog.exe" eq $_; } @{$make{"INSTALL_LIB"}}; - ${$make{"=flags"}}{"installbin"} = 1 if grep { $prog eq $_; } @{$make{"INSTALL_LIB"}}; - } - else - { - ${$make{"=flags"}}{"install"} = 1; - } - } - - unless (defined $make{"MODULE"}) - { - ${$make{"=flags"}}{"install-lib"} = 1 if defined $make{"INSTALL_LIB"}; - ${$make{"=flags"}}{"install-dev"} = 1 if defined $make{"INSTALL_DEV"}; - } - - if (defined $make{"=flags"} && defined $make{"MODULE"}) - { - die "Custom install-lib rule not allowed in $file" if defined ${$make{"=flags"}}{"install-lib"}; - die "Custom install-dev rule not allowed in $file" if defined ${$make{"=flags"}}{"install-dev"}; - } - return %make; } @@ -379,7 +353,6 @@ sub assign_sources_to_makefiles(@) elsif ($name =~ /\.svg$/) { push @{${$make}{"=SVG_SRCS"}}, $name; } elsif ($name =~ /\.sfd$/) { - ${${$make}{"=flags"}}{"install-lib"} = 1 if defined $flags{"install"}; push @{${$make}{"=FONT_SRCS"}}, $name; } elsif ($name =~ /\.c$/) @@ -390,7 +363,6 @@ sub assign_sources_to_makefiles(@) elsif ($name =~ /\.h$/ || $name =~ /\.rh$/ || $name =~ /\.inl$/ || $name =~ /\.x$/) { next if $dir ne "include"; - ${${$make}{"=flags"}}{"install-dev"} = 1; } elsif ($name =~ /\.rc$/) { @@ -412,7 +384,6 @@ sub assign_sources_to_makefiles(@) elsif ($name =~ /\.man\.in$/) { push @{${$make}{"=MANPAGES"}}, $name; - ${${$make}{"=flags"}}{"manpage"} = 1 if ($file =~ /^programs\//); } elsif ($name =~ /\.in$/) { diff --git a/tools/makedep.c b/tools/makedep.c index a5e47293bcd..03b984e1bb0 100644 --- a/tools/makedep.c +++ b/tools/makedep.c @@ -2202,46 +2202,20 @@ static void output_symlink_rule( const char *src_name, const char *link_name ) /******************************************************************* - * output_install_rules - * - * Rules are stored as a (file,dest) pair of values. - * The first char of dest indicates the type of install. + * output_install_commands */ -static void output_install_rules( struct makefile *make, enum install_rules rules, const char *target ) +static void output_install_commands( struct makefile *make, const struct makefile *submake, + struct strarray files ) { unsigned int i; - char *install_sh; - struct strarray files = make->install_rules[rules]; - struct strarray targets = empty_strarray; + char *install_sh = top_src_dir_path( make, "tools/install-sh" ); - if (!files.count) return; - - for (i = 0; i < files.count; i += 2) - { - const char *file = files.str[i]; - switch (*files.str[i + 1]) - { - case 'd': /* data file */ - case 'p': /* program file */ - case 's': /* script */ - strarray_add_uniq( &targets, obj_dir_path( make, file )); - break; - case 't': /* script in tools dir */ - strarray_add_uniq( &targets, tools_dir_path( make, file )); - break; - } - } - - output( "install %s::", target ); - output_filenames( targets ); - output( "\n" ); - - install_sh = top_src_dir_path( make, "tools/install-sh" ); for (i = 0; i < files.count; i += 2) { const char *file = files.str[i]; const char *dest = strmake( "$(DESTDIR)%s", files.str[i + 1] + 1 ); + if (submake) file = base_dir_path( submake, file ); switch (*files.str[i + 1]) { case 'd': /* data file */ @@ -2266,16 +2240,53 @@ static void output_install_rules( struct makefile *make, enum install_rules rule break; case 't': /* script in tools dir */ output( "\t%s $(INSTALL_SCRIPT_FLAGS) %s %s\n", - install_sh, tools_dir_path( make, file ), dest ); + install_sh, tools_dir_path( make, files.str[i] ), dest ); break; case 'y': /* symlink */ - output_symlink_rule( file, dest ); + output_symlink_rule( files.str[i], dest ); break; default: assert(0); } strarray_add( &make->uninstall_files, dest ); } +} + + +/******************************************************************* + * output_install_rules + * + * Rules are stored as a (file,dest) pair of values. + * The first char of dest indicates the type of install. + */ +static void output_install_rules( struct makefile *make, enum install_rules rules, const char *target ) +{ + unsigned int i; + struct strarray files = make->install_rules[rules]; + struct strarray targets = empty_strarray; + + if (!files.count) return; + + for (i = 0; i < files.count; i += 2) + { + const char *file = files.str[i]; + switch (*files.str[i + 1]) + { + case 'd': /* data file */ + case 'p': /* program file */ + case 's': /* script */ + strarray_add_uniq( &targets, obj_dir_path( make, file )); + break; + case 't': /* script in tools dir */ + strarray_add_uniq( &targets, tools_dir_path( make, file )); + break; + } + } + + output( "install %s::", target ); + output_filenames( targets ); + output( "\n" ); + output_install_commands( make, NULL, files ); strarray_add_uniq( &make->phony_targets, "install" ); strarray_add_uniq( &make->phony_targets, target ); @@ -3117,7 +3128,7 @@ static void output_module( struct makefile *make ) if (spec_file) output_man_pages( make ); - else if (*dll_ext) + else if (*dll_ext && !make->is_win16) { char *binary = replace_extension( make->module, ".exe", "" ); add_install_rule( make, binary, "wineapploader", strmake( "t$(bindir)/%s", binary )); @@ -3408,8 +3419,18 @@ static void output_subdirs( struct makefile *make ) 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 )); + if (submake->disabled) continue; + if (submake->install_rules[INSTALL_LIB].count) + { + output( "install install-lib:: %s\n", submake->base_dir ); + output_install_commands( make, submake, submake->install_rules[INSTALL_LIB] ); + } + if (submake->install_rules[INSTALL_DEV].count) + { + output( "install install-dev:: %s\n", submake->base_dir ); + output_install_commands( make, submake, submake->install_rules[INSTALL_DEV] ); + } } output( "Makefile:" ); output_filenames( makefile_deps ); @@ -3818,7 +3839,7 @@ static void load_sources( struct makefile *make ) if (make->module && strendswith( make->module, ".a" )) make->staticlib = make->module; make->disabled = make->base_dir && strarray_exists( &disabled_dirs, make->base_dir ); - make->is_win16 = strarray_exists( &make->extradllflags, "-m16" ); + make->is_win16 = strarray_exists( &make->extradllflags, "-m16" ) || strarray_exists( &make->appmode, "-m16" ); make->use_msvcrt = strarray_exists( &make->appmode, "-mno-cygwin" ); for (i = 0; i < make->imports.count && !make->use_msvcrt; i++)