Porting GT.M to OS X -- need help

<< < 1 2 (Page 2 of 2)
  • Amul

    Amul - 2009-05-18

    The problem you ran into is part of the compilation of the M programs.  The M program makefiles are generated on the fly based on the .mdep (and one more extension) files.  You need to skip the make target that is doing the M program builds.

    I sent Duke a patchset of my changes to get as far as you have now.  I won't be able to send that to you for another week because I powered down my home systems (out of town at the moment).

    Since we have a few more people interested, it's probably a good idea for us to choose some point for collaboration than just this forum thread.  We won't have access to the fis-gtm project.  Do you have a preference for Google Code (svn/mercurial), GitHub (git), launchpad (bazaar) or bitbucket (mercurial)?

    Aside from getting GT.M on my favorite platform, I also want to fix out GNU Make builds cause they drive me batty every time I look at them. ;)


    • Ken McKee

      Ken McKee - 2009-05-18

      Thanks Amul.

      Setting up a project is a good idea. Google Code, GitHub and bitbucket are all OK with me.


      • David Whitten

        David Whitten - 2009-05-22

        Why not set up a sourceforge site at minimum?

        fis-gtm is already on sourceforge. Expecting someone to jump to Google Code, GitHub or bitbucket when the original project is at sourceforge is less than intuitive.

        Sourceforge also supports svn and mecurial for source control, by the way.


        PS I'm glad this thread exists. I have a mac that I'd like to run VistA on. GRIN

  • davemh

    davemh - 2009-05-27


    One thing to keep in mind is Mac OS-X is basically FreeBSD with a fancy GUI on it. If I were installing GT.M on it I would install Darwin Ports (which is really FreeBSD) on your Mac first and start from there. There is a ton of compiling tools available for Darwin. I currently don't have a Mac myself to try building GTM on.

    I do however have a 64bit virtual server in the "cloud" running Ubuntu Linux for which I need to build a 64bit GT.M on. I need to install the Db-GTM  Perl module but it will not link properly with a 32 bit libgtmshr.so !! when running "make" make  complains that libgtmshr is not a compatible library. However GTM does run fine on my 64 bit machine with the Ubuntu ia-32 compatibility libraries installed. So what I plan to do is compile GT.M from source and check that everything works and copy over my current installation directory (after backing it up first of course) and hope every thing works. Then try to run make on my perl module again and hope it works.


    • davemh

      davemh - 2009-05-28


      I got as far as here:
      make -f sr_unix/comlist.mk -I./sr_unix -I./sr_linux gtm_ver=`pwd`

      And it stops with the following error

      In function 'open',
          inlined from 'io_open_try' at /home/daveh/gtm_use/sr_unix/io_open_try.c:397:
      /usr/include/bits/fcntl2.h:45: error: call to '__open_too_many_args' declared with attribute error: open can be called either with 2 or 3 arguments, not more
      make[1]: *** [io_open_try.o] Error 1

      Any ideas ??

      I don't really know too much about C or compiling except the usual configure,  make, make install thing


      • Amul

        Amul - 2009-05-29

        Ok, I finally got around to uploading the code to Google Code.

        Why use the services of the "New Evil"(TM)? dunno, I just picked something that matched what I wanted.  Didn't realize that SF had a wiki.

        The current status and compilation notes are on:

        I missed on piece that marks Darwin as a supported platform.  It's a nice starter for anyone looking for something easy to do.


    • Duke Normandin

      Duke Normandin - 2009-05-28

      Hey dave...

      You bet! I have all the Apple tools - XCode etc...

      Now all I need is the time ;) My wife's got me finishing the garage - it's a new house. Lot's of landscaping. Then I've got to leave _some_ time for flyfishing ;))

      So I'll be plunking away at it slowly but surely. Amul at GT.M has been pointing me in the right direction as well. Thanks for the advise. L8r...

  • tmr

    tmr - 2009-06-15


    Since I had several issues with GT.M build on *BSD, I'm glad to see a port for Darwin as it is FreeBSD based system.

    The first problem of my previous attempts is that the (g)make under BSD won't parse it's makefile correctly. Even if I use *exactly* the same version of gmake as on Linux! My expectation of this port was to fix this problem, because I've never solved it.

    I tried to build a gtmdarwin from svn a few minutes ago, but I encountered the same problems as with original sources:
    $ gmake -f sr_unix/comlist.mk -I./sr_unix -I./sr_darwin buildtypes=dbg gtm_ver=`pwd`
    gmake: *** No rule to make target `dbg_all', needed by `all'.  Stop.

    ...I don't know why, but it seems that the gmake (3.81) is not able to match a "dbg_%" target as a dbg_all. If I try to "expand" it by hand :) it will hang on another error. Does it mean that the gmake is not portable and behaves differently on different systems? What gmake do you use on Darwin? Is there anybody with similar experiences?

    BTW, I also noticed 64bit compilation problems (GT.M & Db::GTM) on Slamd64 Linux as it was previously mentioned by Dave. I juggled with it some time, but w/o any results..I would really welcome some improvements in a build and portability case.


    • Ken McKee

      Ken McKee - 2009-06-17

      I had similar experiences. I think it had to do with the OS and machine type detection not finding a supported architecture.

      Either way tuskentower has added support for darwin to the build process.
      Find it here:

      Some include files are different.
      I've made these changes (no promises that this is entirely correct).

      // #include <malloc.h>
      #include <sys/malloc.h>

      //#include <sys/sysmacros.h>
      #include <sys/types.h>

      // #include <sys/vfs.h>
      #include <sys/param.h>
      #include <sys/mount.h>

      //  #include <crypt.h> /* for crypt() */   crypt is in unistd.h below???

      I believe that a library called icu is required. I installed it with macports.


  • jw3

    jw3 - 2010-03-14

    Has anyone had any success in building GT.M on OS X yet?

  • Sam Habiel

    Sam Habiel - 2011-09-17

    More than 2 years later… has there been any progress on this front?

<< < 1 2 (Page 2 of 2)

Log in to post a comment.