git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 16/17] msvc-build: add complete Microsoft Visual C compilation script

From
Philip Oakley <philipoakley@iee.org>
Date
Jun 25, 2015, 00:03 UTC
Message-ID
<1435190633-2208-17-git-send-email-philipoakley@iee.org>
In-Reply-To
<1435190633-2208-1-git-send-email-philipoakley@iee.org>

Implement the README to facilitate cross community development. Include comments for those Windows folks not yet fully familiar with bash commands.

This is identical to the msysgit script, except for the 'cd toplevel' step, and comments for the edification of converts from Windows. Original author: Johannes Schindelin (2011-11-01 3142da4 : Add a script to make the MSVC build more convenient).

Signed-off-by: Philip Oakley <philipoakley@iee.org>
---
TODO:
Also resolve the cleaning of newer VS2010 products.
---
 compat/vcbuild/README             |  2 +-
 compat/vcbuild/scripts/msvc-build | 89 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 90 insertions(+), 1 deletion(-)
 create mode 100644 compat/vcbuild/scripts/msvc-build
diff --git a/compat/vcbuild/README b/compat/vcbuild/README
index 7548dc4..faaea69 100644
--- a/compat/vcbuild/README
+++ b/compat/vcbuild/README
@@ -58,4 +58,4 @@ The Steps of Build Git with VS2008
 
 Done!
 
-Or, use the Msysgit msvc-build script; available from that project.
+Or, use the msvc-build script; available from /compat/vcbuild/scripts/.
diff --git a/compat/vcbuild/scripts/msvc-build b/compat/vcbuild/scripts/msvc-build
new file mode 100644
index 0000000..52b925d
--- /dev/null
+++ b/compat/vcbuild/scripts/msvc-build
@@ -0,0 +1,89 @@
+#!/bin/sh
+
+# This msvc-build command should be executed from the msysgit directory level
+# This is so that the 'cd/git' step works and the subequent operations have the right msysgit super directory.
+set -e # Exit immediately if a command exits with a nonzero exit status.
+
+gui=
+clean=
+while test $# -gt 0
+do
+	case "$1" in
+	--gui|--dev|--devenv|--vs|--visual-studio)
+		gui=t
+		;;
+	clean)
+		clean=t
+		;;
+	*)
+		echo "Usage: $0 [--vs] [clean]" >&2
+		exit 1
+		;;
+	esac
+	shift
+done
+
+cd $(git rev-parse --show-toplevel)
+
+case "$clean" in
+t)
+	case "$gui" in
+	t)
+		rm -rf git.sln libgit
+		# remove all the new VS2010 stuff as well
+		# rm -rf git.sdf
+		;;
+	'')
+		make clean
+		# surely needs "make clean MSVC=1"
+		# otherwise it could assume the wrong make products [MinGW vs Windows].
+		;;
+	esac
+	exit
+	;;
+esac
+
+to_ignore="$(git ls-files --other --exclude-standard msvcgit msvc-build.cmd)"
+test -z "$to_ignore" || {
+	mkdir -p .git/info &&
+	echo "$to_ignore" |
+	sed 's/^/\//' >> .git/info/exclude
+} || exit
+
+test -d msvcgit || git clone git://repo.or.cz/msvcgit.git
+
+vsvars=
+# assume cl.exe will populate its relevant environment variables
+# if cl.exe does not exist, populate vsvars with the most recent Visual Studio path
+type cl.exe 2> /dev/null ||
+vsvars="$(ls -t \
+	"$PROGRAMFILES/Microsoft Visual Studio"*/Common7/Tools/vsvars32.bat |
+	head -n 1)"
+
+
+config_mak=
+# if a config.mak file (dot, not underscore) exists, back it up,
+# remember the backup file name in config_mak.
+test -f config.mak &&
+config_mak=config.mak.bup.$$ &&
+mv config.mak $config_mak
+
+cat > config.mak << EOF
+CFLAGS += -Imsvcgit/32bits/include
+LDFLAGS += -Lmsvcgit/32bits/lib
+EOF
+
+echo "call \"$vsvars\"" > msvc-build.cmd
+if test -z "$gui"
+then
+	echo 'make MSVC=1' >> msvc-build.cmd
+else
+	echo 'perl contrib/buildsystems/generate -g Vcproj' >> msvc-build.cmd
+	echo 'start git.sln' >> msvc-build.cmd
+fi
+
+cmd /c msvc-build.cmd
+
+# if we made a backup file (name in config_mak), then restore it.
+test -z "$config_mak" ||
+mv $config_mak config.mak
-- 
2.3.1

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "Git for Windows" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Previous: Philip OakleyNext: Philip Oakley
Message 31 of 34 in “Make the msvc-build scripts work again”
  1. 00/17 Make the msvc-build scripts work againPhilip Oakley, Jun 25, 2015
  2. 01/17 .gitignore: improve MSVC ignore patternsPhilip Oakley, Jun 25, 2015
  3. Junio C HamanoJun 25, 2015
  4. Philip OakleyJun 25, 2015
  5. Junio C HamanoJun 25, 2015
  6. 02/17 .gitignore: ignore library directories created by MSVC VS2008 buildsystemPhilip Oakley, Jun 25, 2015
  7. 03/17 (msvc-build) Vcproj.pm: remove duplicate GUIDPhilip Oakley, Jun 25, 2015
  8. Eric SunshineJun 28, 2015
  9. Philip OakleyJun 28, 2015
  10. 04/17 Makefile: a dry-run can error out if no perl. Document the issuePhilip Oakley, Jun 25, 2015
  11. Junio C HamanoJun 25, 2015
  12. Philip OakleyJun 25, 2015
  13. Junio C HamanoJun 25, 2015
  14. Philip OakleyJun 25, 2015
  15. Philip OakleyJul 14, 2015
  16. 05/17 engine.pl: fix error message (lib->link)Philip Oakley, Jun 25, 2015
  17. 06/17 engine.pl: Avoid complications with perl supportPhilip Oakley, Jun 25, 2015
  18. 07/17 engine.pl: Properly accept quoted spaces in filenamesPhilip Oakley, Jun 25, 2015
  19. 08/17 engine.pl: Fix i18n -o option in msvc buildsystem generatorPhilip Oakley, Jun 25, 2015
  20. 09/17 engine.pl: ignore invalidcontinue.obj which is known to MSVCPhilip Oakley, Jun 25, 2015
  21. 10/17 engine.pl: name the msvc buildsystem's makedry error filePhilip Oakley, Jun 25, 2015
  22. 11/17 engine.pl: delete the captured stderr file if emptyPhilip Oakley, Jun 25, 2015
  23. 12/17 engine.pl: add debug line to capture the dry-runPhilip Oakley, Jun 25, 2015
  24. 13/17 engine.pl: provide more debug print statementsPhilip Oakley, Jun 25, 2015
  25. Sebastian SchuberthJun 29, 2015
  26. Philip OakleyJul 7, 2015
  27. Sebastian SchuberthJun 29, 2015
  28. Sebastian SchuberthJun 29, 2015
  29. 14/17 Vcproj.pm: list git.exe first to be startup projectPhilip Oakley, Jun 25, 2015
  30. 15/17 vcbuild/readme: Improve layout and reference msvc-build scriptPhilip Oakley, Jun 25, 2015
  31. 16/17 msvc-build: add complete Microsoft Visual C compilation scriptPhilip Oakley, Jun 25, 2015
  32. 17/17 config.mak.uname: add MSVC No_SafeExeceptionHandler optionPhilip Oakley, Jun 25, 2015
  33. Junio C HamanoJun 25, 2015
  34. Philip OakleyJun 25, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.