diff --git a/build.sh b/build.sh
index 40c96780a5e72be2acf3cd02a0dd8847a2eb1588..089613849111efca2262267557aee7c9c1d8223f 100755
--- a/build.sh
+++ b/build.sh
@@ -58,7 +58,7 @@ check_prerequisites()
 	echo "Checking prerequisites..." | tee -a $LOGFILE
 	
 	# required toolchain
-	TOOLS="automake autoconf m4 cmake wget svn cvs tar patch gcc g++ ld libtool ar lex yacc"
+	TOOLS="automake autoconf m4 cmake wget svn cvs tar patch gcc g++ ld libtool ar lex yacc pkg-config"
 
 	for tool in $TOOLS; do
 		if ! ( type $tool >/dev/null 2>&1 ); then
@@ -166,7 +166,7 @@ prepare_generic()
 		svn update >> $LOGFILE  2>&1 || failure
 	else
 		echo "Retrieving BOINC (this may take a while)..." | tee -a $LOGFILE
-		svn checkout http://boinc.berkeley.edu/svn/branches/boinc_core_release_6_2 . >> $LOGFILE 2>&1 || failure
+		svn checkout http://boinc.berkeley.edu/svn/branches/server_stable . >> $LOGFILE 2>&1 || failure
 	fi
 
 	return 0
@@ -263,9 +263,9 @@ build_generic()
 	cd $ROOT/build/boinc || failure
 	if [ "$1" == "$TARGET_MAC_INTEL" -o "$1" == "$TARGET_MAC_PPC" ]; then
 		export CPPFLAGS=-I/sw/include
-		$ROOT/3rdparty/boinc/configure --prefix=$ROOT/install --enable-shared=no --enable-static=yes --disable-server --disable-client --with-apple-opengl-framework >> $LOGFILE 2>&1 || failure
+		$ROOT/3rdparty/boinc/configure --prefix=$ROOT/install --enable-shared=no --enable-static=yes --disable-server --disable-client --with-apple-opengl-framework --enable-install-headers --enable-libraries --disable-manager --disable-fcgi >> $LOGFILE 2>&1 || failure
 	else
-		$ROOT/3rdparty/boinc/configure --prefix=$ROOT/install --enable-shared=no --enable-static=yes --disable-server --disable-client >> $LOGFILE 2>&1 || failure
+		$ROOT/3rdparty/boinc/configure --prefix=$ROOT/install --enable-shared=no --enable-static=yes --disable-server --disable-client --enable-install-headers --enable-libraries --disable-manager --disable-fcgi >> $LOGFILE 2>&1 || failure
 	fi
 	make >> $LOGFILE 2>&1 || failure
 	make install >> $LOGFILE 2>&1 || failure
@@ -275,6 +275,19 @@ build_generic()
 }
 
 
+build_mingw()
+{
+	TARGET_HOST=i586-pc-mingw32
+
+	echo "Building MinGW (this will take quite a while)..." | tee -a $LOGFILE
+	# note: the script's current config for unattended setup expects it to be run from three levels below root!
+	cd $ROOT/3rdparty/mingw/xscripts || failure
+	./x86-mingw32-build.sh --unattended $TARGET_HOST >> $LOGFILE 2>&1 || failure
+
+	return 0
+}
+
+
 build_generic_win32()
 {
 	# general config
@@ -358,8 +371,7 @@ build_generic_win32()
 	cd $ROOT/3rdparty/boinc/lib || failure
 	# patch: fix a couple of BOINC vs. MinGW issues
 	patch boinc_win.h < $ROOT/patches/boinc.boinc_win.h.minggw.patch >> $LOGFILE 2>&1 || failure
-	patch filesys.C < $ROOT/patches/boinc.filesys.C.mingw.patch >> $LOGFILE 2>&1 || failure
-	# patch: add graphics2 and customize build path (see below)
+	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
@@ -367,46 +379,39 @@ build_generic_win32()
 	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 >> $LOGFILE 2>&1 || failure
+	$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/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/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
+	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
 	echo "Successfully built and installed BOINC!" | tee -a $LOGFILE
 }
 
 
-build_mingw()
-{
-	TARGET_HOST=i586-pc-mingw32
-
-	echo "Building MinGW (this will take quite a while)..." | tee -a $LOGFILE
-	# note: the script's current config for unattended setup expects it to be run from three levels below root!
-	cd $ROOT/3rdparty/mingw/xscripts || failure
-	./x86-mingw32-build.sh --unattended $TARGET_HOST >> $LOGFILE 2>&1 || failure
-
-	return 0
-}
-
-
 build_starsphere()
 {
 	# make sure ORC is always compiled for host platform (it's exexuted during starsphere build!)
diff --git a/patches/boinc.boinc_win.h.minggw.patch b/patches/boinc.boinc_win.h.minggw.patch
index e6b55255832f1ce779879b04de907bfa01a57f9f..757baa43c97dc06405454d93016c67d135ce7ed3 100644
--- a/patches/boinc.boinc_win.h.minggw.patch
+++ b/patches/boinc.boinc_win.h.minggw.patch
@@ -1,6 +1,6 @@
 --- boinc_win.h
 +++ boinc_win.h	2008-06-03 17:35:38.000000000 +0200
-@@ -110,7 +110,7 @@
+@@ -108,7 +108,7 @@
  
  #include <commctrl.h>
  #include <raserror.h>
@@ -9,7 +9,7 @@
  #include <tlhelp32.h>
  
  #include <io.h>
-@@ -143,7 +143,7 @@
+@@ -141,7 +141,7 @@
  // C headers
  #include <sys/stat.h>
  #include <sys/types.h>
@@ -18,7 +18,7 @@
  #include <malloc.h>
  
  #if !defined(__MINGW32__) && !defined(__CYGWIN32__)
-@@ -238,9 +238,9 @@
+@@ -236,9 +236,9 @@
  #endif
  void __cdecl _fpreset (void);
  void __cdecl fpreset (void);
diff --git a/patches/boinc.filesys.C.mingw.patch b/patches/boinc.filesys.C.mingw.patch
deleted file mode 100644
index efc36ef4ca0b4991e21100ca21da9465bf63b87b..0000000000000000000000000000000000000000
--- a/patches/boinc.filesys.C.mingw.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- filesys.C
-+++ filesys.C.new	2008-06-11 15:38:25.000000000 +0200
-@@ -21,10 +21,11 @@
- #include "boinc_win.h"
- #endif
- 
-+#include <fcntl.h>
-+
- #if !defined(_WIN32) || defined(__CYGWIN32__)
- #include "config.h"
- #include <cstdio>
--#include <fcntl.h>
- #include <cerrno>
- #include <sys/stat.h>
- #include <sys/file.h>
diff --git a/patches/boinc.filesys.cpp.mingw.patch b/patches/boinc.filesys.cpp.mingw.patch
new file mode 100644
index 0000000000000000000000000000000000000000..00e3451fb5754f6a107511fcd5b9460a56484bfd
--- /dev/null
+++ b/patches/boinc.filesys.cpp.mingw.patch
@@ -0,0 +1,11 @@
+--- 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/framework/Makefile b/src/framework/Makefile
index e15ddc6a4c4b810443db3df5d8e79e5ec7936b0a..64c5001714c9a1050aa066083ff747448aac4aee 100644
--- a/src/framework/Makefile
+++ b/src/framework/Makefile
@@ -29,7 +29,7 @@ CXX?=g++
 CPPFLAGS += $(shell $(FRAMEWORK_INSTALL)/bin/sdl-config --cflags)
 CPPFLAGS += $(shell $(FRAMEWORK_INSTALL)/bin/freetype-config --cflags)
 CPPFLAGS += $(shell $(FRAMEWORK_INSTALL)/bin/xml2-config --cflags)
-CPPFLAGS += -I$(FRAMEWORK_INSTALL)/include/BOINC -I/usr/include
+CPPFLAGS += -I$(FRAMEWORK_INSTALL)/include/boinc -I/usr/include
 
 DEPS = Makefile
 OBJS = AbstractGraphicsEngine.o GraphicsEngineFactory.o WindowManager.o Resource.o ResourceFactory.o BOINCClientAdapter.o Libxml2Adapter.o
diff --git a/src/framework/Makefile.mingw b/src/framework/Makefile.mingw
index 5976f6a6c2965db5ff33e6fa8c174203c12794ec..e8eac8563cb110a71d5905698af3afb65dd713df 100644
--- a/src/framework/Makefile.mingw
+++ b/src/framework/Makefile.mingw
@@ -29,7 +29,7 @@ CXX?=g++
 CPPFLAGS += $(shell $(FRAMEWORK_INSTALL)/bin/sdl-config --cflags)
 CPPFLAGS += $(shell $(FRAMEWORK_INSTALL)/bin/freetype-config --cflags)
 CPPFLAGS += $(shell $(FRAMEWORK_INSTALL)/bin/xml2-config --cflags)
-CPPFLAGS += -I$(FRAMEWORK_INSTALL)/include/BOINC -I$(FRAMEWORK_INSTALL)/include
+CPPFLAGS += -I$(FRAMEWORK_INSTALL)/include/boinc -I$(FRAMEWORK_INSTALL)/include
 
 DEPS = Makefile
 OBJS = AbstractGraphicsEngine.o GraphicsEngineFactory.o WindowManager.o Resource.o ResourceFactory.o BOINCClientAdapter.o Libxml2Adapter.o
diff --git a/src/starsphere/Makefile b/src/starsphere/Makefile
index b613bfc0bf0ab4bc0057ad50d9bf7b8cf03f5a04..4ae58e0ed5b7a7e1dfff9a324528f6fbbbcc3ab5 100644
--- a/src/starsphere/Makefile
+++ b/src/starsphere/Makefile
@@ -42,7 +42,7 @@ CPPFLAGS += -I$(STARSPHERE_INSTALL)/include
 CPPFLAGS += $(shell $(STARSPHERE_INSTALL)/bin/sdl-config --cflags)
 CPPFLAGS += $(shell $(STARSPHERE_INSTALL)/bin/freetype-config --cflags)
 CPPFLAGS += $(shell $(STARSPHERE_INSTALL)/bin/xml2-config --cflags)
-CPPFLAGS += -I$(STARSPHERE_INSTALL)/include/BOINC -I/usr/include
+CPPFLAGS += -I$(STARSPHERE_INSTALL)/include/boinc -I/usr/include
 
 DEPS = Makefile
 OBJS = Starsphere.o StarsphereS5R3.o StarsphereRadio.o EinsteinS5R3Adapter.o EinsteinRadioAdapter.o starlist.o snr_list.o pulsar_list.o $(RESOURCESPEC).o
@@ -55,24 +55,24 @@ CPPFLAGS += -I$(STARSPHERE_SRC) -I$(STARSPHERE_SRC)/../framework
 default: release
 debug: starsphere
 release: clean starsphere
-starsphere: starsphere_EinsteinS5R3 starsphere_EinsteinRadio
+starsphere: starsphere_Einstein_LVC starsphere_Einstein_ABP
 memcheck: clean debug starsphere
 callgrind: clean debug starsphere
 
 # target specific options
 debug: CPPFLAGS += -pg -ggdb3 -O0 -Wall -Wno-switch-enum
 release: CPPFLAGS += -DNDEBUG -ggdb3 -O3 -Wall -Wno-switch-enum
-starsphere_EinsteinS5R3: CPPFLAGS += -D SCIENCE_APP=EinsteinS5R3
-starsphere_EinsteinRadio: CPPFLAGS += -D SCIENCE_APP=EinsteinRadio
+starsphere_Einstein_LVC: CPPFLAGS += -D SCIENCE_APP=EinsteinS5R3
+starsphere_Einstein_ABP: CPPFLAGS += -D SCIENCE_APP=EinsteinRadio
 memcheck: CPPFLAGS += $(DEBUGFLAGSCPP) -D DEBUG_VALGRIND
 callgrind: CPPFLAGS += $(DEBUGFLAGSCPP) -D DEBUG_VALGRIND
 
 # file based targets
-starsphere_EinsteinS5R3: $(DEPS) $(STARSPHERE_SRC)/main.cpp $(OBJS)
-	$(CXX) -g $(CPPFLAGS) $(LDFLAGS) $(STARSPHERE_SRC)/main.cpp -o starsphere_EinsteinS5R3 $(OBJS) $(LIBS)
+starsphere_Einstein_LVC: $(DEPS) $(STARSPHERE_SRC)/main.cpp $(OBJS)
+	$(CXX) -g $(CPPFLAGS) $(LDFLAGS) $(STARSPHERE_SRC)/main.cpp -o "graphics_app=einstein_RUNLABEL_VERSION_graphics_i686-pc-linux-gnu" $(OBJS) $(LIBS)
 
-starsphere_EinsteinRadio: $(DEPS) $(STARSPHERE_SRC)/main.cpp $(OBJS)
-	$(CXX) -g $(CPPFLAGS) $(LDFLAGS) $(STARSPHERE_SRC)/main.cpp -o starsphere_EinsteinRadio $(OBJS) $(LIBS)
+starsphere_Einstein_ABP: $(DEPS) $(STARSPHERE_SRC)/main.cpp $(OBJS)
+	$(CXX) -g $(CPPFLAGS) $(LDFLAGS) $(STARSPHERE_SRC)/main.cpp -o "graphics_app=einsteinbinary_RUNLABEL_VERSION_graphics_i686-pc-linux-gnu" $(OBJS) $(LIBS)
 
 Starsphere.o: $(DEPS) $(STARSPHERE_SRC)/Starsphere.cpp $(STARSPHERE_SRC)/Starsphere.h
 	$(CXX) -g $(CPPFLAGS) -c $(STARSPHERE_SRC)/Starsphere.cpp
@@ -106,13 +106,14 @@ $(RESOURCESPEC).o: $(STARSPHERE_SRC)/$(RESOURCESPEC).orc
 
 # tools
 memcheck:
-	valgrind --tool=memcheck --track-fds=yes --time-stamp=yes --log-file=$(PWD)/memcheck.out.%p --leak-check=full $(PWD)/starsphere
+	valgrind --tool=memcheck --track-fds=yes --time-stamp=yes --log-file=$(PWD)/memcheck.out.%p --leak-check=full $(PWD)/graphics_app=einstein_RUNLABEL_VERSION_graphics_i686-pc-linux-gnu
 
 callgrind:
-	valgrind --tool=callgrind --track-fds=yes --time-stamp=yes $(PWD)/starsphere
+	valgrind --tool=callgrind --track-fds=yes --time-stamp=yes $(PWD)/graphics_app=einstein_RUNLABEL_VERSION_graphics_i686-pc-linux-gnu
 
 install:
-	cp starsphere_* $(STARSPHERE_INSTALL)/bin
+	mkdir -p $(STARSPHERE_INSTALL)/../dist
+	cp graphics_app* $(STARSPHERE_INSTALL)/../dist
 
 clean:
-	rm -f $(RESOURCESPEC).cpp $(OBJS) starsphere_*
+	rm -f $(RESOURCESPEC).cpp $(OBJS) graphics_app*
diff --git a/src/starsphere/Makefile.macos b/src/starsphere/Makefile.macos
index e1fef21fe078fbd1faf8a48b2f020ccf323c99c9..b918e59777f7844890877ac4f789686f7224317c 100644
--- a/src/starsphere/Makefile.macos
+++ b/src/starsphere/Makefile.macos
@@ -40,7 +40,7 @@ CPPFLAGS += -I$(STARSPHERE_INSTALL)/include
 CPPFLAGS += $(shell $(STARSPHERE_INSTALL)/bin/sdl-config --cflags)
 CPPFLAGS += $(shell $(STARSPHERE_INSTALL)/bin/freetype-config --cflags)
 CPPFLAGS += $(shell $(STARSPHERE_INSTALL)/bin/xml2-config --cflags)
-CPPFLAGS += -I$(STARSPHERE_INSTALL)/include/BOINC -I/usr/include
+CPPFLAGS += -I$(STARSPHERE_INSTALL)/include/boinc -I/usr/include
 CPPFLAGS += $(CXXFALAGS)
 
 DEPS = Makefile
@@ -54,24 +54,24 @@ CPPFLAGS += -I$(STARSPHERE_SRC) -I$(STARSPHERE_SRC)/../framework
 default: release
 debug: starsphere
 release: clean starsphere
-starsphere: starsphere_EinsteinS5R3 starsphere_EinsteinRadio
+starsphere: starsphere_Einstein_LVC starsphere_Einstein_ABP
 memcheck: clean debug starsphere
 callgrind: clean debug starsphere
 
 # target specific options
 debug: CPPFLAGS += -pg -ggdb3 -O0 -Wall -Wno-switch-enum
 release: CPPFLAGS += -DNDEBUG -ggdb3 -O3 -Wall -Wno-switch-enum
-starsphere_EinsteinS5R3: CPPFLAGS += -D SCIENCE_APP=EinsteinS5R3
-starsphere_EinsteinRadio: CPPFLAGS += -D SCIENCE_APP=EinsteinRadio
+starsphere_Einstein_LVC: CPPFLAGS += -D SCIENCE_APP=EinsteinS5R3
+starsphere_Einstein_ABP: CPPFLAGS += -D SCIENCE_APP=EinsteinRadio
 memcheck: CPPFLAGS += $(DEBUGFLAGSCPP) -D DEBUG_VALGRIND
 callgrind: CPPFLAGS += $(DEBUGFLAGSCPP) -D DEBUG_VALGRIND
 
 # file based targets
-starsphere_EinsteinS5R3: $(DEPS) $(STARSPHERE_SRC)/main.cpp $(STARSPHERE_SRC)/EaHMacIcon.h $(OBJS)
-	$(CXX) -g $(CPPFLAGS) $(LDFLAGS) $(STARSPHERE_SRC)/main.cpp -o starsphere_EinsteinS5R3 $(OBJS) $(LIBS)
+starsphere_Einstein_LVC: $(DEPS) $(STARSPHERE_SRC)/main.cpp $(STARSPHERE_SRC)/EaHMacIcon.h $(OBJS)
+	$(CXX) -g $(CPPFLAGS) $(LDFLAGS) $(STARSPHERE_SRC)/main.cpp -o "graphics_app=einstein_RUNLABEL_VERSION_graphics_i686-apple-darwin" $(OBJS) $(LIBS)
 
-starsphere_EinsteinRadio: $(DEPS) $(STARSPHERE_SRC)/main.cpp $(STARSPHERE_SRC)/EaHMacIcon.h $(OBJS)
-	$(CXX) -g $(CPPFLAGS) $(LDFLAGS) $(STARSPHERE_SRC)/main.cpp -o starsphere_EinsteinRadio $(OBJS) $(LIBS)
+starsphere_Einstein_ABP: $(DEPS) $(STARSPHERE_SRC)/main.cpp $(STARSPHERE_SRC)/EaHMacIcon.h $(OBJS)
+	$(CXX) -g $(CPPFLAGS) $(LDFLAGS) $(STARSPHERE_SRC)/main.cpp -o "graphics_app=einsteinbinary_RUNLABEL_VERSION_graphics_i686-apple-darwin" $(OBJS) $(LIBS)
 
 Starsphere.o: $(DEPS) $(STARSPHERE_SRC)/Starsphere.cpp $(STARSPHERE_SRC)/Starsphere.h
 	$(CXX) -g $(CPPFLAGS) -c $(STARSPHERE_SRC)/Starsphere.cpp
@@ -106,15 +106,9 @@ $(RESOURCESPEC).o: $(STARSPHERE_SRC)/$(RESOURCESPEC).orc
 	$(CXX) -g $(CPPFLAGS) -c $(RESOURCESPEC).cpp -o $(RESOURCESPEC).o
 
 
-# tools
-memcheck:
-	valgrind --tool=memcheck --track-fds=yes --time-stamp=yes --log-file=$(PWD)/memcheck.out.%p --leak-check=full $(PWD)/starsphere
-
-callgrind:
-	valgrind --tool=callgrind --track-fds=yes --time-stamp=yes $(PWD)/starsphere
-
 install:
-	cp -R starsphere_* $(STARSPHERE_INSTALL)/bin
+	mkdir -p $(STARSPHERE_INSTALL)/../dist
+	cp graphics_app* $(STARSPHERE_INSTALL)/../dist
 
 clean:
-	rm -Rf $(RESOURCESPEC).cpp $(OBJS) starsphere_*
+	rm -f $(RESOURCESPEC).cpp $(OBJS) graphics_app*
diff --git a/src/starsphere/Makefile.mingw b/src/starsphere/Makefile.mingw
index cdb872a772e410ddc9c13fe89e48719e85a3cad2..edba0fbcbe88fb8a65564192a028cb22fa87afcf 100644
--- a/src/starsphere/Makefile.mingw
+++ b/src/starsphere/Makefile.mingw
@@ -42,7 +42,7 @@ CPPFLAGS += -I$(STARSPHERE_INSTALL)/include
 CPPFLAGS += $(shell $(STARSPHERE_INSTALL)/bin/sdl-config --cflags)
 CPPFLAGS += $(shell $(STARSPHERE_INSTALL)/bin/freetype-config --cflags)
 CPPFLAGS += $(shell $(STARSPHERE_INSTALL)/bin/xml2-config --cflags)
-CPPFLAGS += -I$(STARSPHERE_INSTALL)/include/BOINC
+CPPFLAGS += -I$(STARSPHERE_INSTALL)/include/boinc
 
 DEPS = Makefile
 OBJS = Starsphere.o StarsphereS5R3.o StarsphereRadio.o EinsteinS5R3Adapter.o EinsteinRadioAdapter.o starlist.o snr_list.o pulsar_list.o $(RESOURCESPEC).o $(RESOURCESPEC)_mingw.o
@@ -55,24 +55,24 @@ CPPFLAGS += -I$(STARSPHERE_SRC) -I$(STARSPHERE_SRC)/../framework
 default: release
 debug: starsphere
 release: clean starsphere
-starsphere: starsphere_EinsteinS5R3 starsphere_EinsteinRadio
+starsphere: starsphere_Einstein_LVC starsphere_Einstein_ABP
 memcheck: clean debug starsphere
 callgrind: clean debug starsphere
 
 # target specific options
 debug: CPPFLAGS += -pg -gstabs3 -O0 -Wall -Wno-switch-enum
 release: CPPFLAGS += -DNDEBUG -gstabs3 -O3 -Wall -Wno-switch-enum
-starsphere_EinsteinS5R3: CPPFLAGS += -D SCIENCE_APP=EinsteinS5R3
-starsphere_EinsteinRadio: CPPFLAGS += -D SCIENCE_APP=EinsteinRadio
+starsphere_Einstein_LVC: CPPFLAGS += -D SCIENCE_APP=EinsteinS5R3
+starsphere_Einstein_ABP: CPPFLAGS += -D SCIENCE_APP=EinsteinRadio
 memcheck: CPPFLAGS += $(DEBUGFLAGSCPP) -D DEBUG_VALGRIND
 callgrind: CPPFLAGS += $(DEBUGFLAGSCPP) -D DEBUG_VALGRIND
 
 # file based targets
-starsphere_EinsteinS5R3: $(DEPS) $(STARSPHERE_SRC)/main.cpp $(OBJS)
-	$(CXX) -g $(CPPFLAGS) $(LDFLAGS) $(STARSPHERE_SRC)/main.cpp -o starsphere_EinsteinS5R3.exe $(OBJS) $(LIBS)
+starsphere_Einstein_LVC: $(DEPS) $(STARSPHERE_SRC)/main.cpp $(OBJS)
+	$(CXX) -g $(CPPFLAGS) $(LDFLAGS) $(STARSPHERE_SRC)/main.cpp -o "graphics_app=einstein_RUNLABEL_VERSION_graphics_windows_intelx86.exe" $(OBJS) $(LIBS)
 
-starsphere_EinsteinRadio: $(DEPS) $(STARSPHERE_SRC)/main.cpp $(OBJS)
-	$(CXX) -g $(CPPFLAGS) $(LDFLAGS) $(STARSPHERE_SRC)/main.cpp -o starsphere_EinsteinRadio.exe $(OBJS) $(LIBS)
+starsphere_Einstein_ABP: $(DEPS) $(STARSPHERE_SRC)/main.cpp $(OBJS)
+	$(CXX) -g $(CPPFLAGS) $(LDFLAGS) $(STARSPHERE_SRC)/main.cpp -o "graphics_app=einsteinbinary_RUNLABEL_VERSION_graphics_windows_intelx86.exe" $(OBJS) $(LIBS)
 
 Starsphere.o: $(DEPS) $(STARSPHERE_SRC)/Starsphere.cpp $(STARSPHERE_SRC)/Starsphere.h
 	$(CXX) -g $(CPPFLAGS) -c $(STARSPHERE_SRC)/Starsphere.cpp
@@ -108,14 +108,9 @@ $(RESOURCESPEC)_mingw.o: $(STARSPHERE_SRC)/$(RESOURCESPEC).rc
 	$(STARSPHERE_INSTALL)/bin/i586-pc-mingw32-windres -O coff -o $(RESOURCESPEC)_mingw.o $(STARSPHERE_SRC)/$(RESOURCESPEC).rc
 
 # tools
-memcheck:
-	valgrind --tool=memcheck --track-fds=yes --time-stamp=yes --log-file=$(PWD)/memcheck.out.%p --leak-check=full $(PWD)/starsphere
-
-callgrind:
-	valgrind --tool=callgrind --track-fds=yes --time-stamp=yes $(PWD)/starsphere
-
 install:
-	cp starsphere_* $(STARSPHERE_INSTALL)/bin
+	mkdir -p $(STARSPHERE_INSTALL)/../dist
+	cp graphics_app* $(STARSPHERE_INSTALL)/../dist
 
 clean:
-	rm -f $(RESOURCESPEC).cpp $(OBJS) starsphere_*
+	rm -f $(RESOURCESPEC).cpp $(OBJS) graphics_app*