From 965ea7280a55a9da0eb2f963258fd88b8433f02b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien.villemot@ens.fr>
Date: Wed, 8 Dec 2010 10:22:44 +0100
Subject: [PATCH] Build system: add detection and linking of MatIO library for
 Estimation DLL under Octave

---
 mex/build/octave/Makefile.am                    |  5 ++++-
 mex/build/octave/configure.ac                   | 13 +++++++++++++
 mex/build/octave/logMHMCMCposterior/Makefile.am |  2 ++
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/mex/build/octave/Makefile.am b/mex/build/octave/Makefile.am
index 6f3f3db7b9..001705e661 100644
--- a/mex/build/octave/Makefile.am
+++ b/mex/build/octave/Makefile.am
@@ -2,8 +2,11 @@ ACLOCAL_AMFLAGS = -I ../../../m4
 
 # libdynare++ must come before gensylv, k_order_perturbation, dynare_simul_
 if DO_SOMETHING
-SUBDIRS = mjdgges kronecker bytecode libdynare++ gensylv k_order_perturbation dynare_simul_ logposterior logMHMCMCposterior qzcomplex ordschur libslicot kalman_steady_state
+SUBDIRS = mjdgges kronecker bytecode libdynare++ gensylv k_order_perturbation dynare_simul_ qzcomplex ordschur libslicot kalman_steady_state
 if HAVE_GSL
 SUBDIRS += swz
 endif
+if HAVE_MATIO
+SUBDIRS += logposterior logMHMCMCposterior
+endif
 endif
diff --git a/mex/build/octave/configure.ac b/mex/build/octave/configure.ac
index 8654ef7447..5ccdc90994 100644
--- a/mex/build/octave/configure.ac
+++ b/mex/build/octave/configure.ac
@@ -59,6 +59,12 @@ AC_SUBST([LIBADD_DLOPEN])
 AX_GSL
 AM_CONDITIONAL([HAVE_GSL], [test "x$has_gsl" = "xyes"])
 
+# Check for libmatio, needed by estimation DLL (only under Octave, as an alternative to MATLAB's libmat)
+AC_CHECK_HEADER([matio.h])
+AC_CHECK_LIB([matio], [Mat_Open], [LIBADD_MATIO="-lmatio"])
+AC_SUBST([LIBADD_MATIO])
+AM_CONDITIONAL([HAVE_MATIO], [test "x$ac_cv_header_matio_h" = "xyes" -a "x$ac_cv_lib_matio_Mat_Open" = "xyes"])
+
 AM_CONDITIONAL([DO_SOMETHING], [test "x$MKOCTFILE" != "x"])
 
 if test "x$MKOCTFILE" != "x"; then
@@ -77,6 +83,12 @@ else
    BUILD_SWZ_MEX_OCTAVE="no (missing GSL)"
 fi
 
+if test "x$MKOCTFILE" != "x" -a "x$ac_cv_header_matio_h" = "xyes" -a "x$ac_cv_lib_matio_Mat_Open" = "xyes"; then
+  BUILD_ESTIMATION_MEX_OCTAVE="yes"
+else
+  BUILD_ESTIMATION_MEX_OCTAVE="no (missing MatIO library)"
+fi
+
 AC_ARG_ENABLE([openmp], AS_HELP_STRING([--enable-openmp], [use OpenMP for parallelization of some MEX files]), [
   if test "x$enable_openmp" = "xyes"; then
     CPPFLAGS="$CPPFLAGS -DUSE_OMP"
@@ -92,6 +104,7 @@ Dynare is now configured for building the following components...
 Binaries (with "make"):
  MEX files for Octave (except SWZ):     $BUILD_MEX_OCTAVE
  SWZ MEX files for Octave:              $BUILD_SWZ_MEX_OCTAVE
+ Estimation MEX for Octave:             $BUILD_ESTIMATION_MEX_OCTAVE
 
 ])
 
diff --git a/mex/build/octave/logMHMCMCposterior/Makefile.am b/mex/build/octave/logMHMCMCposterior/Makefile.am
index d5d3d68d26..071f3d8af8 100644
--- a/mex/build/octave/logMHMCMCposterior/Makefile.am
+++ b/mex/build/octave/logMHMCMCposterior/Makefile.am
@@ -1,3 +1,5 @@
 EXEEXT = .mex
 include ../mex.am
 include ../../logMHMCMCposterior.am
+
+logMHMCMCposterior_LDADD += $(LIBADD_MATIO)
-- 
GitLab