Difference between revisions of "*NIX Instructions"

From Clean
Jump to navigationJump to search
(Move installation instruction to before compilation instruction, because it is cognitively earlier)
m (CamilStaps moved page *NIX Installation Instructions to *NIX Instructions: The page contains more than only installation instructions)
 

Latest revision as of 08:11, 10 September 2019

Using Clean on Linux or MacOS systems is not the same as on windows. There is no IDE available, which means that you have to manage your projects using command-line tools clm and cpm.

Gentle installation instructions

Make sure to have XCode installed on macs.

Clean 3.0

Open a terminal and navigate to the place where you would like to store the distribution:

cd /path/to/clean

Download the latest zip:

curl -o clean.zip https://ftp.cs.ru.nl/Clean/Clean30/macosx/clean3.0.zip

Unzip the zip file:

unzip clean.zip

Navigate to the directory:

cd clean

Run make:

make

Add the directory to PATH; e.g. in bash:

echo "export PATH=\"$PWD/bin:\$PATH\"" >> .bash_profile

iTasks

Open a terminal and navigate to the place where you would like to store the distribution:

cd /path/to/clean

Download the latest zip:

curl -o clean.zip https://ftp.cs.ru.nl/Clean/builds/macos-x64/clean-bundle-complete-macos-x64-latest.tgz

Unzip the zip file:

tar -xf clean-bundle-complete-macos-x64-latest.tgz

Navigate to the directory:

cd clean-bundle-complete

Add the directory to PATH; e.g. in bash:

echo "export PATH=\"$PWD/bin:\$PATH\"" >> .bash_profile

Set CLEAN_HOME appropriately; e.g. in bash:

echo "export CLEAN_HOME=\"$PWD\"" >> .bash_profile

Compiling a program

clm

To compile and run a program:

clm MAINMODULE -o BINARY
./BINARY

For example:

clm sieve -o sieve
./sieve

Run

clm

to see all options.

cpm

To compile and run a program:

cpm project MAINMODULE create
cpm project MAINMODULE.prj build

For example:

cpm project sieve create
cpm project sieve.prj build
./sieve

Run

cpm

to see all options.

Run

cpm project MAINMODULE.prj

to see all project-specific options.