Index: src/Jobs/MPQCCommandJob_binding.hpp
===================================================================
--- src/Jobs/MPQCCommandJob_binding.hpp	(revision d5b458b092f61a476384f5b9b116acbe1f30ffa9)
+++ src/Jobs/MPQCCommandJob_binding.hpp	(revision d5b458b092f61a476384f5b9b116acbe1f30ffa9)
@@ -0,0 +1,29 @@
+/*
+ * MPQCCommandJob_binding.hpp
+ *
+ *  Created on: Jan 14, 2013
+ *      Author: heber
+ */
+
+#ifndef MPQCCOMMANDJOB_BINDING_HPP_
+#define MPQCCOMMANDJOB_BINDING_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+// force binding to libMolecuilderJobs
+#include "Jobs/MPQCCommandJob.hpp"
+
+namespace __detail {
+  /** This is a dummy function to enforce binding of the executable to the
+   * jobs library.
+   */
+  void instantiateDummyMPQCCommandJob()
+  {
+    MPQCCommandJob job("test.in", 1, "/bin/false");
+  }
+}
+
+#endif /* MPQCCOMMANDJOB_BINDING_HPP_ */
Index: src/Jobs/Makefile.am
===================================================================
--- src/Jobs/Makefile.am	(revision cf1d823b3a48bb18e9495df9853f602112c417ff)
+++ src/Jobs/Makefile.am	(revision d5b458b092f61a476384f5b9b116acbe1f30ffa9)
@@ -3,7 +3,7 @@
 
 JOBSSOURCE = \
-        Jobs/MPQCCommandJob.cpp \
-        Jobs/MPQCData.cpp \
-        Jobs/MPQCJob.cpp
+	Jobs/MPQCCommandJob.cpp \
+	Jobs/MPQCData.cpp \
+	Jobs/MPQCJob.cpp
 if CONDVMG
 JOBSSOURCE += \
@@ -16,10 +16,11 @@
 
 JOBSHEADER = \
-        Jobs/MPQCCommandJob.hpp \
-        Jobs/MPQCData.hpp \
-        Jobs/MPQCDataFused.hpp \
-        Jobs/MPQCDataMap.hpp \
-        Jobs/MPQCData_printKeyNames.hpp \
-        Jobs/MPQCJob.hpp 
+	Jobs/MPQCCommandJob.hpp \
+	Jobs/MPQCCommandJob_binding.hpp \
+	Jobs/MPQCData.hpp \
+	Jobs/MPQCDataFused.hpp \
+	Jobs/MPQCDataMap.hpp \
+	Jobs/MPQCData_printKeyNames.hpp \
+	Jobs/MPQCJob.hpp 
 if CONDVMG
 JOBSHEADER += \
@@ -27,9 +28,11 @@
 	Jobs/InterfaceVMGJob.hpp \
 	Jobs/VMGData.hpp \
-  Jobs/VMGDataFused.hpp \
-  Jobs/VMGDataMap.hpp \
-  Jobs/VMGData_printKeyNames.hpp \
+	Jobs/VMGDataFused.hpp \
+	Jobs/VMGDataMap.hpp \
+	Jobs/VMGData_printKeyNames.hpp \
 	Jobs/VMGDebugGridJob.hpp \
-	Jobs/VMGJob.hpp
+	Jobs/VMGDebugGridJob_binding.hpp \
+	Jobs/VMGJob.hpp \
+	Jobs/VMGJob_binding.hpp
 endif
 
@@ -45,6 +48,10 @@
 libMolecuilderJobs_la_SOURCES = $(JOBSSOURCE)
 libMolecuilderJobs_la_LIBADD = \
-  libMolecuilderJobsGrid.la \
-  $(VMG_LIBS) \
+  libMolecuilderJobsGrid.la
+if CONDVMG
+libMolecuilderJobs_la_LIBADD += \
+  $(VMG_LIBS)
+endif
+libMolecuilderJobs_la_LIBADD += \
   $(JobMarket_LIBS) \
   $(BOOST_SERIALIZATION_LIBS) \
Index: src/Jobs/VMGDebugGridJob_binding.hpp
===================================================================
--- src/Jobs/VMGDebugGridJob_binding.hpp	(revision d5b458b092f61a476384f5b9b116acbe1f30ffa9)
+++ src/Jobs/VMGDebugGridJob_binding.hpp	(revision d5b458b092f61a476384f5b9b116acbe1f30ffa9)
@@ -0,0 +1,31 @@
+/*
+ * VMGDebugGridJob_binding.hpp
+ *
+ *  Created on: Jan 14, 2013
+ *      Author: heber
+ */
+
+#ifndef VMGDEBUGGRIDJOB_BINDING_HPP_
+#define VMGDEBUGGRIDJOB_BINDING_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+// force binding to libMolecuilderJobs
+#include "Jobs/VMGDebugGridJob.hpp"
+
+namespace __detail {
+  /** This is a dummy function to enforce binding of the executable to the
+   * jobs library.
+   */
+  void instantiateDummyVMGDebugGridJob()
+  {
+    VMGDebugGridJob job(
+        1,
+        SamplingGrid());
+  }
+}
+
+#endif /* VMGDEBUGGRIDJOB_BINDING_HPP_ */
Index: src/Jobs/VMGJob_binding.hpp
===================================================================
--- src/Jobs/VMGJob_binding.hpp	(revision d5b458b092f61a476384f5b9b116acbe1f30ffa9)
+++ src/Jobs/VMGJob_binding.hpp	(revision d5b458b092f61a476384f5b9b116acbe1f30ffa9)
@@ -0,0 +1,35 @@
+/*
+ * VMGJob_binding.hpp
+ *
+ *  Created on: Jan 14, 2013
+ *      Author: heber
+ */
+
+#ifndef VMGJOB_BINDING_HPP_
+#define VMGJOB_BINDING_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+// force binding to libMolecuilderJobs
+#include "Jobs/VMGJob.hpp"
+
+namespace __detail {
+  /** This is a dummy function to enforce binding of the executable to the
+   * jobs library.
+   */
+  void instantiateDummyVMGJob()
+  {
+    VMGJob job(
+        1,
+        SamplingGrid(),
+        std::vector< std::vector< double > >(),
+        std::vector< double >(),
+        1,
+        1);
+  }
+}
+
+#endif /* VMGJOB_BINDING_HPP_ */
Index: src/Makefile.am
===================================================================
--- src/Makefile.am	(revision cf1d823b3a48bb18e9495df9853f602112c417ff)
+++ src/Makefile.am	(revision d5b458b092f61a476384f5b9b116acbe1f30ffa9)
@@ -444,5 +444,5 @@
 
 Controller_SOURCES = controller.cpp controller_AddOn_MPQCCommandJob.cpp
-Controller_LDFLAGS = $(AM_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LDFLAGS) ${CodePatterns_LDFLAGS}
+Controller_LDFLAGS = $(AM_LDFLAGS) $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LDFLAGS) ${CodePatterns_LDFLAGS}
 Controller_CPPFLAGS = $(AM_CPPFLAGS) $(JobMarket_CFLAGS)
 Controller_LDADD = \
@@ -454,9 +454,10 @@
 	$(JobMarket_Controller_LIBS) \
 	$(top_builddir)/LinearAlgebra/src/LinearAlgebra/libLinearAlgebra.la \
+	$(BOOST_SERIALIZATION_LIBS) \
 	$(BOOST_PROGRAM_OPTIONS_LIBS) \
 	${CodePatterns_LIBS}
 
 PoolWorker_SOURCES = poolworker.cpp 
-PoolWorker_LDFLAGS = $(AM_LDFLAGS) ${CodePatterns_LDFLAGS}
+PoolWorker_LDFLAGS = $(AM_LDFLAGS) $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LDFLAGS) ${CodePatterns_LDFLAGS}
 PoolWorker_CPPFLAGS = $(AM_CPPFLAGS) $(JobMarket_CFLAGS)
 PoolWorker_LDADD = \
@@ -464,8 +465,10 @@
 	${JobMarket_PoolWorker_LIBS} \
 	$(top_builddir)/LinearAlgebra/src/LinearAlgebra/libLinearAlgebra.la \
+	$(BOOST_SERIALIZATION_LIBS) \
+	$(BOOST_PROGRAM_OPTIONS_LIBS) \
 	${CodePatterns_LIBS}
 
 Server_SOURCES = Server.cpp 
-Server_LDFLAGS = $(AM_LDFLAGS) ${CodePatterns_LDFLAGS}
+Server_LDFLAGS = $(AM_LDFLAGS) $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LDFLAGS) ${CodePatterns_LDFLAGS}
 Server_CPPFLAGS = $(AM_CPPFLAGS) $(JobMarket_CFLAGS)
 Server_LDADD = \
@@ -473,4 +476,6 @@
 	${JobMarket_Server_LIBS} \
 	$(top_builddir)/LinearAlgebra/src/LinearAlgebra/libLinearAlgebra.la \
+	$(BOOST_SERIALIZATION_LIBS) \
+	$(BOOST_PROGRAM_OPTIONS_LIBS) \
 	${CodePatterns_LIBS}
 endif
Index: src/Server.cpp
===================================================================
--- src/Server.cpp	(revision cf1d823b3a48bb18e9495df9853f602112c417ff)
+++ src/Server.cpp	(revision d5b458b092f61a476384f5b9b116acbe1f30ffa9)
@@ -37,4 +37,11 @@
 #include "JobMarket/server_main.hpp"
 
+// force binding to libMolecuilderJobs
+#include "Jobs/MPQCCommandJob_binding.hpp"
+#ifdef HAVE_VMG
+#include "Jobs/VMGJob_binding.hpp"
+#include "Jobs/VMGDebugGridJob_binding.hpp"
+#endif
+
 int main(int argc, char* argv[])
 {
Index: src/poolworker.cpp
===================================================================
--- src/poolworker.cpp	(revision cf1d823b3a48bb18e9495df9853f602112c417ff)
+++ src/poolworker.cpp	(revision d5b458b092f61a476384f5b9b116acbe1f30ffa9)
@@ -38,4 +38,7 @@
 #include "JobMarket/poolworker_main.hpp"
 
+// force binding to libMolecuilderJobs
+#include "Jobs/MPQCCommandJob_binding.hpp"
+// poolworker has nothing to do with VMG jobs
 
 int main(int argc, char* argv[])
