savi-lang / savi

A fast language for programmers who are passionate about their craft.
BSD 3-Clause "New" or "Revised" License
155 stars 12 forks source link

Add FreeBSD to CirrusCI jobs. #340

Closed jemc closed 1 year ago

jemc commented 1 year ago

This will let us do binary releases (and basic smoke tests) on FreeBSD.

mneumann commented 1 year ago

@jemc is this working on your box? I am having trouble with the semantic version of llvm-devel on my box, which is 15.0.0git. This is what works on my box:

gmake build/savi-release \
        LLVM_CONFIG=llvm-config14 \
        LIB_GC=/usr/local/lib/libgc-threaded.a

In addition, you need to patch Makefile:

diff --git a/Makefile b/Makefile
index 71faad2b..12ec69b3 100644
--- a/Makefile
+++ b/Makefile
@@ -171,6 +171,10 @@ ifneq (,$(findstring macos,$(TARGET_PLATFORM)))
        CRYSTAL_RT_LIBS+=-liconv
 endif

+ifneq (,$(findstring freebsd,$(TARGET_PLATFORM)))
+       CRYSTAL_RT_LIBS+=-L/usr/local/lib
+endif
+
 # This is the path to the Crystal standard library source code,
 # including the LLVM extensions C++ file we need to build and link.
 CRYSTAL_PATH?=$(shell env $(shell crystal env) printenv CRYSTAL_PATH | rev | cut -d ':' -f 1 | rev)
jemc commented 1 year ago

I added this CI and it does a successful build and a successful "smoke test" (compiling and running a simple program that merely prints to stdout). I didn't test anything beyond that at this time.

It passed CI here in this PR, but recently started failing this morning related to some LLVM versioning issue - which is really strange. I don't understand why it didn't fail yesterday when I tested this in CI. But I can try your fix.

@mneumann - What pkg install command do I need to use to get llvm-config14 available on the FreeBSD CI machine?