ender_45 - 2013-04-29

The following changes were found necessary to compile Genesis 2.3 on an iMac with 64bit Mountain Lion

1. Edit the makefile to uncomment the MacOS X section (yes, this is acceptable even for Intel architecture)
# ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~
# System:       MacOS X and Darwin (PPC-based systems)
# Compiler:     Apple Computer, Inc. v.gcc-932.1, based on gcc v.2.95.2
# ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~    ~  ~  ~  ~  ~  ~

2. This edit to src/sys/jump.c
Replace:
#if (defined(i860) && !defined(paragon)) || (defined(Linux) && !defined(__GLIBC__)) || defined(CRAY) || defined(Cygwin)
by
#if (defined(i860) && !defined(paragon)) || (defined(Linux) && !defined(__GLIBC__)) || defined(CRAY) || defined(Cygwin) || defined(MacOSXDarwin)

3. commenting out the facynchan:
Commenting out the line facsynchan.o in the Makefile in the newconn directory and commenting out the object declaration in the newconnlib.g file.

Notes  

Modification #2 will solve the compiling error with jump.c
cc -O2 -D__NO_MATH_INLINES -DBIGENDIAN -DBSD -DMacOSXDarwin -I. -I.. -I../shell -I../ss jump.c -c
jump.c:95:25: error: invalid application of 'sizeof' to an incomplete type
      'struct sigcontext'
        BCOPY(scp,&sig_context,sizeof(struct sigcontext));
                               ^     ~~~~~~~~~~~~~~~~~~~
./system_deps.h:89:45: note: expanded from macro 'BCOPY'
#define BCOPY(s1, s2, length) bcopy(s1, s2, length)< br>                                         ^
jump.c:85:8: note: forward declaration of 'struct sigcontext'
struct sigcontext sig_context;
       ^
jump.c:85:19: error: tentative definition has type 'struct sigcontext' that is
      never completed
struct sigcontext sig_context;
                  ^
jump.c:85:8: note: forward declaration of 'struct sigcontext'
struct sigcontext sig_context;

Modification #3 will solve the error with newconnlib.o and facsynchan
cc -O2 -D__NO_MATH_INLINES -DBIGENDIAN -Dnetcdf -DFMT1 -DINCSPRNG  sim/simlib.o sys/utillib.o ss/ss.o shell/shelllib.o par/parlib.o buffer/buflib.o segment/seglib.o hh/hhlib.o device/devlib.o out/outlib.o olf/olflib.o tools/toollib.o concen/conclib.o hines/hineslib.o user/userlib.o param/paramlib.o pore/porelib.o oldconn/axon/axonlib.o oldconn/synapse/synlib.o oldconn/personal/perlib.o oldconn/sim/simconnlib.o oldconn/tools/toolconnlib.o diskio/interface/netcdf/netcdflib.o diskio/interface/netcdf/netcdf-3.4/src/libsrc/libnetcdf.a diskio/interface/FMT1/FMT1lib.o diskio/diskiolib.o kinetics/kinlib.o newconn/newconnlib.o loadlib.o Xodus/_xo/xolib.o Xodus/_widg/widglib.o Xodus/_draw/drawlib.o Xodus/Draw/libDraw.a Xodus/Widg/libWidg.a Xodus/Xo/libXo.a -L/usr/X11R6/lib -lXt -lX11 -ll sprng/lib/liblfg.a -lcurses -o genesis
Undefined symbols for architecture x86_64:
  "_FacSynchan_check_facilitation", referenced from:
      _FacSynchan in newconnlib.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: ***  Error 1
make: ***  Error 2

Good luck,
Dave