Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision |
howto:mac_compiling_nofink [2015/03/17 20:33] – paffenholz | install:mac_compiling_nofink [2019/01/29 21:46] – external edit 127.0.0.1 |
---|
==== Compiling on Mac: without Fink ==== | ==== Compiling on Mac: without Fink ==== |
| |
| We have prepared a Makefile that does a loacl installation of polymake resolving all dependencies. It is available [[https://gist.github.com/apaffenholz/f49cbf69a367fa219762|from github]]. You can also do this yourself. In this case you need the following steps: |
| |
* Add the location of XML-LibXSLT to the environment variable PERL5LIB if it is in a non-standard path. | * Add the location of XML-LibXSLT to the environment variable PERL5LIB if it is in a non-standard path. |
* ''--with-readline=/path/to/your/readline'': Specify the folder you installed ''readline'' into. | * ''--with-readline=/path/to/your/readline'': Specify the folder you installed ''readline'' into. |
* ''--with-ppl=/path/to/your/ppl'': Specify the folder you installed ''ppl'' into. | * ''--with-ppl=/path/to/your/ppl'': Specify the folder you installed ''ppl'' into. |
* ''--with-ppl=/path/to/your/ant'': Specify the folder you unpacked ''ant'' into. | * ''--with-ant=/path/to/your/ant'': Specify the folder you unpacked ''ant'' into. |
| * ''--with-singular=/path/to/your/singular'': Specify the folder you installed ''singular'' into. This is optional. |
* ''--with-java=/usr/bin/java'': Path to java (this might be unnecessary for you) | * ''--with-java=/usr/bin/java'': Path to java (this might be unnecessary for you) |
* ''--with-jni-headers=/System/Library/Frameworks/JavaVM.framework/Headers'': If this fails then check the path. Names of directories may vary slightly.\\ \\ Your command could now be similar to the following (still replace paths!):<code>./configure --with-boost=<path> --with-java=/usr/bin/java --with-jni-headers=/System/Library/Frameworks/JavaVM.framework/Headers --without-fink --with-gmp=<path> --with-mpfr=<path> --with-readline=<path> --with-ppl=<path> --with-ant=<path> --prefix=<path-if-not-to-usr-local></code> | * ''--with-jni-headers=/System/Library/Frameworks/JavaVM.framework/Headers'': If this fails then check the path. Names of directories may vary slightly.\\ \\ Your command could now be similar to the following (still replace paths!):<code>./configure --with-boost=<path> --with-java=/usr/bin/java --with-jni-headers=/System/Library/Frameworks/JavaVM.framework/Headers --without-fink --with-gmp=<path> --with-mpfr=<path> --with-readline=<path> --with-ppl=<path> --with-ant=<path> --with-singular=<path> --prefix=<path-if-not-to-usr-local></code> |
| |
* Once configuration has succeeded, do<code>make | * Once configuration has succeeded, do<code>make |
* **Version specific issues** | * **Version specific issues** |
| |
* For **Mac OS 10.7** you only need the architecture flags mentioned above for compilation fo the ''gcc'' until you have compiled your ''gcc''. That one should be ''x86_64'' only, and won't understand the argument ''-arch x86_64'' anymore. | * For release 3.0 and earlier you might need to additionally pass <code>CC=clang LDFLAGS=' -stdlib=libstdc++' CXXFLAGS=-I/usr/include/c++/4.2.1 CXX=clang++</code> to ''configure'', as clang apparently doesn't search ''/usr/include'' by default. |
* For **Mac OS 10.7** and **Mac OS 10.8** you have to explicitely specify the compiler with ''CC=<path-to-your>/gcc CXX=<path-to-your>/g++'' for ''./configure''. Note that, if you obtained your gcc from fink it will have a different name (some variation of ''gcc-4'' or ''gcc-fsf-4.7'', and similarly for g++, check your ''/sw/bin'' directory, this way fink#s gcc does not shadow apple's). | |
* On **MacOS 10.9** and **10.10** you might need to additionally pass <code>CC=clang LDFLAGS=' -stdlib=libstdc++' CXXFLAGS=-I/usr/include/c++/4.2.1 CXX=clang++</code> to ''configure'', as clang apparently doesn't search ''/usr/include'' by default. | |
| |
Note that you might need additional options if your setup differs from a standard one. | Note that you might need additional options if your setup differs from a standard one. |