diff -rN -u old-haskell-platform/src/generic/tarball/configure.ac new-haskell-platform/src/generic/tarball/configure.ac
--- old-haskell-platform/src/generic/tarball/configure.ac	2012-05-31 22:28:57.818650836 +0200
+++ new-haskell-platform/src/generic/tarball/configure.ac	2012-05-31 22:28:57.830650835 +0200
@@ -104,6 +104,25 @@
   [ENABLE_PROFILING=YES]
 )
 
+# Not building shared libraries by default.
+AC_ARG_ENABLE(shared,
+[AC_HELP_STRING([--enable-shared],
+                [Build shared versions of libraries for dynamic linking. (default=disable)])],
+  [case "${enableval}" in
+     yes)
+       ENABLE_SHARED=YES
+       ;;
+     no)
+       ENABLE_SHARED=NO
+       ;;
+     *)
+       AC_MSG_ERROR([The --enable-shared value should be "yes" or "no"])
+       ;;
+   esac
+  ],
+  [ENABLE_SHARED=NO]
+)
+
 
 AC_ARG_ENABLE(unsupported-ghc-version,
 [AC_HELP_STRING([--enable-unsupported-ghc-version],
@@ -250,6 +269,7 @@
 
 AC_SUBST([USER_INSTALL])
 AC_SUBST([ENABLE_PROFILING])
+AC_SUBST([ENABLE_SHARED])
 AC_SUBST([ALLOW_UNSUPPORTED_GHC])
 
 AC_OUTPUT
diff -rN -u old-haskell-platform/src/generic/tarball/scripts/build.sh new-haskell-platform/src/generic/tarball/scripts/build.sh
--- old-haskell-platform/src/generic/tarball/scripts/build.sh	2012-05-31 22:28:57.818650836 +0200
+++ new-haskell-platform/src/generic/tarball/scripts/build.sh	2012-05-31 22:28:57.830650835 +0200
@@ -74,6 +74,12 @@
   if test "${ENABLE_PROFILING}" = "YES"; then
     CABAL_PROFILING_FLAG="--enable-library-profiling"
   fi
+  if test "${ENABLE_SHARED}" = "YES"; then
+    CABAL_SHARED_FLAG="--enable-shared"
+
+    # Work around for Cabal's inability to pass this option
+    GHC_PKG_FLAG_SHARED="--ghc-option=-package-conf=../../${PACKAGE_DB}"
+  fi
 
   # Work around for Cabal 1.8.0.2 not registering properly
   GHC_PKG_FLAG=--ghc-pkg-option=--package-conf="../../${PACKAGE_DB}" 
@@ -88,8 +94,9 @@
   tell ./Setup configure --package-db="../../${PACKAGE_DB}" --prefix="${prefix}" \
     --with-compiler=${GHC} --with-hc-pkg=${GHC_PKG} --with-hsc2hs=${HSC2HS} \
     ${HAPPY_FLAG1} ${HAPPY_FLAG2} ${ALEX_FLAG} \
-    ${CABAL_INSTALL_FLAG} ${CABAL_PROFILING_FLAG} \
-    ${EXTRA_CONFIGURE_OPTS} ${VERBOSE} ${GHC_PKG_FLAG} ${USER_PKG_FLAG} \
+    ${CABAL_INSTALL_FLAG} ${CABAL_PROFILING_FLAG} ${CABAL_SHARED_FLAG} \
+    ${EXTRA_CONFIGURE_OPTS} ${VERBOSE} \
+    ${GHC_PKG_FLAG} ${GHC_PKG_FLAG_SHARED} ${USER_PKG_FLAG} \
     || die "Configuring the ${PKG} package failed"
 
   tell ./Setup build ${VERBOSE} \
diff -rN -u old-haskell-platform/src/generic/tarball/scripts/config.in new-haskell-platform/src/generic/tarball/scripts/config.in
--- old-haskell-platform/src/generic/tarball/scripts/config.in	2012-05-31 22:28:57.818650836 +0200
+++ new-haskell-platform/src/generic/tarball/scripts/config.in	2012-05-31 22:28:57.830650835 +0200
@@ -17,3 +17,4 @@
 ALLOW_UNSUPPORTED_GHC=@ALLOW_UNSUPPORTED_GHC@
 USER_INSTALL=@USER_INSTALL@
 ENABLE_PROFILING=@ENABLE_PROFILING@
+ENABLE_SHARED=@ENABLE_SHARED@
