From 6150fe191bd61c6983f9b10820aa72d6c3401fb2 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Thu, 28 Dec 2006 11:38:04 +0100 Subject: [PATCH] make_makefiles: Merge the generated gitignores in dlls and programs into the top-level one. --- .gitignore | 271 ++++++++++++++++++++++++++++++++++- dlls/.gitignore | 174 ---------------------- programs/.gitignore | 37 ----- programs/winetest/.gitignore | 1 - tools/make_makefiles | 114 ++++++++------- 5 files changed, 331 insertions(+), 266 deletions(-) delete mode 100644 dlls/.gitignore delete mode 100644 programs/.gitignore delete mode 100644 programs/winetest/.gitignore diff --git a/.gitignore b/.gitignore index 2439e8a3f3d..6e5715246cb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +# Automatically generated by make_makefiles; DO NOT EDIT!! *.[oa] *.avi *.bmp @@ -11,20 +12,191 @@ *.tlb *.yy.c *_[cips].c -*~ +/Make.rules /TAGS /autom4te.cache /config.cache /config.log /config.status /tags -Makefile -# Everything below this line is generated by make_makefiles -/Make.rules /wine +Makefile +dlls/*/tests/*.ok +dlls/*/tests/testlist.c dlls/Makedll.rules dlls/Makeimplib.rules dlls/Maketest.rules +dlls/activeds/libactiveds.def +dlls/advapi32/libadvapi32.def +dlls/advpack/libadvpack.def +dlls/atl/atliface.h +dlls/atl/libatl.def +dlls/avicap32/libavicap32.def +dlls/avifil32/libavifil32.def +dlls/avifile.dll16 +dlls/cabinet/libcabinet.def +dlls/capi2032/libcapi2032.def +dlls/cards/libcards.def +dlls/cfgmgr32/libcfgmgr32.def +dlls/clusapi/libclusapi.def +dlls/comctl32/libcomctl32.def +dlls/comdlg32/libcomdlg32.def +dlls/comm.drv16 +dlls/commdlg.dll16 +dlls/compobj.dll16 +dlls/compstui/libcompstui.def +dlls/crtdll/libcrtdll.def +dlls/crypt32/libcrypt32.def +dlls/cryptdll/libcryptdll.def +dlls/ctl3d.dll16 +dlls/ctl3d32/libctl3d32.def +dlls/ctl3dv2.dll16 +dlls/d3d8/libd3d8.def +dlls/d3d9/libd3d9.def +dlls/d3dim/libd3dim.def +dlls/d3drm/libd3drm.def +dlls/d3dx8/libd3dx8.def +dlls/d3dxof/libd3dxof.def +dlls/dbghelp/libdbghelp.def +dlls/dciman32/libdciman32.def +dlls/ddeml.dll16 +dlls/ddraw/libddraw.def +dlls/dinput/libdinput.def +dlls/dinput8/libdinput8.def +dlls/dispdib.dll16 +dlls/display.drv16 +dlls/dmusic32/libdmusic32.def +dlls/dnsapi/libdnsapi.def +dlls/dplay/libdplay.def +dlls/dplayx/libdplayx.def +dlls/dpnet/libdpnet.def +dlls/dsound/libdsound.def +dlls/gdi.exe16 +dlls/gdi32/libgdi32.def +dlls/glu32/libglu32.def +dlls/hid/libhid.def +dlls/hlink/libhlink.def +dlls/icmp/libicmp.def +dlls/imagehlp/libimagehlp.def +dlls/imm.dll16 +dlls/imm32/libimm32.def +dlls/iphlpapi/libiphlpapi.def +dlls/kernel32/libkernel32.def +dlls/keyboard.drv16 +dlls/krnl386.exe16 +dlls/libwinspool.def +dlls/lz32/liblz32.def +dlls/lzexpand.dll16 +dlls/mapi32/libmapi32.def +dlls/mlang/libmlang.def +dlls/mmsystem.dll16 +dlls/mouse.drv16 +dlls/mpr/libmpr.def +dlls/mprapi/libmprapi.def +dlls/msacm.dll16 +dlls/msacm32/libmsacm32.def +dlls/mscms/libmscms.def +dlls/msdmo/libmsdmo.def +dlls/mshtml/libmshtml.def +dlls/mshtml/nsiface.h +dlls/msi/libmsi.def +dlls/msimg32/libmsimg32.def +dlls/msvcrt/libmsvcrt.def +dlls/msvcrt20/libmsvcrt20.def +dlls/msvcrt40/libmsvcrt40.def +dlls/msvcrtd/libmsvcrtd.def +dlls/msvfw32/libmsvfw32.def +dlls/msvideo.dll16 +dlls/mswsock/libmswsock.def +dlls/nddeapi/libnddeapi.def +dlls/netapi32/libnetapi32.def +dlls/newdev/libnewdev.def +dlls/ntdll/libntdll.def +dlls/ntdsapi/libntdsapi.def +dlls/odbc32/libodbc32.def +dlls/odbccp32/libodbccp32.def +dlls/ole2.dll16 +dlls/ole2conv.dll16 +dlls/ole2disp.dll16 +dlls/ole2nls.dll16 +dlls/ole2prox.dll16 +dlls/ole2thk.dll16 +dlls/ole32/dcom.h +dlls/ole32/libole32.def +dlls/oleacc/liboleacc.def +dlls/oleaut32/liboleaut32.def +dlls/olecli.dll16 +dlls/olecli32/libolecli32.def +dlls/oledlg/liboledlg.def +dlls/olepro32/libolepro32.def +dlls/olesvr.dll16 +dlls/olesvr32/libolesvr32.def +dlls/opengl32/libopengl32.def +dlls/powrprof/libpowrprof.def +dlls/psapi/libpsapi.def +dlls/quartz/libquartz.def +dlls/rasapi16.dll16 +dlls/rasapi32/librasapi32.def +dlls/resutils/libresutils.def +dlls/riched20/libriched20.def +dlls/rpcrt4/librpcrt4.def +dlls/rsaenh/librsaenh.def +dlls/secur32/libsecur32.def +dlls/sensapi/libsensapi.def +dlls/serialui/libserialui.def +dlls/setupapi/libsetupapi.def +dlls/setupx.dll16 +dlls/sfc/libsfc.def +dlls/shdocvw/libshdocvw.def +dlls/shell.dll16 +dlls/shell32/libshell32.def +dlls/shfolder/libshfolder.def +dlls/shlwapi/libshlwapi.def +dlls/snmpapi/libsnmpapi.def +dlls/sound.drv16 +dlls/sti/libsti.def +dlls/storage.dll16 +dlls/stress.dll16 +dlls/system.drv16 +dlls/tapi32/libtapi32.def +dlls/toolhelp.dll16 +dlls/twain.dll16 +dlls/typelib.dll16 +dlls/unicows/libunicows.def +dlls/url/liburl.def +dlls/urlmon/liburlmon.def +dlls/user.exe16 +dlls/user32/libuser32.def +dlls/usp10/libusp10.def +dlls/uxtheme/libuxtheme.def +dlls/vdmdbg/libvdmdbg.def +dlls/ver.dll16 +dlls/version/libversion.def +dlls/w32sys.dll16 +dlls/win32s16.dll16 +dlls/win87em.dll16 +dlls/winaspi.dll16 +dlls/windebug.dll16 +dlls/wined3d/libwined3d.def +dlls/winedos/libwinedos.def +dlls/wineps16.drv16 +dlls/wing.dll16 +dlls/wininet/libwininet.def +dlls/winmm/libwinmm.def +dlls/winnls.dll16 +dlls/winnls32/libwinnls32.def +dlls/winsock.dll16 +dlls/winspool.drv/libwinspool.def +dlls/wintab.dll16 +dlls/wintab32/libwintab32.def +dlls/wintrust/libwintrust.def +dlls/wldap32/libwldap32.def +dlls/wnaspi32/libwnaspi32.def +dlls/wow32/libwow32.def +dlls/wprocs.dll16 +dlls/ws2_32/libws2_32.def +dlls/wsock32/libwsock32.def +dlls/wtsapi32/libwtsapi32.def loader/wine loader/wine-glibc loader/wine-kthread @@ -32,9 +204,100 @@ loader/wine-preloader loader/wine-pthread loader/wine.man programs/Makeprog.rules +programs/clock/clock +programs/cmd/cmd +programs/cmdlgtst/cmdlgtst +programs/control/control +programs/eject/eject +programs/expand/expand +programs/explorer/explorer +programs/hh/hh +programs/icinfo/icinfo +programs/iexplore/iexplore +programs/msiexec/msiexec +programs/notepad/notepad +programs/oleview/oleview +programs/progman/progman +programs/regedit/regedit +programs/regsvr32/regsvr32 +programs/rpcss/rpcss +programs/rundll32/rundll32 +programs/start/start +programs/taskmgr/taskmgr +programs/uninstaller/uninstaller +programs/view/view programs/wineapploader +programs/wineboot/wineboot +programs/winebrowser/winebrowser +programs/winecfg/winecfg +programs/wineconsole/wineconsole +programs/winedbg/winedbg programs/winedbg/winedbg.man +programs/winefile/winefile programs/winelauncher +programs/winemenubuilder/winemenubuilder +programs/winemine/winemine +programs/winepath/winepath +programs/winetest/advapi32_test.exe +programs/winetest/advpack_test.exe +programs/winetest/cabinet_test.exe +programs/winetest/comcat_test.exe +programs/winetest/comctl32_test.exe +programs/winetest/comdlg32_test.exe +programs/winetest/crypt32_test.exe +programs/winetest/d3d8_test.exe +programs/winetest/d3d9_test.exe +programs/winetest/ddraw_test.exe +programs/winetest/dinput_test.exe +programs/winetest/dnsapi_test.exe +programs/winetest/dsound_test.exe +programs/winetest/gdi32_test.exe +programs/winetest/hlink_test.exe +programs/winetest/infosoft_test.exe +programs/winetest/iphlpapi_test.exe +programs/winetest/itss_test.exe +programs/winetest/kernel32_test.exe +programs/winetest/localspl_test.exe +programs/winetest/lz32_test.exe +programs/winetest/mapi32_test.exe +programs/winetest/mlang_test.exe +programs/winetest/msacm32_test.exe +programs/winetest/mscms_test.exe +programs/winetest/mshtml_test.exe +programs/winetest/msi_test.exe +programs/winetest/msvcrt_test.exe +programs/winetest/msvcrtd_test.exe +programs/winetest/msxml3_test.exe +programs/winetest/netapi32_test.exe +programs/winetest/ntdll_test.exe +programs/winetest/ole32_test.exe +programs/winetest/oleaut32_test.exe +programs/winetest/psapi_test.exe +programs/winetest/quartz_test.exe +programs/winetest/riched20_test.exe +programs/winetest/rpcrt4_test.exe +programs/winetest/rsabase_test.exe +programs/winetest/rsaenh_test.exe +programs/winetest/secur32_test.exe +programs/winetest/setupapi_test.exe +programs/winetest/shdocvw_test.exe +programs/winetest/shell32_test.exe +programs/winetest/shlwapi_test.exe +programs/winetest/urlmon_test.exe +programs/winetest/user32_test.exe +programs/winetest/usp10_test.exe +programs/winetest/uxtheme_test.exe +programs/winetest/version_test.exe +programs/winetest/winetest +programs/winetest/wininet_test.exe +programs/winetest/winmm_test.exe +programs/winetest/winspool.drv_test.exe +programs/winetest/wintrust_test.exe +programs/winetest/ws2_32_test.exe +programs/winevdm/winevdm +programs/winhelp/winhelp +programs/winver/winver +programs/wordpad/wordpad server/wineserver server/wineserver.man tools/bin2res diff --git a/dlls/.gitignore b/dlls/.gitignore deleted file mode 100644 index 0a3eebc12e5..00000000000 --- a/dlls/.gitignore +++ /dev/null @@ -1,174 +0,0 @@ -# Automatically generated by make_makefiles; DO NOT EDIT!! -*/tests/*.ok -*/tests/testlist.c -/avifile.dll16 -/comm.drv16 -/commdlg.dll16 -/compobj.dll16 -/ctl3d.dll16 -/ctl3dv2.dll16 -/ddeml.dll16 -/dispdib.dll16 -/display.drv16 -/gdi.exe16 -/imm.dll16 -/keyboard.drv16 -/krnl386.exe16 -/libwinspool.def -/lzexpand.dll16 -/mmsystem.dll16 -/mouse.drv16 -/msacm.dll16 -/msvideo.dll16 -/ole2.dll16 -/ole2conv.dll16 -/ole2disp.dll16 -/ole2nls.dll16 -/ole2prox.dll16 -/ole2thk.dll16 -/olecli.dll16 -/olesvr.dll16 -/rasapi16.dll16 -/setupx.dll16 -/shell.dll16 -/sound.drv16 -/storage.dll16 -/stress.dll16 -/system.drv16 -/toolhelp.dll16 -/twain.dll16 -/typelib.dll16 -/user.exe16 -/ver.dll16 -/w32sys.dll16 -/win32s16.dll16 -/win87em.dll16 -/winaspi.dll16 -/windebug.dll16 -/wineps16.drv16 -/wing.dll16 -/winnls.dll16 -/winsock.dll16 -/wintab.dll16 -/wprocs.dll16 -activeds/libactiveds.def -advapi32/libadvapi32.def -advpack/libadvpack.def -atl/atliface.h -atl/libatl.def -avicap32/libavicap32.def -avifil32/libavifil32.def -cabinet/libcabinet.def -capi2032/libcapi2032.def -cards/libcards.def -cfgmgr32/libcfgmgr32.def -clusapi/libclusapi.def -comctl32/libcomctl32.def -comdlg32/libcomdlg32.def -compstui/libcompstui.def -crtdll/libcrtdll.def -crypt32/libcrypt32.def -cryptdll/libcryptdll.def -ctl3d32/libctl3d32.def -d3d8/libd3d8.def -d3d9/libd3d9.def -d3dim/libd3dim.def -d3drm/libd3drm.def -d3dx8/libd3dx8.def -d3dxof/libd3dxof.def -dbghelp/libdbghelp.def -dciman32/libdciman32.def -ddraw/libddraw.def -dinput/libdinput.def -dinput8/libdinput8.def -dmusic32/libdmusic32.def -dnsapi/libdnsapi.def -dplay/libdplay.def -dplayx/libdplayx.def -dpnet/libdpnet.def -dsound/libdsound.def -gdi32/libgdi32.def -glu32/libglu32.def -hid/libhid.def -hlink/libhlink.def -icmp/libicmp.def -imagehlp/libimagehlp.def -imm32/libimm32.def -iphlpapi/libiphlpapi.def -kernel32/libkernel32.def -lz32/liblz32.def -mapi32/libmapi32.def -mlang/libmlang.def -mpr/libmpr.def -mprapi/libmprapi.def -msacm32/libmsacm32.def -mscms/libmscms.def -msdmo/libmsdmo.def -mshtml/libmshtml.def -mshtml/nsiface.h -msi/libmsi.def -msimg32/libmsimg32.def -msvcrt/libmsvcrt.def -msvcrt20/libmsvcrt20.def -msvcrt40/libmsvcrt40.def -msvcrtd/libmsvcrtd.def -msvfw32/libmsvfw32.def -mswsock/libmswsock.def -nddeapi/libnddeapi.def -netapi32/libnetapi32.def -newdev/libnewdev.def -ntdll/libntdll.def -ntdsapi/libntdsapi.def -odbc32/libodbc32.def -odbccp32/libodbccp32.def -ole32/dcom.h -ole32/libole32.def -oleacc/liboleacc.def -oleaut32/liboleaut32.def -olecli32/libolecli32.def -oledlg/liboledlg.def -olepro32/libolepro32.def -olesvr32/libolesvr32.def -opengl32/libopengl32.def -powrprof/libpowrprof.def -psapi/libpsapi.def -quartz/libquartz.def -rasapi32/librasapi32.def -resutils/libresutils.def -riched20/libriched20.def -rpcrt4/librpcrt4.def -rsaenh/librsaenh.def -secur32/libsecur32.def -sensapi/libsensapi.def -serialui/libserialui.def -setupapi/libsetupapi.def -sfc/libsfc.def -shdocvw/libshdocvw.def -shell32/libshell32.def -shfolder/libshfolder.def -shlwapi/libshlwapi.def -snmpapi/libsnmpapi.def -sti/libsti.def -tapi32/libtapi32.def -unicows/libunicows.def -url/liburl.def -urlmon/liburlmon.def -user32/libuser32.def -usp10/libusp10.def -uxtheme/libuxtheme.def -vdmdbg/libvdmdbg.def -version/libversion.def -wined3d/libwined3d.def -winedos/libwinedos.def -wininet/libwininet.def -winmm/libwinmm.def -winnls32/libwinnls32.def -winspool.drv/libwinspool.def -wintab32/libwintab32.def -wintrust/libwintrust.def -wldap32/libwldap32.def -wnaspi32/libwnaspi32.def -wow32/libwow32.def -ws2_32/libws2_32.def -wsock32/libwsock32.def -wtsapi32/libwtsapi32.def diff --git a/programs/.gitignore b/programs/.gitignore deleted file mode 100644 index 08910efb089..00000000000 --- a/programs/.gitignore +++ /dev/null @@ -1,37 +0,0 @@ -# Automatically generated by make_makefiles; DO NOT EDIT!! -clock/clock -cmd/cmd -cmdlgtst/cmdlgtst -control/control -eject/eject -expand/expand -explorer/explorer -hh/hh -icinfo/icinfo -iexplore/iexplore -msiexec/msiexec -notepad/notepad -oleview/oleview -progman/progman -regedit/regedit -regsvr32/regsvr32 -rpcss/rpcss -rundll32/rundll32 -start/start -taskmgr/taskmgr -uninstaller/uninstaller -view/view -wineboot/wineboot -winebrowser/winebrowser -winecfg/winecfg -wineconsole/wineconsole -winedbg/winedbg -winefile/winefile -winemenubuilder/winemenubuilder -winemine/winemine -winepath/winepath -winetest/winetest -winevdm/winevdm -winhelp/winhelp -winver/winver -wordpad/wordpad diff --git a/programs/winetest/.gitignore b/programs/winetest/.gitignore deleted file mode 100644 index 8d9f79aa34c..00000000000 --- a/programs/winetest/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/*_test.exe diff --git a/tools/make_makefiles b/tools/make_makefiles index c0bfbc6a12a..db86f3c75ac 100755 --- a/tools/make_makefiles +++ b/tools/make_makefiles @@ -67,6 +67,30 @@ my %special_dlls = "winequartz.drv" => "QUARTZFILES" ); +# Default patterns for top-level .gitignore +my @ignores = ( + "*.[oa]", + "*.avi", + "*.bmp", + "*.chm", + "*.cur", + "*.ico", + "*.mc.rc", + "*.res", + "*.so", + "*.tab.[ch]", + "*.tlb", + "*.yy.c", + "*_[cips].c", + "/autom4te.cache", + "/config.cache", + "/config.log", + "/config.status", + "/TAGS", + "/tags", + "Makefile" +); + my (@makefiles, %makefiles); # update a file if changed @@ -203,39 +227,34 @@ replace_in_file( "configure.ac", '^MAKE_RULES', '\]\)$', ################################################################ # update the tests list in programs/winetest/Makefile.in and programs/winetest/winetest.rc -my %modules = ( "user" => "user32" ); -my %tests; -@lines = ( "TESTBINS =" ); - -foreach my $file (sort grep /^dlls\/.*\/tests\/Makefile/, @makefiles) +sub update_winetest(@) { - if ($file =~ /^dlls\/(.*)\/tests\/Makefile/) + my (@tests, @lines); + + foreach my $file (@_) { - my $dir = $1; - my $mod = $modules{$dir} || $dir; - $tests{$mod} = $dir; - push @lines, " \\\n\t${mod}_test.exe"; + if ($file =~ /^dlls\/(.*)\/tests\/Makefile/) { push @tests, $1; } } -} -push @lines, "\n\n"; + push @lines, "TESTBINS ="; + push @lines, map { " \\\n\t" . $_ . "_test.exe"; } sort @tests; + push @lines, "\n\n"; -foreach my $test (sort keys %tests) -{ - my $dir = $tests{$test}; - push @lines, "${test}_test.exe: \$(DLLDIR)/$dir/tests/${test}_test.exe\$(DLLEXT)\n"; - push @lines, "\tcp \$(DLLDIR)/$dir/tests/${test}_test.exe\$(DLLEXT) \$\@ && \$(STRIP) \$\@\n"; -} -push @lines, "\n# Special rules\n"; + foreach my $test (sort @tests) + { + push @lines, "${test}_test.exe: \$(DLLDIR)/$test/tests/${test}_test.exe\$(DLLEXT)\n"; + push @lines, "\tcp \$(DLLDIR)/$test/tests/${test}_test.exe\$(DLLEXT) \$\@ && \$(STRIP) \$\@\n"; + } + push @lines, "\n# Special rules\n"; -replace_in_file( "programs/winetest/Makefile.in", '^TESTBINS\s*=', '^# Special rules', @lines ); + replace_in_file( "programs/winetest/Makefile.in", '^TESTBINS\s*=', '^# Special rules', @lines ); -@lines = (); -foreach my $test (sort keys %tests) -{ - push @lines, "${test}_test.exe TESTRES \"${test}_test.exe\"\n"; + replace_in_file( "programs/winetest/winetest.rc", ' TESTRES ', undef, + map { $_ . "_test.exe TESTRES \"" . $_ . "_test.exe\"\n"; } sort @tests ); + + # return a list of test exe files for .gitignore + return map { "programs/winetest/" . $_ . "_test.exe"; } sort @tests; } -replace_in_file( "programs/winetest/winetest.rc", ' TESTRES ', undef, @lines ); ################################################################ # update the makefile list in Makefile.in @@ -281,8 +300,8 @@ sub update_dlls(@) my @ignores = ( - "*/tests/testlist.c", - "*/tests/*.ok", + "dlls/*/tests/testlist.c", + "dlls/*/tests/*.ok", ); sub needs_symlink($$) @@ -337,7 +356,7 @@ sub update_dlls(@) if (defined $makefile{"IDL_H_SRCS"}) { - push @ignores, map { $_ =~ s/(.*)\.idl$/$dir\/$1.h/; $_; } @{$makefile{"IDL_H_SRCS"}}; + push @ignores, map { $_ =~ s/(.*)\.idl$/dlls\/$dir\/$1.h/; $_; } @{$makefile{"IDL_H_SRCS"}}; } } @@ -508,29 +527,27 @@ sub update_dlls(@) foreach my $mod (sort @lib_symlinks) { - push @ignores, "/$importlibs{$mod}.def"; + push @ignores, "dlls/$importlibs{$mod}.def"; } foreach my $mod (sort keys %directories) { next unless defined $altnames{$mod}; - push @ignores, map { "/" . $_ . "16"; } @{$altnames{$mod}}; + push @ignores, map { "dlls/" . $_ . "16"; } @{$altnames{$mod}}; } foreach my $mod (sort keys %importlibs) { my $dir = $directories{$mod}; my $def = $mod; $def =~ s/\.(dll|drv)$//; - push @ignores, "$dir/lib$def.def"; + push @ignores, "dlls/$dir/lib$def.def"; } - replace_in_file( "dlls/.gitignore", undef, undef, - "# Automatically generated by make_makefiles; DO NOT EDIT!!\n", - join("\n", sort @ignores), "\n" ); + return @ignores; } ################################################################ -# update programs/Makefile.in and programs/.gitignore +# update programs/Makefile.in sub update_progs(@) { @@ -546,7 +563,7 @@ sub update_progs(@) die "Invalid module $module in $make" unless "$dir.exe" eq $module; next if defined $makefile{"=skip"}; push @subdirs, $dir; - push @ignores, "$dir/$dir"; + push @ignores, "programs/$dir/$dir"; push @install_subdirs, $dir unless $dont_install{$dir}; push @install_progs, $dir if $bin_install{$dir}; } @@ -560,20 +577,16 @@ sub update_progs(@) join( " \\\n\t", @install_progs ), "\n\nINSTALLDIRS = \$(DESTDIR)\$(bindir)\n" ); - replace_in_file( "programs/.gitignore", undef, undef, - "# Automatically generated by make_makefiles; DO NOT EDIT!!\n", - join("\n", sort @ignores), "\n" ); + return @ignores; } ################################################################ # update the main .gitignore -sub update_gitignore() +sub update_gitignore(@) { - my @ignores = (); - - push @ignores, values %makerules; + my @ignores = values %makerules; foreach my $make (@makefiles) { @@ -592,14 +605,15 @@ sub update_gitignore() # prepend a slash to paths that don't have one @ignores = map { $_ =~ s/^([^\/]+)$/\/$1/; $_; } @ignores; - replace_in_file( ".gitignore", - '^# Everything below this line is generated by make_makefiles', - undef, - "# Everything below this line is generated by make_makefiles\n", + push @ignores, @_; + + replace_in_file( ".gitignore", undef, undef, + "# Automatically generated by make_makefiles; DO NOT EDIT!!\n", join("\n", sort @ignores), "\n" ); } -update_dlls( sort grep /^dlls\//, @makefiles ); -update_progs( sort grep /^programs\/.*\/Makefile$/, @makefiles ); -update_gitignore(); +push @ignores, update_winetest( @makefiles ); +push @ignores, update_dlls( sort grep /^dlls\//, @makefiles ); +push @ignores, update_progs( sort grep /^programs\/.*\/Makefile$/, @makefiles ); +update_gitignore( @ignores );