factor out Makefile.haskell
[sbp.git] / Makefile.haskell
diff --git a/Makefile.haskell b/Makefile.haskell
new file mode 100644 (file)
index 0000000..29c2c2a
--- /dev/null
@@ -0,0 +1,31 @@
+ghc_version = $(shell ghc --version | sed 's_.*version \([0-9]*\.[0-9]*\).*_\1_')
+
+ifeq ($(ghc_version),6.5)
+patchghc    = patch -p0 < $(shell pwd)/misc/ghc-6.5-patch &&
+else
+patchghc    =
+endif
+
+ifeq ($(shell uname),Darwin)
+with_jvmdir = --with-jvmdir=/System/Library/Frameworks/JavaVM.framework/
+jvmlink     = -framework JavaVM -optl -fexceptions
+patchmac    = patch -p0 < $(shell pwd)/misc/intel-mac-patch &&
+linkopts    =
+platlink    = -L$(prefix)/lib/ -L$(JAVA_HOME)/jre/lib/i386/ -L$(JAVA_HOME)/jre/lib/i386/client/
+else
+with_jvmdir = --with-jvmdir=$(JAVA_HOME)
+jvmlink     = -ljava -ljvm -lverify
+patchmac    =
+linkopts    = -optl "-Wl,-rpath,$(JAVA_HOME)/jre/lib/i386/" -optl "-Wl,-rpath,$(JAVA_HOME)/jre/lib/i386/client/"
+platlink    =
+endif
+
+prefix          = $(shell pwd)/prefix
+jvm-bridge-site = umn.dl.sourceforge.net
+jvm-bridge-url  = http://$(jvm-bridge-site)/sourceforge/jvm-bridge/haskell-jvm-bridge-0.3.tar.gz
+
+#              The double -lHaskellJVMBridge is due to a circular link dep; the linux linker gets upset
+link            = $(platlink) -lstdc++ -lHaskellJVMBridge -lJVMBridge -lJVMInvocation -lHaskellJVMBridge $(jvmlink)
+packages        = -package haskell98 -package base -package rts
+ghc             = ghc -fglasgow-exts $(packages) -i$(prefix)/imports/
+bin             = $(prefix)/bin/