diff src/octave.mk @ 3144:433d1bb3cafb

[MSVC] enable octave compilation
author Michael Goffioul <michael.goffioul@gmail.com>
date Mon, 15 Jul 2013 21:29:42 -0400
parents 076acecb9c21
children d1231b6c2b34
line wrap: on
line diff
--- a/src/octave.mk	Mon Jul 15 21:29:42 2013 -0400
+++ b/src/octave.mk	Mon Jul 15 21:29:42 2013 -0400
@@ -10,6 +10,7 @@
 $(PKG)_DEPS     := arpack curl fftw fltk fontconfig glpk gnuplot graphicsmagick hdf5 lapack pcre pstoedit qhull qrupdate qscintilla qt readline suitesparse texinfo zlib
 ifeq ($(ENABLE_JIT),yes)
   $(PKG)_DEPS += llvm
+$(PKG)_ENABLE_JIT_CONFIGURE_OPTIONS := --enable-jit
 endif
 
 ifeq ($(ENABLE_OPENBLAS),yes)
@@ -35,6 +36,22 @@
   endif
 endif
 
+ifeq ($(MXE_SYSTEM),msvc)
+  $(PKG)_PREFIX := '$(HOST_PREFIX)/local/$($(PKG)_SUBDIR)'
+  # - Enable atomic refcount (required for QtHandles)
+  # - Skip configure test for pow and sqrt, MSVC fails to compile them
+  #   because it uses intrinsics (with -O2 flag) and bump on the fake
+  #   "char FUNC()" forward declaration.
+  $(PKG)_EXTRA_CONFIGURE_OPTIONS := \
+    --enable-atomic-refcount \
+    ac_cv_func_pow=yes ac_cv_func_sqrt=yes
+  $(PKG)_CONFIGURE_POST_HOOK := $(CONFIGURE_POST_HOOK) -x
+else
+  $(PKG)_PREFIX := '$(HOST_PREFIX)'
+  $(PKG)_EXTRA_CONFIGURE_OPTIONS := \
+    LDFLAGS='-Wl,-rpath-link,$(HOST_LIBDIR) -L$(HOST_LIBDIR)'
+endif
+
 define $(PKG)_UPDATE
     echo 'Warning: Updates are temporarily disabled for package octave.' >&2;
     echo $(octave_VERSION)
@@ -45,17 +62,23 @@
     cd '$(1)' && autoreconf -W none
     cd '$(1)/.build' && $($(PKG)_CONFIGURE_ENV) '$(1)/configure' \
         $(CONFIGURE_CPPFLAGS) \
-        LDFLAGS='-Wl,-rpath-link,$(HOST_LIBDIR) -L$(HOST_LIBDIR)' \
         $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \
-        --prefix='$(HOST_PREFIX)' \
+        --prefix='$($(PKG)_PREFIX)' \
         $($(PKG)_BLAS_OPTION) \
 	$($(PKG)_CROSS_CONFIG_OPTIONS) \
-        $($(PKG)_ENABLE_64_CONFIGURE_OPTIONS)
+        $($(PKG)_ENABLE_64_CONFIGURE_OPTIONS) \
+        $($(PKG)_ENABLE_JIT_CONFIGURE_OPTIONS) \
+	$($(PKG)_EXTRA_CONFIGURE_OPTIONS) \
+	PKG_CONFIG='$(MXE_PKG_CONFIG)' \
+	PKG_CONFIG_PATH='$(HOST_LIBDIR)/pkgconfig' \
+        && $($(PKG)_CONFIGURE_POST_HOOK)
 
     ## We want both of these install steps so that we install in the
     ## location set by the configure --prefix option, and the other
     ## in a directory tree that will have just Octave files.
     $(MAKE) -C '$(1)/.build' -j '$(JOBS)' install
-    $(MAKE) -C '$(1)/.build' -j '$(JOBS)' DESTDIR=$(TOP_DIR)/octave install
+    if [ $(MXE_SYSTEM) != msvc ]; then \
+        $(MAKE) -C '$(1)/.build' -j '$(JOBS)' DESTDIR=$(TOP_DIR)/octave install; \
+    fi
 endef