Commit a1c0728d12b170e1e643f219fab53b03cd4e1b09

Ramsay Jones 2009-12-21T15:54:50

Add support for the MinGW platform Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>

diff --git a/Makefile b/Makefile
index a0a6eea..b6d1b7d 100644
--- a/Makefile
+++ b/Makefile
@@ -30,6 +30,12 @@ ifneq (,$(findstring CYGWIN,$(uname_S)))
 	NO_VISIBILITY=YesPlease
 endif
 
+ifneq (,$(findstring MINGW,$(uname_S)))
+	OS=win32
+	NO_VISIBILITY=YesPlease
+	SPARSE_FLAGS=-Wno-one-bit-signed-bitfield
+endif
+
 SRC_C = $(wildcard src/*.c)
 OS_SRC = $(wildcard src/$(OS)/*.c)
 SRC_C += $(OS_SRC)
@@ -68,7 +74,7 @@ all:: $(GIT_LIB)
 clean:
 	rm -f $(GIT_LIB)
 	rm -f libgit2.pc
-	rm -f src/*.o src/sha1/*.o src/unix/*.o
+	rm -f src/*.o src/sha1/*.o src/unix/*.o src/win32/*.o
 	rm -rf apidocs
 	rm -f *~ src/*~ src/git/*~ src/sha1/*~ src/unix/*~ src/win32/*~
 	@$(MAKE) -C tests -s --no-print-directory clean
diff --git a/src/cc-compat.h b/src/cc-compat.h
index a256495..488de7f 100644
--- a/src/cc-compat.h
+++ b/src/cc-compat.h
@@ -40,10 +40,10 @@
 #endif
 
 /* Define the printf format specifer to use for size_t output */
-#if !defined(_MSC_VER)
-# define PRIuZ "zu"
-#else
+#if defined(_MSC_VER) || defined(__MINGW32__)
 # define PRIuZ "Iu"
+#else
+# define PRIuZ "zu"
 #endif
 
 /* Micosoft Visual C/C++ */
diff --git a/src/common.h b/src/common.h
index 5cb9d1b..35df534 100644
--- a/src/common.h
+++ b/src/common.h
@@ -4,7 +4,7 @@
 /** Force 64 bit off_t size on POSIX. */
 #define _FILE_OFFSET_BITS 64
 
-#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__MINGW32__)
+#if defined(_WIN32) && !defined(__CYGWIN__)
 #define GIT_WIN32 1
 #endif
 
diff --git a/tests/Makefile b/tests/Makefile
index 2ad730b..8fac94d 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -15,6 +15,13 @@ CRYPTO_LIB = -lcrypto
 
 EXTRA_LIBS =
 
+# Platform specific tweaks
+
+ifneq (,$(findstring MINGW,$(uname_S)))
+	OS=win32
+	EXTRA_LIBS += -lwsock32 -lpthread
+endif
+
 HDRS = $(wildcard ../src/*.h)
 PUBLIC_HEADERS = $(wildcard ../src/git/*.h)
 HDRS += $(PUBLIC_HEADERS)