New git HEAD version
[libdai.git] / Makefile.WINDOWS
index 9290701..a18001d 100644 (file)
@@ -1,31 +1,16 @@
+# This file is part of libDAI - http://www.libdai.org/
+#
+# Copyright (c) 2006-2011, The libDAI authors. All rights reserved.
+#
+# Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
+
+
 # This template contains configurations for compiling libDAI with Visual C++
 # under Windows (and GNU Make)
-# 
+#
 # To use it, simply copy this file to 'Makefile.conf' and adapt 'Makefile.conf'
 # to your local setup
-#
-# A boolean variable VAR can be set to true ("VAR=true") or to false ("VAR=")
 
-# COMPILATION AND BUILD FLAGS
-# Enable/disable various approximate inference methods
-WITH_BP=true
-WITH_MF=true
-WITH_HAK=true
-WITH_LC=true
-WITH_TREEEP=true
-WITH_JTREE=true
-WITH_MR=true
-WITH_GIBBS=true
-WITH_BP_DUAL=true
-WITH_CBP=true
-# Build doxygen documentation?
-WITH_DOC=
-# Build with debug info?
-DEBUG=true
-# Build matlab interface?
-WITH_MATLAB=
-# New/old matlab version?
-NEW_MATLAB=true
 
 # OPERATING SYSTEM
 # Choose OS from {LINUX, WINDOWS, CYGWIN, MACOSX}
@@ -39,7 +24,12 @@ OE=.obj
 # Binary executable
 EE=.exe
 # MatLab compiled MEX file
-ME=.mexglx
+ME=.mexw32
+
+# DIRECTORIES
+# Directories where third party libraries are located
+BOOSTDIR=E:\windows\boost_1_51_0
+MPIRDIR=E:\windows\mpir_251
 
 # COMPILER
 # Compile using Visual C++ Compiler
@@ -47,25 +37,55 @@ CC=cl
 # Output filename option of the compiler
 CCO=/Fe
 # Flags for the C++ compiler
-CCFLAGS=/EHsc /Ox -DWINDOWS
+CCFLAGS=/EHac /GR /W3 /DWINDOWS /DNOMINMAX /MD
+# For MatLab R2008b, the following flag seems to be necessary: /D_SECURE_SCL=0
+# but it generates exceptions in normal executables... therefore, the MatLab 
+# interface is now built from source completely using mex
 # Flags to add in debugging mode (if DEBUG=true)
-CCDEBUGFLAGS=/Zi -DDAI_DEBUG
+CCDEBUGFLAGS=/Ox /Zi /DDAI_DEBUG
+# Flags to add in non-debugging mode (if DEBUG=false)
+CCNODEBUGFLAGS=/Ox
 # Standard include directories
-CCINC=/Iinclude /IC:\boost_1_36_0
+CCINC=-Iinclude -I$(BOOSTDIR) -I$(MPIRDIR)
 
 # LINKER
 # Standard libraries to include
-LIBS=/link $(LIB)/libdai$(LE) 
-# For linking with the BOOST Program Options library
-BOOSTLIBS=/LIBPATH:C:\boost_1_36_0\stage\lib
+LIBS=/link $(LIB)/libdai$(LE)
+# For linking with BOOST libraries
+BOOSTLIBS_PO=/LIBPATH:$(BOOSTDIR)\stage\lib
+BOOSTLIBS_UTF=/LIBPATH:$(BOOSTDIR)\stage\lib
 # Additional library search paths for linker
 # (For some reason, we have to add the VC library path, although it is in the environment)
-CCLIB=/LIBPATH:"C:\Program Files\Microsoft Visual Studio 9.0\VC\ATLMFC\LIB" /LIBPATH:"C:\Program Files\Microsoft Visual Studio 9.0\VC\LIB" /LIBPATH:"C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib"
+CCLIB=/LIBPATH:"C:\Program Files\Microsoft Visual Studio 9.0\VC\ATLMFC\LIB" /LIBPATH:"C:\Program Files\Microsoft Visual Studio 9.0\VC\LIB" /LIBPATH:"C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib" /LIBPATH:"$(MPIRDIR)" mpirxx.lib mpir.lib
 
 # MATLAB
+# MatLab version 7.3 (R2006b) or newer?
+NEW_MATLAB=true
 # Replace the following by the directory where MatLab has been installed
-MATLABDIR=c:\matlab
+MATLABDIR=c:\matlab\R2008b
 # The following should resolve to the MatLab mex compile command
 MEX=$(MATLABDIR)\bin\mex
-# Specify the same C++ compiler and flags to mex
-MEXFLAGS=CXX\#$(CC) CXXFLAGS\#"$(CCFLAGS)"
+# Flags for MEX
+MEXFLAGS:=-DWINDOWS -DNOMINMAX
+# Standard include directories for MEX
+MEXINC:=$(CCINC)
+# Standard libraries to include
+MEXLIBS:=-lmpirxx -lmpir
+# Additional library search paths for MEX
+MEXLIB:=-L"$(BOOSTDIR)\stage\lib" -L"C:\Program Files\Microsoft Visual Studio 9.0\VC\ATLMFC\LIB" -L"C:\Program Files\Microsoft Visual Studio 9.0\VC\LIB" -L"C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib" -L"$(MPIRDIR)"
+
+# SWIG PYTHON INTERFACE
+# The following should resolve to the SWIG command
+SWIG=swig
+# Location of Python header files
+INCLUDE_PYTHON=C:\python2.5
+# Location of Boost C++ library header files
+INCLUDE_BOOST=$(BOOSTDIR)
+
+# CIMG
+# CImg version 1.3.0 or newer?
+NEW_CIMG=true
+# Include directory for image segmentation example
+CIMGINC=-IE:\windows\CImg-1.3.9
+# Libraries for image segmentation example
+CIMGLIBS=gdi32.lib user32.lib shell32.lib