Created
February 15, 2013 11:19
-
-
Save yassersouri/4959790 to your computer and use it in GitHub Desktop.
`~/.matlab/R2012a/mexopts.sh` for Mac OS X 10.8 with homebrew.
via <http://bastibe.de/matlab-mex-homebrew-and-os-x-108-mountain-lion.html>
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# 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 the Supported and Compatible Compiler List at: | |
# http://www.mathworks.com/support/compilers/current_release/ | |
# | |
# | |
# 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 gcc MEX-files | |
# | |
# Copyright 1984-2011 The MathWorks, Inc. | |
# $Revision: 1.78.4.17 $ $Date: 2011/04/16 06:07:44 $ | |
#---------------------------------------------------------------------------- | |
# | |
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: gfortran | |
# FortrankeyManufacturer: GNU | |
# FortrankeyLanguage: Fortran | |
# FortrankeyVersion: | |
FC='gfortran' | |
FFLAGS='-fexceptions -fbackslash' | |
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: gfortran | |
# FortrankeyManufacturer: GNU | |
# FortrankeyLanguage: Fortran | |
# FortrankeyVersion: | |
# | |
FC='gfortran' | |
FFLAGS='-fexceptions -fbackslash' | |
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) | |
#---------------------------------------------------------------------------- | |
echo "Error: Did not imbed 'options.sh' code"; exit 1 #imbed options.sh sol64 12 | |
#---------------------------------------------------------------------------- | |
;; | |
mac) | |
#---------------------------------------------------------------------------- | |
echo "Error: Did not imbed 'options.sh' code"; exit 1 #imbed options.sh mac 12 | |
#---------------------------------------------------------------------------- | |
;; | |
maci) | |
#---------------------------------------------------------------------------- | |
echo "Error: Did not imbed 'options.sh' code"; exit 1 #imbed options.sh maci 12 | |
#---------------------------------------------------------------------------- | |
;; | |
maci64) | |
#---------------------------------------------------------------------------- | |
# StorageVersion: 1.0 | |
# CkeyName: GNU C | |
# CkeyManufacturer: GNU | |
# CkeyLanguage: C | |
# CkeyVersion: | |
CC='gcc' | |
SDKROOT='/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk' | |
MACOSX_DEPLOYMENT_TARGET='10.8' | |
ARCHS='x86_64' | |
CFLAGS="-fno-common -no-cpp-precomp -arch $ARCHS -isysroot $SDKROOT -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET" | |
CFLAGS="$CFLAGS -fexceptions" | |
CFLAGS="$CFLAGS -I/usr/local/include" | |
CLIBS="$MLIBS" | |
COPTIMFLAGS='-O2 -DNDEBUG' | |
CDEBUGFLAGS='-g' | |
# | |
CLIBS="$CLIBS -lstdc++" | |
# C++keyName: GNU C++ | |
# C++keyManufacturer: GNU | |
# C++keyLanguage: C++ | |
# C++keyVersion: | |
CXX=g++ | |
CXXFLAGS="-fno-common -no-cpp-precomp -fexceptions -arch $ARCHS -isysroot $SDKROOT -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET" | |
CXXLIBS="$MLIBS -lstdc++" | |
CXXOPTIMFLAGS='-O2 -DNDEBUG' | |
CXXDEBUGFLAGS='-g' | |
# | |
# FortrankeyName: GNU Fortran | |
# FortrankeyManufacturer: GNU | |
# FortrankeyLanguage: Fortran | |
# FortrankeyVersion: | |
FC='gfortran' | |
FFLAGS='-fexceptions -m64 -fbackslash' | |
FC_LIBDIR=`$FC -print-file-name=libgfortran.dylib 2>&1 | sed -n '1s/\/*libgfortran\.dylib//p'` | |
FC_LIBDIR2=`$FC -print-file-name=libgfortranbegin.a 2>&1 | sed -n '1s/\/*libgfortranbegin\.a//p'` | |
FLIBS="$MLIBS -L$FC_LIBDIR -lgfortran -L$FC_LIBDIR2 -lgfortranbegin" | |
FOPTIMFLAGS='-O' | |
FDEBUGFLAGS='-g' | |
# | |
LD="$CC" | |
LDEXTENSION='.mexmaci64' | |
LDFLAGS="-Wl,-twolevel_namespace -undefined error -arch $ARCHS -Wl,-syslibroot,$SDKROOT -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET" | |
LDFLAGS="$LDFLAGS -bundle -Wl,-exported_symbols_list,$TMW_ROOT/extern/lib/$Arch/$MAPFILE" | |
LDFLAGS="$LDFLAGS -L/usr/local/lib" | |
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" | |
# | |
# LD="$LD" | |
# LDFLAGS="$LDFLAGS" | |
# LDOPTIMFLAGS="$LDOPTIMFLAGS" | |
# LDDEBUGFLAGS="$LDDEBUGFLAGS" | |
#---------------------------------------------------------------------------- | |
############################################################################# |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks a tonne! This gist helped me figure out a bug in the mexopts.sh file! 👍