summary refs log tree commit diff stats
path: root/tools/detect/detect.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tools/detect/detect.nim')
-rw-r--r--tools/detect/detect.nim21
1 files changed, 16 insertions, 5 deletions
diff --git a/tools/detect/detect.nim b/tools/detect/detect.nim
index 720e24975..a10794555 100644
--- a/tools/detect/detect.nim
+++ b/tools/detect/detect.nim
@@ -14,10 +14,18 @@
 # compilation.
 import os, strutils
 
-const
-  cc = "gcc -o $# $#.c"
-  cpp = "gcc -E -o $#.i $#.c"
+when defined(openbsd):
+  const
+    cc = "cc -o $# $#.c"
+    cpp = "cc -E -o $#.i $#.c"
+    ccLinkMath = "cc -lm -o $# $#.c"
+    cppLinkMath = "cc -lm -E -o $#.i $#.c"
+else:
+  const
+    cc = "gcc -o $# $#.c"
+    cpp = "gcc -E -o $#.i $#.c"
 
+const
   cfile = """
 /* Generated by detect.nim */
 #define _GNU_SOURCE
@@ -89,8 +97,11 @@ proc main =
   if open(f, "other_consts.nim", fmWrite):
     f.write(nimfile % [other])
     close(f)
-  if not myExec(cc % [gen.addFileExt(ExeExt), gen]): quit(1)
-  if not myExec(cpp % [pre.addFileExt(ExeExt), pre]): quit(1)
+
+  let cCompile = when defined(openbsd): ccLinkMath else: cc
+  let cppCompile = when defined(openbsd): cppLinkMath else: cpp
+  if not myExec(cCompile % [gen.addFileExt(ExeExt), gen]): quit(1)
+  if not myExec(cppCompile % [pre.addFileExt(ExeExt), pre]): quit(1)
   when defined(windows):
     if not myExec(gen.addFileExt(ExeExt)): quit(1)
   else: