# # mexopts.sh Shell script for configuring MEX-file creation script, # mex. These options were tested with the specified compiler. # # usage: Do not call this file directly; it is sourced by the # mex shell script. Modify only if you don't like the # defaults after running mex. No spaces are allowed # around the '=' in the variable assignment. # # Note: For the version of system compiler supported with this release, # refer to Technical Note 1601 at: # http://www.mathworks.com/support/tech-notes/1600/1601.html # # # SELECTION_TAGs occur in template option files and are used by MATLAB # tools, such as mex and mbuild, to determine the purpose of the contents # of an option file. These tags are only interpreted when preceded by '#' # and followed by ':'. # #SELECTION_TAG_MEX_OPT: Template Options file for building MEX-files via the system ANSI compiler # # Copyright 1984-2007 The MathWorks, Inc. # $Revision: 1.78.4.15 $ $Date: 2007/11/12 22:52:41 $ #---------------------------------------------------------------------------- # TMW_ROOT="$MATLAB" MFLAGS='' if [ "$ENTRYPOINT" = "mexLibrary" ]; then MLIBS="-L$TMW_ROOT/bin/$Arch -lmx -lmex -lmat -lmwservices -lut" else MLIBS="-L$TMW_ROOT/bin/$Arch -lmx -lmex -lmat" fi case "$Arch" in Undetermined) #---------------------------------------------------------------------------- # Change this line if you need to specify the location of the MATLAB # root directory. The script needs to know where to find utility # routines so that it can determine the architecture; therefore, this # assignment needs to be done while the architecture is still # undetermined. #---------------------------------------------------------------------------- MATLAB="$MATLAB" ;; glnx86) #---------------------------------------------------------------------------- RPATH="-Wl,-rpath-link,$TMW_ROOT/bin/$Arch" # StorageVersion: 1.0 # CkeyName: GNU C # CkeyManufacturer: GNU # CkeyLanguage: C # CkeyVersion: CC='gcc' CFLAGS='-ansi -D_GNU_SOURCE' CFLAGS="$CFLAGS -fPIC -pthread -m32" CFLAGS="$CFLAGS -fexceptions" CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64" CLIBS="$RPATH $MLIBS -lm" COPTIMFLAGS='-O -DNDEBUG' CDEBUGFLAGS='-g' CLIBS="$CLIBS -lstdc++" # # C++keyName: GNU C++ # C++keyManufacturer: GNU # C++keyLanguage: C++ # C++keyVersion: CXX='g++' CXXFLAGS='-ansi -D_GNU_SOURCE' CXXFLAGS="$CXXFLAGS -D_FILE_OFFSET_BITS=64" CXXFLAGS="$CXXFLAGS -fPIC -pthread" CXXLIBS="$RPATH $MLIBS -lm" CXXOPTIMFLAGS='-O -DNDEBUG' CXXDEBUGFLAGS='-g' # # # FortrankeyName: g95 # FortrankeyManufacturer: GNU # FortrankeyLanguage: Fortran # FortrankeyVersion: FC='g95' FFLAGS='-fexceptions' FFLAGS="$FFLAGS -fPIC" FLIBS="$RPATH $MLIBS -lm" FOPTIMFLAGS='-O' FDEBUGFLAGS='-g' # LD="$COMPILER" LDEXTENSION='.mexglx' LDFLAGS="-pthread -shared -m32 -Wl,--version-script,$TMW_ROOT/extern/lib/$Arch/$MAPFILE -Wl,--no-undefined" LDOPTIMFLAGS='-O' LDDEBUGFLAGS='-g' # POSTLINK_CMDS=':' #---------------------------------------------------------------------------- ;; glnxa64) #---------------------------------------------------------------------------- RPATH="-Wl,-rpath-link,$TMW_ROOT/bin/$Arch" # StorageVersion: 1.0 # CkeyName: GNU C # CkeyManufacturer: GNU # CkeyLanguage: C # CkeyVersion: CC='gcc' CFLAGS='-ansi -D_GNU_SOURCE' CFLAGS="$CFLAGS -fexceptions" CFLAGS="$CFLAGS -fPIC -fno-omit-frame-pointer -pthread" CLIBS="$RPATH $MLIBS -lm" COPTIMFLAGS='-O -DNDEBUG' CDEBUGFLAGS='-g' CLIBS="$CLIBS -lstdc++" # # C++keyName: GNU C++ # C++keyManufacturer: GNU # C++keyLanguage: C++ # C++keyVersion: CXX='g++' CXXFLAGS='-ansi -D_GNU_SOURCE' CXXFLAGS="$CXXFLAGS -fPIC -fno-omit-frame-pointer -pthread" CXXLIBS="$RPATH $MLIBS -lm" CXXOPTIMFLAGS='-O -DNDEBUG' CXXDEBUGFLAGS='-g' # # FortrankeyName: g95 # FortrankeyManufacturer: GNU # FortrankeyLanguage: Fortran # FortrankeyVersion: # FC='g95' FFLAGS='-fexceptions' FFLAGS="$FFLAGS -fPIC -fno-omit-frame-pointer" FLIBS="$RPATH $MLIBS -lm" FOPTIMFLAGS='-O' FDEBUGFLAGS='-g' # LD="$COMPILER" LDEXTENSION='.mexa64' LDFLAGS="-pthread -shared -Wl,--version-script,$TMW_ROOT/extern/lib/$Arch/$MAPFILE -Wl,--no-undefined" LDOPTIMFLAGS='-O' LDDEBUGFLAGS='-g' # POSTLINK_CMDS=':' #---------------------------------------------------------------------------- ;; sol64) #---------------------------------------------------------------------------- # StorageVersion: 1.0 # CkeyName: Sun Studio # CkeyManufacturer: Sun # CkeyLanguage: C # CkeyVersion: CC='cc -xarch=v9a' CFLAGS='-dalign -xlibmieee -D__EXTENSIONS__ -D_POSIX_C_SOURCE=199506L -mt' CFLAGS="$CFLAGS -KPIC" CLIBS="$MLIBS -lm" CLIBS="$CLIBS -lc" COPTIMFLAGS='-xO3 -xlibmil -DNDEBUG' CDEBUGFLAGS='-xs -g' # # C++keyName: Sun Studio # C++keyManufacturer: Sun # C++keyLanguage: C++ # C++keyVersion: CXX='CC -xarch=v9a -compat=5' CCV=`CC -xarch=v9a -V 2>&1` version=`expr "$CCV" : '.*\([0-9][0-9]*\)\.'` if [ "$version" = "4" ]; then echo "SC5.0 or later C++ compiler is required" fi CXXFLAGS='-dalign -xlibmieee -D__EXTENSIONS__ -library=stlport4,Crun' CXXFLAGS="$CXXFLAGS -D_POSIX_C_SOURCE=199506L -mt" CXXFLAGS="$CXXFLAGS -KPIC -norunpath" CXXLIBS="$MLIBS -lm" CXXOPTIMFLAGS='-xO3 -xlibmil -DNDEBUG' CXXDEBUGFLAGS='-xs -g' # # FortrankeyName: Sun Studio # FortrankeyManufacturer: Sun # FortrankeyLanguage: Fortran # FortrankeyVersion: FC='f90 -xarch=v9a' FFLAGS='-dalign -f77=backslash' FFLAGS="$FFLAGS -KPIC -mt" FLIBS="$MLIBS -lfui -lfsu -lsunmath -lm -lc" FOPTIMFLAGS='-O' FDEBUGFLAGS='-xs -g' # LD="$COMPILER" LDEXTENSION='.mexs64' LDFLAGS="-G -mt -M$TMW_ROOT/extern/lib/$Arch/$MAPFILE" LDOPTIMFLAGS='-O' LDDEBUGFLAGS='-xs -g' # POSTLINK_CMDS=':' #---------------------------------------------------------------------------- ;; mac) #---------------------------------------------------------------------------- # StorageVersion: 1.0 # CkeyName: GNU C # CkeyManufacturer: GNU # CkeyLanguage: C # CkeyVersion: CC='gcc-4.0' CFLAGS='-fno-common -no-cpp-precomp' CFLAGS="$CFLAGS" CLIBS="$MLIBS" COPTIMFLAGS='-O3 -fno-loop-optimize -DNDEBUG' CDEBUGFLAGS='-g' # CLIBS="$CLIBS -lstdc++" # C++keyName: GNU C++ # C++keyManufacturer: GNU # C++keyLanguage: C++ # C++keyVersion: CXX=g++-4.0 CXXFLAGS='-fno-common -no-cpp-precomp -fexceptions -arch ppc' CXXLIBS="$MLIBS -lstdc++" CXXOPTIMFLAGS='-O3 -fno-loop-optimize -DNDEBUG' CXXDEBUGFLAGS='-g' # # FortrankeyName: g95 # FortrankeyManufacturer: GNU # FortrankeyLanguage: Fortran # FortrankeyVersion: FC='g95' FFLAGS='-fexceptions' FC_LIBDIR=`$FC -print-file-name=libf95.a 2>&1 | sed -n '1s/\/*libf95\.a//p'` FLIBS="$MLIBS -L$FC_LIBDIR -lf95" FOPTIMFLAGS='-O' FDEBUGFLAGS='-g' # LD="$CC" LDEXTENSION='.mexmac' LDFLAGS='-Wl,-flat_namespace -undefined suppress' LDFLAGS="$LDFLAGS -bundle -Wl,-exported_symbols_list,$TMW_ROOT/extern/lib/$Arch/$MAPFILE" LDOPTIMFLAGS='-O' LDDEBUGFLAGS='-g' # POSTLINK_CMDS=':' #---------------------------------------------------------------------------- ;; maci) #---------------------------------------------------------------------------- # StorageVersion: 1.0 # CkeyName: GNU C # CkeyManufacturer: GNU # CkeyLanguage: C # CkeyVersion: CC='gcc-4.0' CFLAGS='-fno-common -no-cpp-precomp' CFLAGS="$CFLAGS -fexceptions" CLIBS="$MLIBS -L$TMW_ROOT/sys/os/maci" COPTIMFLAGS='-O3 -DNDEBUG' CDEBUGFLAGS='-g' # CLIBS="$CLIBS -lstdc++" # C++keyName: GNU C++ # C++keyManufacturer: GNU # C++keyLanguage: C++ # C++keyVersion: CXX=g++-4.0 CXXFLAGS='-fno-common -no-cpp-precomp -fexceptions -arch i386' CXXLIBS="$MLIBS -lstdc++" CXXLIBS="$CXXLIBS -L$TMW_ROOT/sys/os/maci" CXXOPTIMFLAGS='-O3 -DNDEBUG' CXXDEBUGFLAGS='-g' # # FortrankeyName: g95 # FortrankeyManufacturer: GNU # FortrankeyLanguage: Fortran # FortrankeyVersion: FC='g95' FFLAGS='-fexceptions' FC_LIBDIR=`$FC -print-file-name=libf95.a 2>&1 | sed -n '1s/\/*libf95\.a//p'` FLIBS="$MLIBS -L$FC_LIBDIR -lf95 -L$TMW_ROOT/sys/os/maci" FOPTIMFLAGS='-O' FDEBUGFLAGS='-g' # LD="$CC" LDEXTENSION='.mexmaci' LDFLAGS='-Wl,-flat_namespace -undefined suppress' LDFLAGS="$LDFLAGS -bundle -Wl,-exported_symbols_list,$TMW_ROOT/extern/lib/$Arch/$MAPFILE" LDOPTIMFLAGS='-O' LDDEBUGFLAGS='-g' # POSTLINK_CMDS=':' #---------------------------------------------------------------------------- ;; maci64) #---------------------------------------------------------------------------- # StorageVersion: 1.0 # CkeyName: GNU C # CkeyManufacturer: GNU # CkeyLanguage: C # CkeyVersion: CC='gcc-4.0' CFLAGS='-fno-common -no-cpp-precomp -fexceptions -arch x86_64' CLIBS="$MLIBS -lstdc++" COPTIMFLAGS='-O3 -DNDEBUG' CDEBUGFLAGS='-g' # # C++keyName: GNU C++ # C++keyManufacturer: GNU # C++keyLanguage: C++ # C++keyVersion: CXX=g++-4.0 CXXFLAGS='-fno-common -no-cpp-precomp -fexceptions -arch x86_64' CXXLIBS="$MLIBS -lstdc++" CXXOPTIMFLAGS='-O3 -DNDEBUG' CXXDEBUGFLAGS='-g' # # FortrankeyName: Intel Fortran # FortrankeyManufacturer: Intel # FortrankeyLanguage: Fortran # FortrankeyVersion: FC='ifort' FFLAGS='' FC_LIBDIR='' FLIBS="$MLIBS" FOPTIMFLAGS='-O' FDEBUGFLAGS='-g' # LD="$CC" LDEXTENSION='.mexmaci64' LDFLAGS='-Wl,-twolevel_namespace -undefined error -arch x86_64' LDFLAGS="$LDFLAGS -bundle -Wl,-exported_symbols_list,$TMW_ROOT/extern/lib/$Arch/$MAPFILE" LDOPTIMFLAGS='-O' LDDEBUGFLAGS='-g' # POSTLINK_CMDS=':' #---------------------------------------------------------------------------- ;; esac ############################################################################# # # Architecture independent lines: # # Set and uncomment any lines which will apply to all architectures. # #---------------------------------------------------------------------------- # CC="$CC" # CFLAGS="$CFLAGS" # COPTIMFLAGS="$COPTIMFLAGS" # CDEBUGFLAGS="$CDEBUGFLAGS" # CLIBS="$CLIBS" # # FC="$FC" # FFLAGS="$FFLAGS" # FOPTIMFLAGS="$FOPTIMFLAGS" # FDEBUGFLAGS="$FDEBUGFLAGS" # FLIBS="$FLIBS" # # glnxa64 # FC="g95" # LD="g++" # # This must point to the location of libf95 # FCLIBDIR="/mathworks/hub/share/apps/BuildTools/Linux/glibc-2.3.4/x86_64/g95/g95-0.50-tmw-000/lib/gcc-lib/x86_64-unknown-linux-gnu/4.0.3" # FLIBS="-L$FCLIBDIR -lf95 $FLIBS " # # mac # FC="g95" # LD="g++" # # This must point to the location of libg95 # FCLIBDIR="/sw/lib" # FLIBS="-L$FCLIBDIR -lg95 $FLIBS " # # mac (gfortran) FC="gfortran" LD="g++" # This must point to the location of libgfortran FCLIBDIR="/sw/lib/gcc4.4/lib" FLIBS="-L$FCLIBDIR -lgfortran $FLIBS " # # # # LD="$LD" # LDFLAGS="$LDFLAGS" # LDOPTIMFLAGS="$LDOPTIMFLAGS" # LDDEBUGFLAGS="$LDDEBUGFLAGS" #---------------------------------------------------------------------------- #############################################################################