ports/devel/fpm/patches/patch-src_fpm_compiler_f90

108 lines
3.3 KiB
Text

- use default compiler (fortran, C, C++) for OpenBSD
- prefer -O2 as default optimization flag
Index: src/fpm_compiler.f90
--- src/fpm_compiler.f90.orig
+++ src/fpm_compiler.f90
@@ -51,6 +51,7 @@ enum, bind(C)
enumerator :: &
id_unknown, &
id_gcc, &
+ id_cc_openbsd, &
id_f95, &
id_caf, &
id_intel_classic_nix, &
@@ -135,6 +136,7 @@ character(*), parameter :: &
flag_gnu_coarray = " -fcoarray=single", &
flag_gnu_backtrace = " -fbacktrace", &
flag_gnu_opt = " -O3 -funroll-loops", &
+ flag_openbsd_opt = " -O2 -funroll-loops", &
flag_gnu_debug = " -g", &
flag_gnu_pic = " -fPIC", &
flag_gnu_warn = " -Wall -Wextra -Wimplicit-interface", &
@@ -227,6 +229,14 @@ subroutine get_release_compile_flags(id, flags)
flag_gnu_limit//&
flag_gnu_coarray
+ case(id_cc_openbsd)
+ flags = &
+ flag_openbsd_opt//&
+ flag_gnu_external//&
+ flag_gnu_pic//&
+ flag_gnu_limit//&
+ flag_gnu_coarray
+
case(id_f95)
flags = &
flag_gnu_opt//&
@@ -315,7 +325,7 @@ subroutine get_debug_compile_flags(id, flags)
flag_gnu_debug//&
flag_gnu_check//&
flag_gnu_backtrace
- case(id_gcc)
+ case(id_gcc, id_cc_openbsd)
flags = &
flag_gnu_warn//&
flag_gnu_pic//&
@@ -403,7 +413,7 @@ pure subroutine set_cpp_preprocessor_flags(id, flags)
select case(id)
case default
flag_cpp_preprocessor = ""
- case(id_caf, id_gcc, id_f95, id_nvhpc)
+ case(id_caf, id_gcc, id_cc_openbsd, id_f95, id_nvhpc)
flag_cpp_preprocessor = "-cpp"
case(id_intel_classic_windows, id_intel_llvm_windows)
flag_cpp_preprocessor = "/fpp"
@@ -500,7 +510,7 @@ function get_include_flag(self, path) result(flags)
& id_flang, id_flang_new, id_f18, &
& id_intel_classic_nix, id_intel_classic_mac, &
& id_intel_llvm_nix, id_lahey, id_nag, id_ibmxl, &
- & id_lfortran)
+ & id_lfortran, id_cc_openbsd)
flags = "-I "//path
case(id_intel_classic_windows, id_intel_llvm_windows)
@@ -518,7 +528,7 @@ function get_module_flag(self, path) result(flags)
case default
flags = "-module "//path
- case(id_caf, id_gcc, id_f95, id_cray, id_lfortran)
+ case(id_caf, id_gcc, id_f95, id_cray, id_lfortran, id_cc_openbsd)
flags = "-J "//path
case(id_nvhpc, id_pgi, id_flang)
@@ -569,7 +579,7 @@ subroutine get_default_c_compiler(f_compiler, c_compil
case(id_ibmxl)
c_compiler='xlc'
- case(id_lfortran)
+ case(id_lfortran, id_cc_openbsd)
c_compiler = 'cc'
case(id_gcc)
@@ -607,6 +617,9 @@ subroutine get_default_cxx_compiler(f_compiler, cxx_co
case(id_lfortran)
cxx_compiler = 'cc'
+ case(id_cc_openbsd)
+ cxx_compiler = 'c++'
+
case(id_gcc)
cxx_compiler = 'g++'
@@ -659,8 +672,13 @@ function get_id(compiler) result(id)
integer :: stat
- if (check_compiler(compiler, "gfortran")) then
- id = id_gcc
+ if (check_compiler(compiler, "gfortran") .or. check_compiler(compiler, "egfortran")) then
+ select case (get_os_type())
+ case default
+ id = id_gcc
+ case(OS_OPENBSD)
+ id = id_cc_openbsd
+ end select
return
end if