From 90d3187df01ce55a95989d841ed82ddb811b258a Mon Sep 17 00:00:00 2001
From: Oliver Bock <oliver.bock@aei.mpg.de>
Date: Wed, 8 Feb 2012 17:59:26 +0100
Subject: [PATCH] BOINC's own MinGW Makefile got fixed quite a while ago, let's
 finally use it.

---
 build.sh                                      | 47 +------------------
 patches/boinc.Makefile.mingw.patch            | 21 ---------
 patches/boinc.boinc_api.h.mingw.patch         | 13 -----
 patches/boinc.diagnostics.cpp.mingw.patch     | 11 -----
 .../boinc.diagnostics_win.cpp.mingw.1.patch   | 11 -----
 .../boinc.diagnostics_win.cpp.mingw.2.patch   | 19 --------
 patches/boinc.filesys.cpp.mingw.patch         | 11 -----
 src/starsphere/Makefile.mingw                 |  2 +-
 8 files changed, 3 insertions(+), 132 deletions(-)
 delete mode 100644 patches/boinc.Makefile.mingw.patch
 delete mode 100644 patches/boinc.boinc_api.h.mingw.patch
 delete mode 100644 patches/boinc.diagnostics.cpp.mingw.patch
 delete mode 100644 patches/boinc.diagnostics_win.cpp.mingw.1.patch
 delete mode 100644 patches/boinc.diagnostics_win.cpp.mingw.2.patch
 delete mode 100644 patches/boinc.filesys.cpp.mingw.patch

diff --git a/build.sh b/build.sh
index 1624244..e606749 100755
--- a/build.sh
+++ b/build.sh
@@ -650,53 +650,10 @@ build_boinc_mingw()
 
     prepare_boinc $TAG_GFXAPPS || failure
 
-    echo "Patching BOINC..." | tee -a $LOGFILE
-    # patch: fix BOINC vs. MinGW issues
-    cd $ROOT/3rdparty/boinc/api || failure
-    patch boinc_api.h < $ROOT/patches/boinc.boinc_api.h.mingw.patch >> $LOGFILE 2>&1 || failure                     # patch sent upstream!
     cd $ROOT/3rdparty/boinc/lib || failure
-    patch diagnostics.cpp < $ROOT/patches/boinc.diagnostics.cpp.mingw.patch >> $LOGFILE 2>&1 || failure             # patch sent upstream!
-    patch diagnostics_win.cpp < $ROOT/patches/boinc.diagnostics_win.cpp.mingw.1.patch >> $LOGFILE 2>&1 || failure   # patch sent upstream!
-    patch diagnostics_win.cpp < $ROOT/patches/boinc.diagnostics_win.cpp.mingw.2.patch >> $LOGFILE 2>&1 || failure   # patch sent upstream!
-    patch filesys.cpp < $ROOT/patches/boinc.filesys.cpp.mingw.patch >> $LOGFILE 2>&1 || failure
     echo "Building BOINC (this may take a while)..." | tee -a $LOGFILE
-    cd $ROOT/3rdparty/boinc || failure
-    chmod +x _autosetup >> $LOGFILE 2>&1 || failure
-    ./_autosetup >> $LOGFILE 2>&1 || failure
-    chmod +x configure >> $LOGFILE 2>&1 || failure
-    cd $ROOT/build/boinc || failure
-    # note: configure is still required but we don't use the generated Makefile
-    $ROOT/3rdparty/boinc/configure --host=$TARGET_HOST --build=$BUILD_HOST --prefix=$ROOT/install --includedir=$ROOT/install/include --oldincludedir=$ROOT/install/include --enable-shared=no --enable-static=yes --disable-server --disable-client --enable-install-headers --enable-libraries --disable-manager --disable-fcgi >> $LOGFILE 2>&1 || failure
-    cd $ROOT/build/boinc/api || failure
-    cp $ROOT/3rdparty/boinc/api/Makefile.mingw . >> $LOGFILE 2>&1 || failure
-    # patch: add graphics2 and customize build path (see below)
-    patch Makefile.mingw < $ROOT/patches/boinc.Makefile.mingw.patch >> $LOGFILE 2>&1 || failure
-    export BOINC_SRC=$ROOT/3rdparty/boinc || failure
-    cd $ROOT/build/boinc || failure
-    # required for out-of-tree build
-    cp config.h $ROOT/3rdparty/boinc >> $LOGFILE 2>&1 || failure
-    make -f api/Makefile.mingw >> $LOGFILE 2>&1 || failure
-    cp $ROOT/build/boinc/libboinc.a $ROOT/install/lib >> $LOGFILE 2>&1 || failure
-    mkdir -p $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    cp $ROOT/build/boinc/config.h $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    cp $ROOT/build/boinc/version.h $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    cp $ROOT/3rdparty/boinc/api/boinc_api.h $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    cp $ROOT/3rdparty/boinc/api/graphics2.h $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    cp $ROOT/3rdparty/boinc/lib/app_ipc.h $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    cp $ROOT/3rdparty/boinc/lib/boinc_win.h $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    cp $ROOT/3rdparty/boinc/lib/common_defs.h $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    cp $ROOT/3rdparty/boinc/lib/diagnostics.h $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    cp $ROOT/3rdparty/boinc/lib/diagnostics_win.h $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    cp $ROOT/3rdparty/boinc/lib/filesys.h $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    cp $ROOT/3rdparty/boinc/lib/hostinfo.h $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    cp $ROOT/3rdparty/boinc/lib/proxy_info.h $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    cp $ROOT/3rdparty/boinc/lib/prefs.h $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    cp $ROOT/3rdparty/boinc/lib/miofile.h $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    cp $ROOT/3rdparty/boinc/lib/mfile.h $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    cp $ROOT/3rdparty/boinc/lib/parse.h $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    cp $ROOT/3rdparty/boinc/lib/util.h $ROOT/install/include/boinc >> $LOGFILE 2>&1 || failure
-    # invoke MinGW's ranlib as the archive lacks an index
-    ${TARGET_HOST}-ranlib $ROOT/install/lib/libboinc.a
+    BOINC_SRC="$ROOT/3rdparty/boinc" AR="${TARGET_HOST}-ar" make -f Makefile.mingw >> $LOGFILE 2>&1 || failure
+    BOINC_PREFIX="$ROOT/install" RANLIB="${TARGET_HOST}-ranlib" make -f Makefile.mingw install >> $LOGFILE 2>&1 || failure
     echo "Successfully built and installed BOINC!" | tee -a $LOGFILE
 
     store_build_state $BS_BUILD_BOINC_MINGW || failure
diff --git a/patches/boinc.Makefile.mingw.patch b/patches/boinc.Makefile.mingw.patch
deleted file mode 100644
index 1a03e8a..0000000
--- a/patches/boinc.Makefile.mingw.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- Makefile.mingw
-+++ Makefile.mingw	2009-07-07 15:03:03.000000000 +0200
-@@ -1,14 +1,14 @@
--BOINCDIR = ./boinc
-+BOINCDIR = $(BOINC_SRC)
- DEBUG = -D__DEBUG__ -g3
--OBJ  = boinc_api.o util.o win_util.o app_ipc.o diagnostics.o diagnostics_win.o filesys.o hostinfo.o md5.o md5_file.o mem_usage.o mfile.o miofile.o parse.o prefs.o proxy_info.o str_util.o shmem.o stackwalker_win.o base64.o
-+OBJ  = graphics2.o graphics2_util.o boinc_api.o util.o win_util.o app_ipc.o diagnostics.o diagnostics_win.o filesys.o hostinfo.o md5.o md5_file.o mem_usage.o mfile.o miofile.o parse.o prefs.o proxy_info.o str_util.o shmem.o stackwalker_win.o base64.o
- LINKOBJ  = $(OBJ)
- LDFLAGS = -lwinmm -march=i386
- INCS = -I"$(BOINCDIR)" -I"$(BOINCDIR)/db" -I"$(BOINCDIR)" -I"$(BOINCDIR)/lib" -I"$(BOINCDIR)/api" 
- CXXINCS = $(INCS)
- BIN  = libboinc.a
- #
--CXXFLAGS = $(CXXINCS) $(DEBUG) --include $(BOINCDIR)/version.h -DWIN32 -D_WIN32 -D_WIN32_WINDOWS=0x0501 -D_MT -DNDEBUG -D_WINDOWS  -DBOINC -DCLIENT -DNODB -D_CONSOLE -Wall -mtune=pentium-m   -fexceptions -march=i386 -O1
--CFLAGS = $(INCS) $(DEBUG) --include $(BOINCDIR)/version.h -DWIN32 -D_WIN32 -D_WIN32_WINDOWS=0x0501 -D_MT -DNDEBUG -D_WINDOWS  -DBOINC -DCLIENT -DNODB -D_CONSOLE -Wall -mtune=pentium-m   -fexceptions -march=i386 -O1
-+CXXFLAGS = $(CXXINCS) $(DEBUG) --include $(BOINCDIR)/version.h -DMINGW_WIN32 -DWIN32 -D_WIN32 -D_WIN32_WINDOWS=0x0410 -D_MT -DNDEBUG -D_WINDOWS  -DBOINC -DCLIENT -DNODB -D_CONSOLE -Wall -mtune=pentium-m   -fexceptions -march=i386 -O1
-+CFLAGS = $(INCS) $(DEBUG) --include $(BOINCDIR)/version.h -DWIN32 -D_WIN32 -D_WIN32_WINDOWS=0x0410 -D_MT -DNDEBUG -D_WINDOWS  -DBOINC -DCLIENT -DNODB -D_CONSOLE -Wall -mtune=pentium-m   -fexceptions -march=i386 -O1
- 
- 
- .PHONY: all all-before all-after clean clean-custom
diff --git a/patches/boinc.boinc_api.h.mingw.patch b/patches/boinc.boinc_api.h.mingw.patch
deleted file mode 100644
index 937a778..0000000
--- a/patches/boinc.boinc_api.h.mingw.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- boinc_api.h
-+++ boinc_api.h	2009-11-06 16:30:39.000000000 +0100
-@@ -22,6 +22,10 @@
- #include <Carbon/Carbon.h>
- #endif
- 
-+#ifdef _WIN32
-+#include "boinc_win.h"
-+#endif
-+
- // ANSI C API BEGINS HERE
- // Do not put implementation stuff here
- 
diff --git a/patches/boinc.diagnostics.cpp.mingw.patch b/patches/boinc.diagnostics.cpp.mingw.patch
deleted file mode 100644
index d5a1843..0000000
--- a/patches/boinc.diagnostics.cpp.mingw.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- diagnostics.cpp
-+++ diagnostics.cpp	2009-11-06 14:35:59.000000000 +0100
-@@ -22,7 +22,7 @@
- #include "boinc_win.h"
- #endif
- 
--#ifdef _MSC_VER
-+#if defined(_MSC_VER) || defined(__MINGW32__)
- #define snprintf    _snprintf
- #define strdate     _strdate
- #define strtime     _strtime
diff --git a/patches/boinc.diagnostics_win.cpp.mingw.1.patch b/patches/boinc.diagnostics_win.cpp.mingw.1.patch
deleted file mode 100644
index 19fd87a..0000000
--- a/patches/boinc.diagnostics_win.cpp.mingw.1.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- diagnostics_win.cpp
-+++ diagnostics_win.cpp	2009-11-06 15:10:47.000000000 +0100
-@@ -22,7 +22,7 @@
- #include "boinc_win.h"
- #endif
- 
--#ifdef _MSC_VER
-+#if defined(_MSC_VER) || defined(__MINGW32__)
- #define snprintf    _snprintf
- #define strdate     _strdate
- #define strtime     _strtime
diff --git a/patches/boinc.diagnostics_win.cpp.mingw.2.patch b/patches/boinc.diagnostics_win.cpp.mingw.2.patch
deleted file mode 100644
index eb7e92c..0000000
--- a/patches/boinc.diagnostics_win.cpp.mingw.2.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- diagnostics_win.cpp
-+++ diagnostics_win.cpp	2009-11-06 15:00:28.000000000 +0100
-@@ -2069,9 +2069,15 @@
- //   library this function will write whatever trace information it can and
- //   then throw a breakpoint exception to dump all the rest of the useful
- //   information.
-+#ifdef MINGW_WIN32
-+void boinc_catch_signal_invalid_parameter(
-+    const wchar_t* expression, const wchar_t* function, const wchar_t* file, unsigned int line)
-+#else
- void boinc_catch_signal_invalid_parameter(
-     const wchar_t* expression, const wchar_t* function, const wchar_t* file, unsigned int line,	uintptr_t /* pReserved */
--) {
-+)
-+#endif
-+{
- 	fprintf(
- 		stderr,
-         "ERROR: Invalid parameter detected in function %s. File: %s Line: %d\n",
diff --git a/patches/boinc.filesys.cpp.mingw.patch b/patches/boinc.filesys.cpp.mingw.patch
deleted file mode 100644
index 00e3451..0000000
--- a/patches/boinc.filesys.cpp.mingw.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- filesys.cpp
-+++ 3rdparty/boinc/lib/filesys.cpp	2009-03-28 18:30:26.000000000 +0100
-@@ -19,7 +19,7 @@
- #include "boinc_win.h"
- #endif
- 
--#if !defined(_WIN32) || defined(__CYGWIN32__)
-+#if !defined(_WIN32) || defined(__CYGWIN32__) || defined(__MINGW32__)
- #include "config.h"
- #ifdef _USING_FCGI_
- #include "boinc_fcgi.h"
diff --git a/src/starsphere/Makefile.mingw b/src/starsphere/Makefile.mingw
index a47949a..f705df7 100644
--- a/src/starsphere/Makefile.mingw
+++ b/src/starsphere/Makefile.mingw
@@ -32,7 +32,7 @@ LIBS += -lframework -loglft -L$(STARSPHERE_INSTALL)/lib
 LIBS += $(shell $(STARSPHERE_INSTALL)/bin/freetype-config --libs)
 LIBS += $(shell $(STARSPHERE_INSTALL)/bin/xml2-config --libs)
 LIBS += -lws2_32 # required by libxml2
-LIBS += -lboinc
+LIBS += -lboinc_graphics2 -lboinc_api -lboinc
 LIBS += -Wl,-Bdynamic
 LIBS += $(shell $(STARSPHERE_INSTALL)/bin/sdl-config --static-libs)
 LIBS += -lopengl32 -lglu32
-- 
GitLab