NOX  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Step 4: Link your code to NOX

Using the Export Makefile System

NOX and LOCA support the export makefile system to streamline issues dealing with linking against user applications. When NOX and LOCA are installed using the "make install" command, it will install two Makefiles that contain all flags needed to link an application against the solvers. The first Makefile is Makefile.export.NOX. This contains the flags needed to build and link your code against nox. The second file is Makefile.client.NOX. This file can be used to link directly against your code. See the files for more details.

Compiling Without using Export Makefiles

Although we don't recommend it, users can link NOX and LOCA to their application without using the export makefile system. To compile your code in this manner, your Makefile should look something like the following, assuming NOX was installed in /usr/local.

NOX_PREFIX = /usr/local
LDFLAGS = -L$(NOX_PREFIX)/lib
LIBS = -lnox
CXXFLAGS = -I$(NOX_PREFIX)/include/

Compiling with LAPACK support:

NOX_PREFIX = /usr/local
LDFLAGS = -L$(NOX_PREFIX)/lib
LIBS = -lnox -lnoxlapack -llapack -lblas
CXXFLAGS = -I$(NOX_PREFIX)/include/

Compiling with Epetra support:

We assume that Epetra, EpetraExt, Aztec, and Ifpack are installed in the same directory as NOX.

NOX_PREFIX = /usr/local
LDFLAGS = -L$(NOX_PREFIX)/lib
LIBS = -lnox -lnoxepetra -laztecoo -lifpack -lepetraext -lepetra  -llapack -lblas
CXXFLAGS = -I$(NOX_PREFIX)/include/
Note
If compiling without using the export makefile system, you have to be very careful about which libraries are needed to link against. Enabling configure options typically brings in new library requirements. The export makefile system catches this automatically. Not using export makefiles means YOU will have to catch the additional dependencies.

If you have problems...

If you have problems linking NOX and/or LOCA, please report them using Bugzilla; see Reporting Bugs and Making Enhancement Requests for more information.