# # # patch "INSTALL" # from [aaca8716964291d0a99d8d299a67438c402fa515] # to [b763937029a8b6bcb0d11e09b23f7ca2fe5e850d] # # patch "tests/empty_environment/__driver__.lua" # from [26646e4346bc94c3721182b794ab246cc74b8abf] # to [aa7e7c24d0c3da3c74f402b0e585655d37f921c2] # ============================================================ --- INSTALL aaca8716964291d0a99d8d299a67438c402fa515 +++ INSTALL b763937029a8b6bcb0d11e09b23f7ca2fe5e850d @@ -113,6 +113,7 @@ 1. prerequisites: botan | 1.8.4 | http://botan.randombit.net/news/ | Botan-1.8.4.tbz sqlite3 | 3.6.16 | http://www.sqlite.org/download.html | sqlite-amalgamation-3.6.16.tar.gz, with makefile libidn | 1.9 | ftp://ftp.gnu.org/gnu/libidn | libidn-1.9.tar.gz + Depends.exe| | http://www.dependencywalker.com/ ; also comes with Visual Studio msysDTK installs autoconf, automake, Perl, CVS, crypt, and other tools needed by the autoconf tools. @@ -204,7 +205,15 @@ 1. prerequisites: $ ./configure --prefix=/mingw $ make install - 15. build monotone + 15. Depends.exe + If you have Visual Studio install, you should be able to skip this. + If you don't, then download the appropriate depends*.zip and + unpack it someplace in your %PATH%. + This is only used by the testsuite, in particular the empty_environment test. + If you just want to build monotone for your own use, you can skip this and + just ignore that that test fails. + + 16. build monotone $ cd /c/.../monotone $ export PATH=/bin:/mingw/bin $ autoreconf -i ============================================================ --- tests/empty_environment/__driver__.lua 26646e4346bc94c3721182b794ab246cc74b8abf +++ tests/empty_environment/__driver__.lua aa7e7c24d0c3da3c74f402b0e585655d37f921c2 @@ -18,20 +18,45 @@ if ostype == "Windows" then end if ostype == "Windows" then - local iconv = getpathof("libiconv-2", ".dll") - local intl = getpathof("libintl-8", ".dll") - local zlib = getpathof("zlib1", ".dll") - local idn = getpathof("libidn-11", ".dll") - local pcre = getpathof("libpcre-0", ".dll") - local sqlite = getpathof("libsqlite3-0", ".dll") - local other_zlib = getpathof("libz-1", ".dll") - copy(iconv, "libiconv-2.dll") - copy(intl, "libintl-8.dll") - copy(zlib, "zlib1.dll") - copy(idn, "libidn-11.dll") - copy(pcre, "libpcre-0.dll") - copy(sqlite, "libsqlite3-0.dll") - copy(other_zlib, "libz-1.dll") + -- This used Depends.exe + -- It comes with Visual Studio, and can also be downloaded from + -- http://www.dependencywalker.com/ + -- If you install it separately, make sure to put it in your %PATH%. + -- If you have Visual Studio, it should be detected automatically from its + -- association with .dwi files. + local depends = "" + if existsonpath("Depends.exe") + then + depends = "Depends.exe" + else + check({"reg", "query", "hklm\\software\\classes\\dwifile\\shell\\open\\command", "/ve"}, 0, true, false) + if qgrep("Depends.exe", "stdout") + then + local data = readfile("stdout") + depends = string.match(data, "REG_SZ%s*([^%s].*Depends.exe)") + end + end + check(depends ~= "" and type(depends) == "string") + + -- don't care about the exit code + check({depends, "/c", "/oc:dep.csv", "-f:1", monotone_path}, false) + local file = open_or_err("dep.csv") + for line in file:lines() + do + local name = line:match('^[^,]*,"([^"]*)",%d%d%d%d%-') + if name == nil + then + L("No file found in line: " .. line .. "\n") + elseif name:match("\\[Ww][Ii][Nn][Dd][Oo][Ww][Ss]\\") ~= nil + then + L("Skipping '" .. name .. "'\n") + else + L("Copying '" .. name .. "'\n") + local base = name:match("([^\\/]*)$") + copy(name, base) + end + end + file:close() elseif string.sub(ostype, 1, 6) == "CYGWIN" then for _,name in pairs({ "cyggcc_s-1",