109 lines
3.3 KiB
Text
109 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
|
||
|
|