linking mkl

This commit is contained in:
Joachim Schoeberl 2013-02-26 13:11:08 +00:00
parent 22d054bc89
commit 73708660ab
3 changed files with 36 additions and 3 deletions

View File

@ -137,7 +137,11 @@ AC_ARG_ENABLE([ffmpeg],
)
mklon=false
AC_ARG_ENABLE([mkl],
[AS_HELP_STRING([--enable-mkl],[link Intel's mkl library, necessary for ngsolve and mkl 11.x])],
[if test "$enableval" = yes; then mklon=true; else mklon=false; fi]
)
# only for GUI version
@ -194,6 +198,7 @@ fi
AM_CONDITIONAL([NGLIB], [test x$nglibon = xtrue])
AM_CONDITIONAL([NGGUI], [test x$ngguion = xtrue])
AM_CONDITIONAL([NGMKL], [test x$mklon = xtrue])
AC_CHECK_HEADER(pthread.h)

View File

@ -9,12 +9,20 @@ endif
netgen_SOURCES = demoview.cpp ngappinit.cpp onetcl.cpp parallelfunc.cpp ngpkg.cpp demoview.hpp parallelfunc.hpp togl_1_7.h
# nginterface.cpp nginterface_v2.cpp
if NGMKL
AM_CPPFLAGS += -DLINKMKL
MKL_LIBS = -L$(MKLROOT)/lib/intel64 -lmkl_intel_lp64 -lmkl_gnu_thread -lmkl_core -lmkl_def
endif
netgen_LDADD = $(top_builddir)/libsrc/visualization/libvisual.la \
$(top_builddir)/libsrc/csg/libcsgvis.la \
$(top_builddir)/libsrc/csg/libcsg.la \
$(top_builddir)/libsrc/interface/libinterface.la \
$(top_builddir)/libsrc/meshing/libmesh.la \
-L$(TK_BIN_DIR)/Togl1.7 $(TOGLLIBDIR) -lTogl $(LIBGLU) $(TK_LIB_SPEC) $(TCL_LIB_SPEC) $(MPI_LIBS) $(FFMPEG_LIBS) $(JPEGLIB_LIBS) $(PKG_LIBS)
-L$(TK_BIN_DIR)/Togl1.7 $(TOGLLIBDIR) -lTogl $(LIBGLU) $(TK_LIB_SPEC) $(TCL_LIB_SPEC) $(MPI_LIBS) $(FFMPEG_LIBS) $(JPEGLIB_LIBS) $(PKG_LIBS) $(MKL_LIBS)
#
# $(top_builddir)/libsrc/occ/liboccvis.la
# $(top_builddir)/libsrc/occ/libocc.la

View File

@ -58,6 +58,7 @@ extern "C" int Ng_ServerSocketManagerRun (void);
bool nodisplay = false;
bool shellmode = false;
/*
*
* The Netgen main function
@ -82,7 +83,6 @@ int main(int argc, char ** argv)
MPI_Comm_dup ( MPI_COMM_WORLD, &netgen::mesh_comm);
#endif
if ( netgen::id == 0 )
{
cout << "NETGEN-" << PACKAGE_VERSION << endl;
@ -418,3 +418,23 @@ int Tcl_AppInit(Tcl_Interp * interp)
Tcl_StaticPackage(interp, "Tk", Tk_Init, 0);
return TCL_OK;
}
// link MKL with netgen
// necessary for MKL 11.x, since MKL complains if started
// from the ngsolve shared library
#ifdef LINKMKL
extern "C" double ddot_(int *n, double *dx, int *incx, double *dy,
int *incy);
int mkldummy()
{
int n = 1, one = 1;
double a = 1, b = 1;
ddot_(&n, &a, &one, &b, &one);
}
#endif