Search code examples
ozmozart

Mozart/Oz configure issue on mac os x


I am trying to build Mozart/Oz on Mac os x Mojave using the following link: https://github.com/mozart/mozart and been getting the following configure error. GNU MP lib not found.

I installed gmp using homebrew and also tried --with-gmp=/usr/local/opt/gmp/lib and --with-gmp=/usr/local/Cellar/gmp/6.1.2_2/ but got the same error. Can anyone please help me resolve this?

checking for --with-gmp... yes
checking for gmp.h... -I/Users/rr/Software/mozart/gmp/packages/include
checking for __gmpz_init in -lgmp (default)... no
checking for __gmpz_init in -L/Users/rr/Software/mozart/gmp/packages/lib/ -lgmp... no
checking for mpz_init in -lgmp (default)... no
checking for mpz_init in -L/Users/rr/Software/mozart/gmp/packages/lib/ -lgmp... no
checking for mpz_init in -lgmp2 (default)... no
checking for mpz_init in -L/Users/rr/Software/mozart/gmp/packages/lib/ -lgmp2... no

configure: warning: required GNU MP lib not found
configure: error: 
The GNU Multiple Precision Arithmetic Library (gmp)
version 2 or higher is required
to build the system.  It can be retrieved from:

    ftp://ftp.gnu.org/pub/gnu/gmp/

The latest version at this time is 4.1.2 and is available
packaged as the following archive:

    ftp://ftp.gnu.org/pub/gnu/gmp/gmp-4.1.2.tar.gz

You may find a mirror archive closer to you by consulting:

    http://www.gnu.org/order/ftp.html

configure: error: /Users/rr/Software/mozart/mozart/platform/emulator/configure failed for emulator
configure: error: /Users/rr/Software/mozart/mozart/platform/configure failed for platform

Solution

  • 1: Install Mozart2

    1.1: Link: https://mozart.github.io/

    1.2: Applications/Mozart2 Should look like this: https://i.sstatic.net/Tl00m.png

    Also, I can't embed the image because of my low StackOverflow reputation, sorry about that.

    2: Adding aliases for osc and ozemulator

    2.1: Open .bash_profile

    open ~/.bash_profile
    

    2.2: Add the following to file and save

    alias ozc='/Applications/Mozart2.app/Contents/Resources/bin/ozc'
    alias ozemulator='/Applications/Mozart2.app/Contents/Resources/bin/ozemulator'
    alias ozem='/Applications/Mozart2.app/Contents/Resources/bin/ozemulator'
    alias ozengine='/Applications/Mozart2.app/Contents/Resources/bin/ozengine'
    alias ozwish='/Applications/Mozart2.app/Contents/Resources/bin/ozwish'
    

    3: Basic usage

    3.1: Write code in a .oz-file Example: circle.oz

    functor
    import
        System 
        Application(exit:Exit)
    define
        proc {Circle R}
            local A C D Pi in
                Pi = 3.14
                A = Pi*R*R
                D = 2.0*R
                C = Pi*D 
                {System.showInfo 
                    'A: '    # A # '\n' #
                    'D: ' # D # '\n' #
                    'C: '  # C
                }
            end
        end
        {Circle 20.0}
        {Exit 0}
    end
    

    3.2: Compile code in ozc

    ozc -c circle.oz
    

    3.3: Run compiled code in ozemulator

    ozem circle.ozf # .ozf is a compiled .oz file