Skip Navigation

Installing Hare on FreeBSD

There is a port hare-lang, but as Drew DeVault answered my question "Just want to know - is this port official hare distribution and is it updated?":

"We do not maintain downstream packages. It's official if that's an official source for your distro."

So I found a good manual on how to do this from repos:

There are 4 total things you need to install to get Hare working on FreeBSD, 2 pre-requisites and 2 Hare packages. It's possible that you already have the pre-requisites setup, in which case you can skip the step, but they are uncommon enough that I'm including them here.

I did the installation in a fresh jail for isolation, but of course you can install where ever you like, the steps are the same.

Initial setup

First you'll need git:

 
    
pkg install git

  

Since we're installing from source, we need somewhere to put the source, so I created /usr/local/src

 
    
mkdir -p /usr/local/src
cd /usr/local/src

  

Now we can start building packages.

Pre-requisites

QBE

QBE is a compiler backend used by Hare.

First clone the repository:

 
    
git clone git://c9x.me/qbe.git
cd qbe

  

Then build and install:

 
    
make
make install
cd ..

  

scdoc

scdoc is a man page generator, first clone:

 
    
git clone https://git.sr.ht/~sircmpwn/scdoc
cd scdoc

  

scdoc uses syntax in its Makefile not supported by BSD make so you'll need gmake:

 
    
pkg install gmake

  

Then use gmake to build and install:

 
    
gmake
gmake install
cd ..

  

Hare

Now with the prereqs you can install Hare itself, first the bootstrap compiler:

 
    
git clone https://git.sr.ht/~sircmpwn/harec
cd harec

  

Copy the FreeBSD config from the configs folder:

 
    
cp configs/freebsd.mk config.mk

  

Then build and install:

 
    
make
make install
cd ..

  

Last up is the main package:

 
    
git clone https://git.sr.ht/~sircmpwn/hare
cd hare

  

Like last time, copy over the FreeBSD build config:

 
    
cp configs/freebsd.mk config.mk

  

Before building, Hare depends on as, an assembler, which you can get from binutils:

 
    
pkg install binutils

  

And with that you should be able to build and install:

 
    
make
make install
cd ..

  

Hello world

First, let's do a simple Hello world.

 
    
echo 'use fmt;

export fn main() void = {
    fmt::println("Hello world!")!;
};' > main.ha

  

Which you can now run with the hare run command:

 
    
hare run main.ha

  

It will take a second the first time, but you should then see the print out. To build to an executable use the build command instead:

 
    
hare build -o helloworld main.ha
./helloworld

  

And that's it, I hope this is helpful for FreeBSD users out there.

0 comments

No comments