diff --git a/setup.py b/setup.py index 218996ebb7dfded7323ff281d7d7bec0c82d2844..a6cc75d7dba7a8a31e0fb68b897150f69ded0ab0 100644 --- a/setup.py +++ b/setup.py @@ -44,26 +44,33 @@ def main(): build_mode = os.environ.get("PYFMMLIB_BUILD_MODE", "openmp-ofast") if build_mode == "openmp-ofast": - os.environ["FOPT"] = "-Ofast -fopenmp" - os.environ["OPT"] = "-Ofast -fopenmp" - os.environ["EXTRA_LINK_ARGS"] = "-fopenmp" + FOPT_ARGS = "-Ofast -fopenmp" + OPT_ARGS = "-Ofast -fopenmp" + EXTRA_LINK_ARGS = "-fopenmp" elif build_mode == "openmp-opt": - os.environ["FOPT"] = "-O3 -fopenmp" - os.environ["OPT"] = "-O3 -fopenmp" - os.environ["EXTRA_LINK_ARGS"] = "-fopenmp" + FOPT_ARGS = "-O3 -fopenmp" + OPT_ARGS = "-O3 -fopenmp" + EXTRA_LINK_ARGS = "-fopenmp" elif build_mode == "debug": - os.environ["FOPT"] = "-g" - os.environ["OPT"] = "-g" - os.environ["EXTRA_LINK_ARGS"] = "-g" + FOPT_ARGS = "-g" + ARGS_OPT = "-g" + EXTRA_LINK_ARGS = "-g" elif build_mode == "setuptools": - pass - + FOPT_ARGS = os.environ.get("FOPT", "") + OPT_ARGS = os.environ.get("OPT", "") + EXTRA_LINK_ARGS = os.environ.get("EXTRA_LINK_ARGS", "") else: raise ValueError("invalid value of $PYFMMLIB_BUILD_MODE") + # NOTE: gfortran 8.1+ errors on incorrect dummy argument shape + # https://groups.google.com/forum/#!topic/comp.lang.fortran/x3JnAjRX-KA + os.environ["FOPT"] = "-std=legacy {}".format(FOPT_ARGS) + os.environ["OPT"] = "-std=legacy {}".format(OPT_ARGS) + os.environ["EXTRA_LINK_ARGS"] = "-shared {}".format(EXTRA_LINK_ARGS) + try: import mako # noqa except ImportError: