1
0
mirror of https://github.com/janet-lang/janet synced 2025-10-18 17:27:40 +00:00

Change pthreads linking with jpm, make, and meson.

Try to add pthread deps when compiling programs with jpm.
This commit is contained in:
Calvin Rose
2019-11-27 14:52:20 -06:00
parent e542ba7e4d
commit 8a91c52fa2
3 changed files with 19 additions and 10 deletions

View File

@@ -112,6 +112,10 @@
(def default-linker (if is-win "link" "cc"))
(def default-archiver (if is-win "lib" "ar"))
# Detect threads
(def env (fiber/getenv (fiber/current)))
(def threads? (not (not (env 'threads/from-image))))
# Default flags for natives, but not required
(def default-lflags (if is-win ["/nologo"] []))
(def default-cflags
@@ -119,6 +123,10 @@
["/nologo" "/MD"]
["-std=c99" "-Wall" "-Wextra"]))
# Link to pthreads
(def- thread-flags (if is-win [] (if threads? ["-lpthread"] [])))
# Required flags for dynamic libraries. These
# are used no matter what for dynamic libraries.
(def- dynamic-cflags
@@ -127,10 +135,10 @@
["-fPIC"]))
(def- dynamic-lflags
(if is-win
["/DLL"]
["/DLL" ;thread-flags]
(if is-mac
["-shared" "-undefined" "dynamic_lookup"]
["-shared"])))
["-shared" "-undefined" "dynamic_lookup" ;thread-flags]
["-shared" ;thread-flags])))
(defn- opt
"Get an option, allowing overrides via dynamic bindings AND some