Mumpster
http://mumpster.org/

FYI: Compiling Mumps V1 on Mac OS X 10.6/10.7
http://mumpster.org/viewtopic.php?f=22&t=1675
Page 1 of 1

Author:  shabiel [ Thu Dec 15, 2011 11:40 am ]
Post subject:  FYI: Compiling Mumps V1 on Mac OS X 10.6/10.7

First, download mumps v1 source code:
Code:
curl -L -O http://downloads.sourceforge.net/mumps/mumps-1.53-src.tar.gz

Untar it:
Code:
tar -xzvf mumps-1.53-src.tar.gz

Navigate to the directory
Code:
cd mumps

Now make the project. If it fails (which it will) do a make clean. The Makefiles assume that OSTYPE is darwin, but each different version of Macs gives you a different one. We set it manually on the make command:
Code:
make OSTYPE=darwin

Once you compile it, you will get the following causing a failure:
Code:
init/mumps.c:36:66: error: stdio.h: No such file or directory
init/mumps.c:37:61: error: stdlib.h: No such file or directory
init/mumps.c:38:66: error: sys/types.h: No such file or directory
init/mumps.c:39:20: error: string.h: No such file or directory
init/mumps.c:40:19: error: ctype.h: No such file or directory
init/mumps.c:41:37: error: unistd.h: No such file or directory
init/mumps.c:42:62: error: errno.h: No such file or directory

This is because the Makefile is looking for these files in the wrong place.

You can investigate where these are by running the mdfind command (a better version of Linux's locate)
Code:
$ mdfind -name stdio.h
/usr/include/fcgi_stdio.h
/usr/include/c++/4.2.1/tr1/stdio.h
/usr/include/secure/_stdio.h
/usr/include/stdio.h
/usr/include/xlocale/_stdio.h
/opt/local/include/wine/msvcrt/stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/usr/include/stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk/usr/include/stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk/usr/include/c++/4.2.1/tr1/stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk/usr/include/stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk/usr/include/xlocale/_stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk/usr/include/secure/_stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk/usr/include/fcgi_stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/include/stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/include/c++/4.2.1/tr1/stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/include/xlocale/_stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/include/secure/_stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/include/fcgi_stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/include/xlocale/_stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/include/secure/_stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/include/stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/include/c++/4.2.1/tr1/stdio.h
/Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/tr1/stdio.h
/Developer/SDKs/MacOSX10.6.sdk/usr/include/fcgi_stdio.h
/Developer/SDKs/MacOSX10.6.sdk/usr/include/secure/_stdio.h
/Developer/SDKs/MacOSX10.6.sdk/usr/include/stdio.h
/Developer/SDKs/MacOSX10.6.sdk/usr/include/xlocale/_stdio.h
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/include/c++/4.2.1/tr1/stdio.h
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/include/stdio.h
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/include/xlocale/_stdio.h
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/include/secure/_stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/usr/include/fcgi_stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/usr/include/xlocale/_stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/usr/include/secure/_stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk/usr/include/c++/4.2.1/tr1/stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk/usr/include/fcgi_stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk/usr/include/xlocale/_stdio.h
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk/usr/include/secure/_stdio.h

To fix this, locate this line in the root Makefile:
Code:
ifeq ($(OSTYPE),darwin)
CFLAGS  = ${INCLUDES} -L/usr/lib/ -Wall -lm -framework CoreServices -framework DirectoryService -framework Security -mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch i386
endif

change this to the version of the SDK you have (corresponding to your OS)
Code:
ifeq ($(OSTYPE),darwin)
CFLAGS  = ${INCLUDES} -L/usr/lib/ -Wall -lm -framework CoreServices -framework DirectoryService -framework Security -mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386
endif

make clean, and make again. Now you should have a mumps executable.

Make sure it works:
Code:
./mumps
----------------------------------------------------
This is MUMPS V1.53 for Darwin i386

Copyright (c) 1999 - 2010
Raymond Douglas Newman.  All rights reserved.

To create a database:
> mumps -v volnam -b blocksize -s dbsize database
                   and optionally -m mapblocksize
  volnam is 1 to 8 alphas and sizes are in kbytes

To initialize an environment:
> mumps -j maxjobs -r routinemb -g globalmb database
                 routinemb and globalmg are optional

To attach to an environment:
> mumps -x command -e environment(uci) database
               where both switches are optional

      see http://www.mumps.org/
----------------------------------------------------

Create the database:
Code:
./mumps -v VISTA -b 4 -s 100 vistadb.db

Start the daemon process:
Code:
./mumps -j 2 vistadb.db

Attach to the environment:
Code:
./mumps vistadb.db
M> s ^SAM=1
M> w ^SAM
1

In my experience, mumps v1 requires a rather inordinate amount of shared memory compared with GT.M. You will need to adjust your shared memory values depending on how you set-up your daemon processes. This link turns out to be useful: http://www.spy-hill.com/help/apple/SharedMemory.html

In my next post, I will show how you can compile a debug version under Xcode so that you can debug mumps v1.

Author:  mum9020 [ Sat Dec 17, 2011 2:29 pm ]
Post subject:  Re: FYI: Compiling Mumps V1 on Mac OS X 10.6/10.7

thanks for the post and info on Mac

Author:  raynewman [ Fri Dec 30, 2011 2:56 pm ]
Post subject:  Re: FYI: Compiling Mumps V1 on Mac OS X 10.6/10.7

I don't have any problems compiling under OSX 10.6/7; in fact thats where I develop it.
SDK has to be installed properly though.


Ray Newman

Page 1 of 1 All times are UTC - 8 hours [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/