These instructions only apply if the code has been ported to the architecture, operating system, and compiler suite that you intend to build on. If the code has not been ported, then first complete the steps listed on the porting page.

Step 1: uncompress/unpack the archive

If the source has not been uncompressed and/or unpacked, then execute:
> gunzip < ACESII.tgz | tar xvf -
> cd ACESII

Step 2: prepare the top-level directory

If you do not intend to use Kohn-Sham DFT (ks.src) or DIP/DEA/STEOM/EA-EOM/... (mrcc.src) then a lot of compile time can be saved by removing one or both of those directories. Now create the proper directories and symlinks:
> ./xprep -f # -p # add -p if there is a parallel port

Step 3: edit the makefiles (optional)

If this is a one-time build and you do not want to touch the makefiles, then everything can be controlled from the command line.

Step 3.1: add 64-bit integers

If there is a 64-bit port, then add "64BIT=1" to the top of makefile and Makefiles/GNUmakefile:
> vi makefile Makefiles/GNUmakefile

Step 3.2: identify the machine

There is a variable called MACHSTATS in Makefiles/GNUmakefile that contains a list of strings that associate the machine name to an architecture, operating system, and compiler suite. Since this page is only for existing ports, then a suitable set should already exist and you can simply copy/rename an existing definition.
> vi Makefiles/GNUmakefile

diamond:crayx1:unicos:cray # name, architecture, O/S, compiler

Step 3.2: check the override options

It is always a good idea to double-check GNUmakefile.src since that overrides (almost) anything in the main makefile.
> more Makefiles/GNUmakefile.src

DEFINES_EXTRA += -D_STRINGENT_CHECK -D_ASSERT
OPTIMIZE=1
DEBUG=0
#LDFLAGS_NUMLIBS := -llinpack -leispack -llb # override numerical libraries
#DIR_INSTBIN := ../../bin # put binaries  somewhere other than ACESII/bin
#DIR_INSTLIB := ../../lib # put libraries somewhere other than ACESII/lib
#DIR_SRCLIB  := ${DIR_INSTLIB} # link to pre-build libraries

Step 4: compile

> gmake # you must use GNU make

Step 5: use the code

If you did not override the installation directory of the binaries, then everything can be found in the bin directory.
> ls -F bin

xa2proc*        xdirmp2*        xmopac*         xvcc5q*         xvmol*
xaces2*         xfno*           xmrcc*          xvcc5t*         xvmol2ja*
xanti*          xintgrt*        xnmr*           xvcceh*         xvprops*
xasv*           xintpack*       xprops*         xvdint*         xvscf*
xbcktrn*        xintprc*        xscfgrd*        xvea*           xvscf_ks*
xcphf*          xjoda*          xtdhf*          xvee*           xvtran*
xdens*          xlambda*        xvcc*           xvksdint*

Step 6: troubleshooting

If only life were as simple as the five previous stages... If something does go wrong, then cd into the failed directory, get build and debug dumps, and send them to the proper authority along with make.error.
> gmake > ../errlog
> cat make.error >> ../errlog
> gmake debug >> ../errlog


Notes:

Command-line overrides can save you from editting any of the makefiles, but you must use them EVERY time you build if the process is interrupted. The following examples should cover all of the bases:
> gmake ARCH=crayx1 OPSYS=unicos CMPLR=cray 64BIT=1
> gmake ARCH=alpha OPSYS=osf CMPLR=digital 64BIT=1
> gmake ARCH=pwr3 OPSYS=aix CMPLR=xl 64BIT=1
> gmake ARCH=x86 OPSYS=linux CMPLR=gnu
(see Makefiles/GNUmakefile for more options)