From 750ab83d12e59f3961ddcab02fdb044b4ce70950 Mon Sep 17 00:00:00 2001 From: odanoburu Date: Wed, 8 Aug 2018 13:58:01 -0300 Subject: [PATCH 01/15] (#4) add .travis.yml using mac os --- .travis.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..e8501e825 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,11 @@ +os: osx +language: c + +install: + - mkdir bin + - mkdir rgl + - curl http://www.grammaticalframework.org/download/gf-3.9-bin-intel-mac.tar.gz > gf.tar.gz + - tar -C bin -zxf gf.tar.gz + +script: + - sh Make.sh --gf=./bin/gf --dest=./rgl From 869721d0a53ee4bd33eb7c7b4fae6c0e15d311e6 Mon Sep 17 00:00:00 2001 From: "John J. Camilleri" Date: Wed, 8 Aug 2018 22:25:41 +0200 Subject: [PATCH 02/15] Add Travis build status to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index db12cad0c..960a08471 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ # GF Resource Grammar Library (RGL) +[![Build Status](https://travis-ci.org/GrammaticalFramework/gf-rgl.svg?branch=master)](https://travis-ci.org/GrammaticalFramework/gf-rgl) + The GF Resource Grammar Library is the standard library for Grammatical Framework. It covers the morphology and basic syntax of over 30 languages. For more about the RGL, see the [synopsis page](http://www.grammaticalframework.org/lib/doc/synopsis.html). From 2c13810b841ee0d579b5cb4a7dd60365f03c9718 Mon Sep 17 00:00:00 2001 From: odanoburu Date: Wed, 8 Aug 2018 23:51:34 -0300 Subject: [PATCH 03/15] (#4) travis build with docker image using dockerfile in https://github.com/odanoburu/docker-gf/blob/master/haskell-gf/Dockerfile --- .travis.yml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index e8501e825..74431e795 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,14 @@ -os: osx +sudo: required + language: c -install: - - mkdir bin +services: + - docker + +before_install: + - docker pull odanoburu/haskell-gf:3.9 - mkdir rgl - - curl http://www.grammaticalframework.org/download/gf-3.9-bin-intel-mac.tar.gz > gf.tar.gz - - tar -C bin -zxf gf.tar.gz script: - - sh Make.sh --gf=./bin/gf --dest=./rgl + - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/sh -c "cd /home/; runghc Make.hs build --langs=-Mon --dest=rgl ;" + - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/sh -c "cd /home/; sh Make.sh --dest=rgl ;" From d377a0045b1d9ba82b67725762117fc4336f41e2 Mon Sep 17 00:00:00 2001 From: odanoburu Date: Wed, 8 Aug 2018 23:59:00 -0300 Subject: [PATCH 04/15] change order --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 74431e795..614729179 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,5 +10,5 @@ before_install: - mkdir rgl script: - - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/sh -c "cd /home/; runghc Make.hs build --langs=-Mon --dest=rgl ;" - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/sh -c "cd /home/; sh Make.sh --dest=rgl ;" + - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/sh -c "cd /home/; runghc Make.hs build --langs=-Mon --dest=rgl ;" From 5dff7e914ad159d2442acdad202502826c7ac9c3 Mon Sep 17 00:00:00 2001 From: odanoburu Date: Thu, 9 Aug 2018 00:10:25 -0300 Subject: [PATCH 05/15] (#4) reverse order, use GF_LIB_PATH --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 614729179..46554d14d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,5 +10,5 @@ before_install: - mkdir rgl script: - - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/sh -c "cd /home/; sh Make.sh --dest=rgl ;" - - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/sh -c "cd /home/; runghc Make.hs build --langs=-Mon --dest=rgl ;" + - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/sh -c "cd /home/; export GF_LIB_PATH=/home/rgl; runghc Make.hs build --langs=-Mon --dest=rgl ;" + - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/sh -c "cd /home/; export GF_LIB_PATH=/home/rgl; sh Make.sh --dest=rgl ;" From e73d42379c97be2726fc13102e1397b8ab0b0292 Mon Sep 17 00:00:00 2001 From: "John J. Camilleri" Date: Thu, 9 Aug 2018 09:09:17 +0200 Subject: [PATCH 06/15] Make.hs: specifying `--langs` doesn't ignore module restrictions As a result the `--langs=+...` function is no longer meaningful --- Make.hs | 46 ++++++++++++++++++++++++++++------------------ README.md | 2 +- 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/Make.hs b/Make.hs index 1118fb397..bae1bade4 100644 --- a/Make.hs +++ b/Make.hs @@ -184,8 +184,12 @@ rglCommands = gfcp' :: Info -> Mode -> [String] -> [Mode -> [String] -> (LangInfo -> FilePath,[LangInfo] -> [LangInfo])] -> IO () gfcp' bi mode args cs = do langsAll <- loadLangs + -- f :: LangInfo -> FilePath + -- as :: [LangInfo] -> [LangInfo] + -- ss :: [String] + -- fss :: [[FilePath]] let (ss,fss) = unzip [ (summary f langs,map f langs) | c<-cs, let (f,as) = c mode args, let langs = as langsAll] - gfcn bi mode (unwords ss) (concat fss) + gfcn bi mode (unwords (filter (not.null) ss)) (concat fss) summary :: (LangInfo -> FilePath) -> [LangInfo] -> String summary f langs = unwords (map (dropSourceDir . f) langs) @@ -280,21 +284,24 @@ getOptMode args = -- | List of languages overriding the default definitions getOptLangs :: [LangInfo] -> [LangInfo] -> [String] -> [LangInfo] -getOptLangs langs defaultLangs args = - case [ls | arg <- args, - let (f,ls) = splitAt (length lang_flag) arg, - f==lang_flag] of - ('+':ls):_ -> foldr addLang defaultLangs (seps ls) - ('-':ls):_ -> foldr removeLang defaultLangs (seps ls) - ls:_ -> findLangs langs (seps ls) - _ -> defaultLangs +getOptLangs allLangs defaultLangs args = + let x = [ ls + | arg <- args + , let (f,ls) = splitAt (length lang_flag) arg + , f == lang_flag + ] + in case x of + -- ('+':ls):_ -> foldr addLang defaultLangs (seps ls) + ('-':ls):_ -> foldr removeLang defaultLangs (seps ls) + ls:_ -> findLangs defaultLangs (seps ls) + _ -> defaultLangs where seps = words . map (\c -> if c==',' then ' ' else c) findLangs langs ls = [lang | lang <- langs, langCode lang `elem` ls] removeLang l ls = [lang | lang <- ls, langCode lang /= l] - addLang l ls = if null (findLangs ls [l]) - then findLangs langs [l]++ls - else ls + -- addLang l ls = if null (findLangs ls [l]) + -- then findLangs allLangs [l]++ls + -- else ls -- | Get module names from arguments getOptModules :: [String] -> [FilePath] @@ -378,26 +385,29 @@ separateBy chr = unfoldr sep where ------------------------------------------------------------------------------- -- Executing GF -gfc :: Info -> [Mode] -> String -> [String] -> IO () +gfc :: Info -> [Mode] -> String -> [FilePath] -> IO () gfc bi modes summary files = parallel_ [gfcn bi mode summary files | mode<-modes] -gfcn :: Info -> Mode -> String -> [String] -> IO () -gfcn _ _ _ [] = die $ "No files specified.\nMake sure the language is in " ++ configFile ++ " and that it supports the modes/modules specified." +gfcn :: Info -> Mode -> String -> [FilePath] -> IO () gfcn bi mode summary files = do let dir = getRGLBuildDir bi mode preproc = case mode of AllTenses -> "" Present -> "--preproc=mkPresent" createDirectoryIfMissing True dir - putStrLn $ "Building [" ++ show mode ++ "] " ++ summary - run_gfc bi ([if infoVerbose bi then "--verbose" else "--quiet", "--no-pmcfg", preproc, "--gfo-dir="++dir] ++ files) + if length files > 0 + then do + putStrLn $ "Building [" ++ show mode ++ "] " ++ summary + run_gfc bi ([if infoVerbose bi then "--verbose" else "--quiet", "--no-pmcfg", preproc, "--gfo-dir="++dir] ++ files) + else + putStrLn $ "Skipping [" ++ show mode ++ "] (nothing to build)" -- | Runs the gf executable in compile mode with the given arguments run_gfc :: Info -> [String] -> IO () run_gfc bi args = do let - args' = ["--batch","--gf-lib-path="] ++ filter (not . null) args + args' = ["--batch"] ++ filter (not . null) args gf = infoGFPath bi execute gf args' diff --git a/README.md b/README.md index 960a08471..3c6f862fe 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,7 @@ or an explicit module name (e.g. `ExtraEng.gf`. You don't need to specify to lan (default is both). - `LANG` is a 3-letter language code, e.g. `Eng`, `Swe` etc. - You can _override_ the default language list with `--langs=...` -- You can _add_ languages to the default list with `--langs=+...` +- ~~You can _add_ languages to the default list with `--langs=+...`~~ - You can _remove_ languages from the default list with `langs=-...` - The path to GF installed on your system can be specified via the `--gf` flag (default is that the `gf` executable is in the global system path). - The `--dest` flag can be used to manually specify where the compiled RGL modules should be copied/installed. This is the same place as `GF_LIB_PATH`. From 60f19691eb985bb80ccaba7886b23b51b7e94951 Mon Sep 17 00:00:00 2001 From: "John J. Camilleri" Date: Thu, 9 Aug 2018 09:52:41 +0200 Subject: [PATCH 07/15] --verbose flag shows file names, not passed on to GF --- Make.hs | 24 +++++++++++++----------- Make.sh | 5 ----- README.md | 2 +- 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/Make.hs b/Make.hs index bae1bade4..98e5a5406 100644 --- a/Make.hs +++ b/Make.hs @@ -125,20 +125,20 @@ getRGLBuildDir info mode = infoBuildDir info getRGLBuildSubDir mode getRGLBuildSubDir :: Mode -> String getRGLBuildSubDir mode = case mode of - AllTenses -> "alltenses" Present -> "present" + AllTenses -> "alltenses" ------------------------------------------------------------------------------- -- Build modes -data Mode = AllTenses | Present +data Mode = Present | AllTenses deriving (Show,Eq) all_modes :: [String] -all_modes = ["alltenses","present"] +all_modes = ["present","alltenses"] default_modes :: [Mode] -default_modes = [AllTenses,Present] +default_modes = [Present,AllTenses] -- | An RGL build command data RGLCommand = RGLCommand @@ -156,8 +156,9 @@ rglCommands = createDirectoryIfMissing True prelude_dst_dir files <- getDirectoryContents prelude_src_dir let modules = [prelude_src_dir file | file <- files, file /= "." && file /= ".."] - putStrLn $ "Building [Prelude] " ++ unwords (map dropSourceDir modules) - run_gfc bi ([if infoVerbose bi then "--verbose" else "--quiet", "--gfo-dir="++prelude_dst_dir] ++ modules) + putStrLn $ "Building [Prelude]" + when (infoVerbose bi) $ putStrLn (unwords (map dropSourceDir modules)) + run_gfc bi (["--gfo-dir="++prelude_dst_dir] ++ modules) , RGLCommand "all" True $ gfcp [l,s,c,t,sc] , RGLCommand "lang" False $ gfcp [l,s] @@ -174,7 +175,7 @@ rglCommands = Just mfull -> flip mapM_ modes $ \mode -> do let dst = getRGLBuildDir bi mode putStrLn $ "Building [" ++ show mode ++ "] " ++ dropSourceDir mfull - run_gfc bi [if infoVerbose bi then "--verbose" else "--quiet", "--gfo-dir="++dst, mfull] + run_gfc bi ["--gfo-dir="++dst, mfull] ] where @@ -393,13 +394,14 @@ gfcn :: Info -> Mode -> String -> [FilePath] -> IO () gfcn bi mode summary files = do let dir = getRGLBuildDir bi mode preproc = case mode of - AllTenses -> "" Present -> "--preproc=mkPresent" + AllTenses -> "" createDirectoryIfMissing True dir if length files > 0 then do - putStrLn $ "Building [" ++ show mode ++ "] " ++ summary - run_gfc bi ([if infoVerbose bi then "--verbose" else "--quiet", "--no-pmcfg", preproc, "--gfo-dir="++dir] ++ files) + putStrLn $ "Building [" ++ show mode ++ "]" + when (infoVerbose bi) (putStrLn summary) + run_gfc bi (["--no-pmcfg", preproc, "--gfo-dir="++dir] ++ files) else putStrLn $ "Skipping [" ++ show mode ++ "] (nothing to build)" @@ -407,7 +409,7 @@ gfcn bi mode summary files = do run_gfc :: Info -> [String] -> IO () run_gfc bi args = do let - args' = ["--batch"] ++ filter (not . null) args + args' = ["--batch", "--quiet"] ++ filter (not . null) args gf = infoGFPath bi execute gf args' diff --git a/Make.sh b/Make.sh index 4aa66b7e2..ce194b44e 100755 --- a/Make.sh +++ b/Make.sh @@ -54,11 +54,6 @@ src="src" dist="dist" gfc="${gf} --batch --quiet" -# Redirect stderr if not verbose -if [ $verbose = false ]; then - exec 2> /dev/null -fi - # Make directories if not present mkdir -p "${dist}/prelude" mkdir -p "${dist}/present" diff --git a/README.md b/README.md index 3c6f862fe..acca5ba7d 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ Simply run the script to build the entire RGL and install in the default locatio You can pass the following flags: - `--dest=...` to manually specify the install location - `--gf=...` to specify the path to the `gf` executable, if not available on the system path -- `--verbose` or `-v` to show all GF warnings and errors +- `--verbose` or `-v` to show a list of files being built (errors will always be shown) ## Windows batch file: `Make.bat` From 73948e54a63eac456430eae66fc05880466d7203 Mon Sep 17 00:00:00 2001 From: "John J. Camilleri" Date: Thu, 9 Aug 2018 10:05:10 +0200 Subject: [PATCH 08/15] Make.sh: halt on error, skip non-existant files Was trying to compile src/*/SymbolHeb.gf which doesn't exist --- Make.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Make.sh b/Make.sh index ce194b44e..30a8bfc8a 100755 --- a/Make.sh +++ b/Make.sh @@ -3,6 +3,7 @@ # --- # Non-Haskell RGL build script for Unix-based machines # --- +set -e # Get languages from config langs=$(tail -n +2 languages.csv | awk -F ',' '{ if ($6 != "n") { print $1 } }') @@ -73,6 +74,7 @@ for lang in $langs; do if [ $mod == "Try" ] && [[ "$langs_try" != *"$lang"* ]]; then continue; fi if [ $mod == "Symbolic" ] && [[ "$langs_symbolic" != *"$lang"* ]]; then continue; fi for file in "${src}"/*/"${mod}${lang}".gf; do + if [ ! -f "$file" ]; then continue; fi if [[ "$langs_present" = *"$lang"* ]]; then modules_present="${modules_present} ${file}"; fi modules_alltenses="${modules_alltenses} ${file}" done From f0566a48dddcbb20b5ca8fecfa8891daf14fd9fc Mon Sep 17 00:00:00 2001 From: "John J. Camilleri" Date: Thu, 9 Aug 2018 10:19:48 +0200 Subject: [PATCH 09/15] Re-specify `--gf-lib-path` in Make.hs, seems to be needed sometimes --- Make.hs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Make.hs b/Make.hs index 98e5a5406..e97b7f9da 100644 --- a/Make.hs +++ b/Make.hs @@ -409,7 +409,8 @@ gfcn bi mode summary files = do run_gfc :: Info -> [String] -> IO () run_gfc bi args = do let - args' = ["--batch", "--quiet"] ++ filter (not . null) args + dir = infoBuildDir bi + args' = ["--batch", "--quiet", "--gf-lib-path="++dir] ++ filter (not . null) args gf = infoGFPath bi execute gf args' From 5ce0ad5639758df065d6bca984c65c2ed595038b Mon Sep 17 00:00:00 2001 From: odanoburu Date: Thu, 9 Aug 2018 17:54:58 +0000 Subject: [PATCH 10/15] (#4) use --verbose in travis build build mongolian too rm --dest flag from haskell build --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 46554d14d..092420ce9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,5 +10,5 @@ before_install: - mkdir rgl script: - - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/sh -c "cd /home/; export GF_LIB_PATH=/home/rgl; runghc Make.hs build --langs=-Mon --dest=rgl ;" - - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/sh -c "cd /home/; export GF_LIB_PATH=/home/rgl; sh Make.sh --dest=rgl ;" + - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/sh -c "cd /home/; runghc Make.hs build all --verbose ;" + - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/sh -c "cd /home/; export GF_LIB_PATH=/home/rgl; sh Make.sh --dest=rgl --verbose ;" From c4f4df256bae47a21878ab003ad883c7226f7eef Mon Sep 17 00:00:00 2001 From: odanoburu Date: Thu, 9 Aug 2018 18:19:49 +0000 Subject: [PATCH 11/15] try using bash --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 092420ce9..0203e6be4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,5 +10,5 @@ before_install: - mkdir rgl script: - - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/sh -c "cd /home/; runghc Make.hs build all --verbose ;" - - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/sh -c "cd /home/; export GF_LIB_PATH=/home/rgl; sh Make.sh --dest=rgl --verbose ;" + - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/bash -c "cd /home/; export GF_LIB_PATH=/home/rgl ; runghc Make.hs build all --verbose ;" + - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/bash -c "cd /home/; export GF_LIB_PATH=/home/rgl; sh Make.sh --dest=rgl --verbose ;" From 9d581b1d5e506163f797950ba07db63192400ae4 Mon Sep 17 00:00:00 2001 From: "John J. Camilleri" Date: Fri, 10 Aug 2018 08:31:02 +0200 Subject: [PATCH 12/15] Fix note in README about default command --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index acca5ba7d..4cd0b2449 100644 --- a/README.md +++ b/README.md @@ -79,11 +79,12 @@ clean - `CMDS` is one or more of: `prelude`, -`all` (default), +`all`, `lang`, `api`, `compat`, or an explicit module name (e.g. `ExtraEng.gf`. You don't need to specify to language subdirectory, but there is a restriction that the module must exist in a **direct** subdirectory of `src`). +If ommitted, the default command is `prelude all`. - `MODE` is one of: `present`, `alltenses` From 0fe46a6d17bf608548b8b4fe612e929eb96d9a5b Mon Sep 17 00:00:00 2001 From: "John J. Camilleri" Date: Fri, 10 Aug 2018 08:33:01 +0200 Subject: [PATCH 13/15] Change shebang to /bin/bash --- Make.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Make.sh b/Make.sh index 30a8bfc8a..fc66ffcda 100755 --- a/Make.sh +++ b/Make.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # --- # Non-Haskell RGL build script for Unix-based machines From fe10e94c6cf77c2be10c1423461c177031aa5617 Mon Sep 17 00:00:00 2001 From: odanoburu Date: Fri, 10 Aug 2018 15:08:06 +0000 Subject: [PATCH 14/15] (#4) Make.hs build prelude all use bash to call Make.sh --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0203e6be4..7f2c3d435 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,5 +10,5 @@ before_install: - mkdir rgl script: - - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/bash -c "cd /home/; export GF_LIB_PATH=/home/rgl ; runghc Make.hs build all --verbose ;" - - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/bash -c "cd /home/; export GF_LIB_PATH=/home/rgl; sh Make.sh --dest=rgl --verbose ;" + - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/bash -c "cd /home/; export GF_LIB_PATH=/home/rgl ; runghc Make.hs build prelude all --verbose ;" + - docker run --mount src="$(pwd)",target=/home,type=bind odanoburu/haskell-gf:3.9 /bin/bash -c "cd /home/; export GF_LIB_PATH=/home/rgl; bash Make.sh --dest=rgl --verbose ;" From 989c6f5893c56d78e51d3eb22619cbdc7b425fde Mon Sep 17 00:00:00 2001 From: "John J. Camilleri" Date: Fri, 10 Aug 2018 18:27:19 +0200 Subject: [PATCH 15/15] Add dist to --gf-lib-path in Make.sh Otherwise an externally set GF_LIB_PATH will mess it up Might also need to make same change in Make.hs --- Make.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Make.sh b/Make.sh index fc66ffcda..97870d31d 100755 --- a/Make.sh +++ b/Make.sh @@ -53,7 +53,7 @@ fi # A few more definitions before we get started src="src" dist="dist" -gfc="${gf} --batch --quiet" +gfc="${gf} --batch --quiet --gf-lib-path=${dist}" # Make directories if not present mkdir -p "${dist}/prelude"