========= CXrL SHADOW 2.3 guide to building on various platforms

>> TOC:
    PORTS
    DETAIL
    COMPILERS AND FLAGS


>> PORTS:

We've built SHADOW 2.3.1 successfully on the following platforms:

    alpha-dec-osf3.2
    i[3456]86-*-linux			(RedHat 4.0+)
    i[3456]86-*-cygwin32		(Windows'95 + cygwin DLL)
    hppa1.1-hp-hpux9.07
    hppa1.1-hp-hpux10.20
    rs6000-ibm-aix4.2
    sparc-sun-sunos4.1.3
    sparc-sun-solaris2.4

We have discontinued support for the following platforms due to lack of
resources. You can still get the old version via FTP/Web however.

    vax-dec-vms5.4
    alpha-dec-openvms6.1

SHADOW for these 2 platforms are distributed in binary form only for now.

All platforms use the same enviroment, which makes it easy to port.

    GNU CC 2.7.2 (plus template repository patch, but not necessary)
    GNU LIBG++ 2.7.1 

If the platform has native compilers that are known to be of good quality
or where GNU compilers are known to be buggy/non-optimal, I use the native 
ones (eg., rs6000-ibm-aix4.2, alpha-dec-osf3.2).

>> DETAILS:

NOTE: platforms marked with ***** are not done yet, these are notes from
SHADOW v2.2.0. Hopefully the remarks are still valid.

sparc-sun-sunos4.1.3:
    - builds out of the box
    - Either Sun ANSI C (acc) or GNU C.

sparc-sun-solaris2.4:
    - builds out of the box
    - Either Sun ANSI C (acc) or GNU C.

rs6000-ibm-aix3.2.5: *****
    - builds out of the box
    - Note: if you IBM's xlc C compiler, you might have to pre-define 
      CPP to be /lib/cpp (see Config.mk) for FORTRAN files to compile ok.

	  % env CC=xlc CPP=/lib/cpp configure

      Currently configure will force CPP to be /lib/cpp, so there should
      be no need for you to do this manually.

rs6000-ibm-aix4.1: *****
    - builds out of the box.
    - Note: if you IBM's xlc C compiler, you might have to pre-define 
      CPP to be /lib/cpp (see Config.mk) for FORTRAN files to compile ok.

	  % env CC=xlc CPP=/lib/cpp configure

      Currently configure will force CPP to be /lib/cpp, so there should
      be no need for you to do this manually.

rs6000-ibm-aix4.2:
    - builds out of the box.

hppa1.1-hp-hpux9.07:
    - due to bugs in HPUX Bourne shell (/bin/sh), configure chokes with
      messages like "2K buffer overflow". The fix is the following:
          
	  % env CONFIG_SHELL=ksh ksh configure [configure options here]

    - builds out of the box.

hppa1.1-hp-hpux10.20:
    - due to bugs in HPUX Bourne shell (/bin/sh), configure chokes with
      messages like "2K buffer overflow". The fix is the following:
          
	  % env CONFIG_SHELL=ksh ksh configure [configure options here]

    - builds out of the box

mips-dec-ultrix4.2: ****
    1. SHELL in make has to be /bin/sh5 and the gmake SHELL=/bin/sh5

	% /bin/sh5 /usr/src/shadow/configure
	% gnumake SHELL=/bin/sh5 install

    2. If you use gcc, src/tools/plplot.4.99c/libsrc/xwin.c seems to 
       have trouble. You'll have to manually compile using DEC c.
	   % (cd src/tools/plplot.4.99c/libsrc; gmake CC=cc xwin.o)
	   % gmake 

alpha-dec-osf3.2:
    - builds out of the box.

i[3456]86-linux:
    1. Must have g77 0.5.18 or newer for SHADOW to build correctly.
       Currently the configure scripts forces the g77 over f77 if
       found.

       f77 or fort77 scripts which are front-ends for f2c WILL NOT
       work.

i[3456]86-cygwin32 aka Windows'95/NT:
    1. Must have Cygnus gnu-win32 b17.1 or newer distribution. This
       gets you C/C++ etc with all the necessary tools.

    2. Must get g77-0.5.19.1 patches. I've done the port and the patches
       (source and binaries) are available at:
           
	 http://www.xraylith.wisc.edu/~khan/software/gnu-win32
    
    3. If you want X Window system support (yes, you can!), get the
       precompiled X Windows libraries and includes from:

         ftp://niteroi.gsfc.nasa.gov/pub/win32/X11R6.3/Win32_X11R6_3.tar.gz

       You can use either a commercial X server, such as eXceed, or
       use a free one from MicroImages, Inc available at:
    
	 http://tnt.microimages.com/www/html/freestuf/mix.htm
      
       You can also display the plots on your Unix workstation.
       Make sure you tell configure where you've installed the X11R6.3
       distribution. --x-includes=DIR and --x-libraries=DIR is the way
       to go.

mips-sgi-irix5.3: ****
    - builds out of the box.

>> COMPILERS and FLAGS:

NOTE: platforms marked with ***** are not done yet, these are notes from
SHADOW v2.2.0. Hopefully the remarks are still valid.

And those of you who might brave building on a new platform, here's
some info on what I had to do on various machines. Please do mail me
any flags that you've had to use to get SHADOW running on your 
platform. It's sufficient if you simply mail me the Config.mk file
which should have all the parameters/flags.

Compilers I've tried (along with FORTRAN compiler and linker flags I've
needed for the ports):

sparc-sun-sunos4.1.3:
    FORTRAN:	Sun FORTRAN SC2.0.1patch1 
    		(FFLAGS = -Nl30, LDFLAGS = -lV77)
    C:		Sun ANSI C (acc) and GNU CC 2.7.2
    C++:	Sun C++ (CC) and GNU C++ 2.7.2

sparc-sun-solaris2.4:
    FORTRAN: 	Sun FORTRAN SC2.0.1patch1
    		(FFLAGS = -Nl30, LDFLAGS = -lV77)
    C: 		Sun ANSI C (acc) and GNU CC 2.7.2
    C++: 	Sun C++ (CC) and GNU C++ 2.7.2

rs6000-ibm-aix3.2.5: ****
    FORTRAN: 	IBM XL FORTRAN (xlf) 2.3.0.2
    		(FFLAGS = , LDFLAGS = )
    C: 		IBM XL C (xlc) and GNU CC 2.7.2
    C++: 	GNU C++ 2.7.2

rs6000-ibm-aix4.1: ****
    FORTRAN: 	IBM XL FORTRAN (xlf) 3.2.2.0
    		(FFLAGS = , LDFLAGS = )
    C: 		IBM XL C (xlc) and GNU CC 2.7.2
    C++: 	GNU C++ 2.7.2

hppa1.1-hp-hpux9.07:
    FORTRAN: 	HP FORTRAN (fort77)
    		(FFLAGS = -U77 +E1, LDFLAGS = )
    C: 		HP ANSI C (c89) and GNU CC 2.7.2
    C++: 	GNU C++ 2.7.2

hppa1.1-hp-hpux10.01: ****
    FORTRAN: 	HP FORTRAN (fort77)
    		(FFLAGS = -U77 +E1, LDFLAGS = )
    C: 		HP ANSI C (c89) and GNU CC 2.7.2
    C++: 	HP CC and GNU C++ 2.7.2

mips-dec-ultrix4.2: ****
    FORTRAN: 	DEC FORTRAN 3.0.4 
    		(FFLAGS = , LDFLAGS = -lUfor -lutil -lF77 -lI77 -lU77)
    C: 		GNU CC 2.7.2
    C++: 	Cfront 3.0.1 and GNU C++ 2.7.2

alpha-dec-osf3.2:
    FORTRAN: 	DEC FORTRAN 3.8.0
    		(FFLAGS = -nofor_main, LDFLAGS = )
    C: 		DEC ANSI C (c89) GNU CC 2.7.2
    C++: 	GNU C++ 2.7.2

i[3456]86--linux
    FORTRAN: 	GNU FORTRAN (g77 v0.5.18. Older versions will not work)
    		(FFLAGS = , LDFLAGS = )
    C: 		GNU CC 2.7.2
    C++: 	GNU C++ 2.7.2

mips-sgi-irix5.3 ****
    FORTRAN: 	SGI FORTRAN (f77)
    		(FFLAGS = -static, LDFLAGS = )
    C: 		SGI ANSI C (cc)
    C++: 	SGI C++ (NCC)

=================== 

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

Last Updated Fri Apr 11 22:24:13 1997 Mumit Khan <khan@xraylith.wisc.edu>

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