diff --git a/.github/workflows/build-majestic.yml b/.github/workflows/build-majestic.yml index 9dca7b1ed..395053bcb 100644 --- a/.github/workflows/build-majestic.yml +++ b/.github/workflows/build-majestic.yml @@ -11,20 +11,34 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Install build tools - run: | - sudo apt-get update - sudo apt-get install -y \ - autoconf \ - automake \ - autotools-dev \ - g++ \ - libtool \ - make + # All these are already available in GitHub runner + # - name: Install build tools + # run: | + # sudo apt-get update + # sudo apt-get install -y \ + # autoconf \ + # automake \ + # libtool \ + # make \ + # g++ - - name: Build package + - name: Build runtime working-directory: ./src/runtime/c run: | autoreconf -i ./configure make + sudo make install + + - name: Setup Haskell + uses: haskell/actions/setup@v1 + # with: + # ghc-version: '8.6' + # cabal-version: '2.4.1.0' + + - name: Run testsuite + working-directory: ./src/runtime/haskell + env: + LD_LIBRARY_PATH: /usr/local/lib + run: | + cabal test --extra-lib-dirs=/usr/local/lib diff --git a/src/runtime/c/README.md b/src/runtime/c/README.md new file mode 100644 index 000000000..be9d8d347 --- /dev/null +++ b/src/runtime/c/README.md @@ -0,0 +1,27 @@ +# "Majestic" C Runtime + +## Requirements + +Required system packages (Debian/Ubuntu): +``` +autoconf +automake +libtool +make +g++ +``` + +## Installation + +Installing the runtime (puts libraries in `/usr/local/lib`): +``` +autoreconf -i +./configure +make +make install +``` + +## Using + +- Compiling GF with this runtime will require flag `--extra-lib-dirs=/usr/local/lib`. +- Running GF with this runtime will require environment variable `LD_LIBRARY_PATH=/usr/local/lib` diff --git a/src/runtime/haskell/pgf2.cabal b/src/runtime/haskell/pgf2.cabal index 2b1eaef4f..4ac762d06 100644 --- a/src/runtime/haskell/pgf2.cabal +++ b/src/runtime/haskell/pgf2.cabal @@ -1,34 +1,51 @@ -name: pgf2 -version: 0.1.0.0 --- synopsis: --- description: -homepage: http://www.grammaticalframework.org -license: LGPL-3 ---license-file: LICENSE -author: Krasimir Angelov, Inari -maintainer: --- copyright: -category: Language -build-type: Simple -extra-source-files: README -cabal-version: >=1.10 +name: pgf2 +version: 2.0.0 + +cabal-version: 1.22 +build-type: Simple +license: LGPL-3 +license-file: LICENSE +category: Natural Language Processing +-- synopsis: Bindings to the C version of the PGF runtime +-- description: +-- GF, Grammatical Framework, is a programming language for multilingual grammar applications. +-- GF grammars are compiled into Portable Grammar Format (PGF) which can be used with the PGF runtime, written in C. +-- This package provides Haskell bindings to that runtime. +homepage: https://www.grammaticalframework.org/ +bug-reports: https://github.com/GrammaticalFramework/gf-core/issues +author: Krasimir Angelov +-- tested-with: GHC==7.10.3, GHC==8.0.2, GHC==8.10.4 +extra-source-files: + CHANGELOG.md + README.md library - exposed-modules: PGF2, PGF2.Internal, - -- backwards compatibility API: - PGF - other-modules: PGF2.FFI, PGF2.Expr, PGF2.Type - build-depends: base >=4.3, containers, pretty, array, random - -- hs-source-dirs: - default-language: Haskell2010 - build-tools: hsc2hs - - extra-libraries: pgf - cc-options: -std=c99 - c-sources: utils.c + exposed-modules: + PGF2, + PGF2.Internal, + -- backwards compatibility API: + PGF + other-modules: + PGF2.FFI, + PGF2.Expr, + PGF2.Type + build-depends: + base >= 4.3 && < 4.16, + containers, + pretty, + array, + random + default-language: Haskell2010 + build-tools: hsc2hs + extra-libraries: pgf + cc-options: -std=c99 + c-sources: utils.c test-suite basic - type: exitcode-stdio-1.0 - main-is: tests/basic.hs - default-language: Haskell2010 - build-depends: base, HUnit, pgf2 + type: exitcode-stdio-1.0 + main-is: tests/basic.hs + default-language: Haskell2010 + build-depends: + base, + HUnit, + pgf2