History of AFNI updates  

|
September 22, 2005 06:09PM
Here's how I built 3dSkullStrip/SUMA on solaris2.9 using Sun Studio 10...

1. Install sun's OpenGL (I used 1.3)

[www.sun.com]

2. Download and extract the latest afni_src (AFNI_2005_09_06_0927)

3. Pick Makefile.solaris29_suncc

> cd [afni_src]
> cp Makefile.solaris26_suncc Makefile

4. Add SUMA varables near the end of [afni_src]/Makefile

[snip]
# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
# For SUMA
SUMA_INCLUDE_PATH = -I/usr/openwin/share/include/X11 -I./ -I../ -I../niml/ -Igts/src
SUMA_LINK_PATH = -L/usr/openwin/lib -R/usr/openwin/lib -L../
SUMA_LINK_LIB = $(LZLIB) -lm -lGL -lGLU -lGLw -lXmu -lXm -lXp -lXt -lXext -lX11 -lsocket -lnsl
SUMA_MAKEFILE_NAME = SUMA_Makefile_NoDev
SUMA_BIN_ARCHIVE = SUMA_solaris28_suncc.tar
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

######################################################################

MAKE = make
include Makefile.INCLUDE
[end of file]

5. Build AFNI vastness

> cd [afni_src]
> make vastness

6. Modify [afni_src]/SUMA/SUMA_BrainWrap.c in two places

The Sun Studio 10 compiler complains about declaring SOCenter as a zero length array in lines 1081 and 1457 of SUMA_BrainWrap.c:

line 1081: float hdim[3], t0, t1, t2, SOCenter[0], p0[3], p1[3];
line 1457: float hdim[3], t0, t1, t2, SOCenter[0], p0[3], p1[3];

SOCenter is declared elsewhere in the file as "SOCenter[3]" so I blindly changed these lines to:

line 1081: float hdim[3], t0, t1, t2, SOCenter[3], p0[3], p1[3];
line 1457: float hdim[3], t0, t1, t2, SOCenter[3], p0[3], p1[3];

7. Fail to build SUMA

> cd [afni_src]
> make suma_exec

This will ultimately fail complaining about MarchingCubes.o, but this needs to be done before the next step anyway.

8. Build the "release" version of MarchingCubes.o

To the extent that I understand what happens inside [afni_src]/SUMA/MarchingCubes/Makefile, MarchingCubes.o gets built (via the "mc" target) with performance flags, but this ends up causing linking problems (unresolved _mcount references) later.

My workaround was to compile the "release" version using the "mcR" target by hand, but this doesn't work from SUMA_Makefile_NoDev so I did it manually.

> cd [afni_src]/SUMA/MarchingCubes
> make mcR
> cp release/MarchingCubes.o debug/MarchingCubes.o
> cp release/MarchingCubes.o ..

Note: This builds MarchingCubes.o using gcc, but that seems to be OK. I tried to do this before "failing to build suma" but a "rm *.o" in the SUMA directory the first time causing the incompatable debug version to be built, so that doesn't work.

9. Build and install SUMA

> cd [afni_src]
> make suma_exec install

After this 3dSkullStrip seems to work on solaris. I don't know enough about SUMA to know if the rest of SUMA works or not.

--judd

Subject Author Posted

Compiling 3dSkullStrip/SUMA on solaris

Judd Storrs September 22, 2005 06:09PM

Re: Compiling 3dSkullStrip/SUMA on solaris

Ziad S. Saad September 23, 2005 11:43AM