tbenthompson/okada_wrapper

Work-around needed for installation on Mojave OS

kmaterna opened this issue · 3 comments

Hi Ben, I just installed okada_wrapper on a Mac with Mojave. Unfortunately, Apple made some changes recently. Mojave is intentionally missing a directory called /usr/include, which means the installation of okada_wrapper cannot find header files like <limits.h> [happens using both pip and setup.py]. I'm guessing one of the packages used in okada_wrapper depends on having that directory present.

The Fix: I had to download the command line tools in Xcode and run the macOS_SDK_headers_for_macOS_10.14.pkg package inside /Library/Developer/CommandLineTools/Packages. Then it worked.

Based on stuff online, it doesn't seem like this work-around will always work into the future, but for now it does. I wanted to let you know, and leave a record of the work-around here, in case it helped others.

For details:
https://apple.stackexchange.com/questions/337940/why-is-usr-include-missing-i-have-xcode-and-command-line-tools-installed-moja
qutip/qutip#1030
https://stackoverflow.com/questions/52509602/cant-compile-c-program-on-a-mac-after-upgrade-to-mojave
https://stackoverflow.com/questions/30877659/fatal-error-limits-h-no-such-file-or-directory

The error during installation looks like this:
compile options: '-Ibuild/src.macosx-10.9-x86_64-3.7/build/src.macosx-10.9-x86_64-3.7/okada_wrapper -I/Users/kmaterna/miniconda3/lib/python3.7/site-packages/numpy/core/include -I/Users/kmaterna/miniconda3/include/python3.7m -c'
extra options: '-O3'
gcc: build/src.macosx-10.9-x86_64-3.7/okada_wrapper/DC3Dmodule.c
gcc: build/src.macosx-10.9-x86_64-3.7/build/src.macosx-10.9-x86_64-3.7/okada_wrapper/fortranobject.c
In file included from /opt/local/lib/gcc6/gcc/x86_64-apple-darwin16/6.4.0/include-fixed/syslimits.h:7:0,
from /opt/local/lib/gcc6/gcc/x86_64-apple-darwin16/6.4.0/include-fixed/limits.h:34,
from /Users/kmaterna/miniconda3/include/python3.7m/Python.h:11,
from build/src.macosx-10.9-x86_64-3.7/build/src.macosx-10.9-x86_64-3.7/okada_wrapper/fortranobject.h:7,
from build/src.macosx-10.9-x86_64-3.7/build/src.macosx-10.9-x86_64-3.7/okada_wrapper/fortranobject.c:2:
/opt/local/lib/gcc6/gcc/x86_64-apple-darwin16/6.4.0/include-fixed/limits.h:168:61: fatal error: limits.h: No such file or directory
#include_next <limits.h> /* recurse down to the real one /
^
compilation terminated.
In file included from /opt/local/lib/gcc6/gcc/x86_64-apple-darwin16/6.4.0/include-fixed/syslimits.h:7:0,
from /opt/local/lib/gcc6/gcc/x86_64-apple-darwin16/6.4.0/include-fixed/limits.h:34,
from /Users/kmaterna/miniconda3/include/python3.7m/Python.h:11,
from build/src.macosx-10.9-x86_64-3.7/okada_wrapper/DC3Dmodule.c:15:
/opt/local/lib/gcc6/gcc/x86_64-apple-darwin16/6.4.0/include-fixed/limits.h:168:61: fatal error: limits.h: No such file or directory
#include_next <limits.h> /
recurse down to the real one */
^

Hey Kathryn!!! Thanks for the info. I'll add a link to this issue on the Readme to help anyone else who runs into this problem. Hope you're doing well.

Hello, this did not work for me. I tried open macOS_SDK_headers_for_macOS_10.14.pkg but the installation failed after giving a warning that running the package could corrupt my system.

Have there been any updates in this regard?

Hi @rzinke , perhaps you're on a newer version of Mac and the 10.14 pkg is no longer appropriate? I'm not sure. This issue is related to having a correctly installed set of C/C++/Fortran compilers. Without properly installed compilers, okada_wrapper will not be able to be installed.