201 lines
5.3 KiB
Makefile
Executable File
201 lines
5.3 KiB
Makefile
Executable File
#***************************************************************************
|
|
# Makefile
|
|
# -------------------
|
|
#
|
|
# _________________________________________________________________________
|
|
# Build for the Graphics Utilities
|
|
# _________________________________________________________________________
|
|
#
|
|
# begin : Thu June 9 2005
|
|
# copyright : (C) 2003 by W. Michael Brown
|
|
# email : wmbrown@sandia.gov
|
|
# ***************************************************************************/
|
|
|
|
#Compiler type
|
|
#COMPILER = intel
|
|
COMPILER = gnu
|
|
#COMPILER = mpi
|
|
#COMPILER = mingw
|
|
|
|
#Locations of outside objects relative to a source directory
|
|
HOBJ_DIR = ../obj
|
|
|
|
BIN_DIR = ../bin
|
|
|
|
ALL_DIR = .
|
|
ALL_LIB = $(HOBJ_DIR)/liball.a
|
|
|
|
GRPHICS_DIR = .
|
|
GRPHICS_LIB = $(HOBJ_DIR)/libgraphics.a
|
|
|
|
GRID_DIR = .
|
|
GRID_LIB = $(HOBJ_DIR)/libgrid.a
|
|
|
|
MOL_DIR = .
|
|
MOL_LIB = $(HOBJ_DIR)/libmol.a
|
|
|
|
MATH_DIR = .
|
|
MATH_LIB = $(HOBJ_DIR)/libmath.a
|
|
|
|
EVERY_LIB = $(MOL_LIB) $(GRID_LIB) $(GRPHICS_LIB) $(MATH_LIB) $(ALL_LIB)
|
|
|
|
MOLSIM_DIR = .
|
|
MOLSIM_LIB = $(HOBJ_DIR)/molsim.o $(HOBJ_DIR)/dynmif.o $(HOBJ_DIR)/dynmifq.o
|
|
|
|
# Include directories
|
|
INC = -I$(ALL_DIR) -I$(MOLSIM_DIR) -I$(MOL_DIR) -I$(MATH_DIR) -I$(GRID_DIR) -I$(GRPHICS_DIR)
|
|
|
|
ifeq ($(COMPILER),intel)
|
|
CPP = icpc # C++ Compiler
|
|
CC = icc # C compiler
|
|
AR = xiar #ar
|
|
DBUG = -g -DDEBUG -DNANCHECK #-Wall #-ansi
|
|
OPT = -O2 -xP -ipo -no-prec-div -static
|
|
endif
|
|
|
|
ifeq ($(COMPILER),gnu)
|
|
CPP = g++ # C++ Compiler
|
|
CC = gcc # C compiler
|
|
AR = ar
|
|
DBUG = -g -DDEBUG -DNANCHECK -Wall -pedantic #-ansi
|
|
OPT = #-O3
|
|
endif
|
|
|
|
ifeq ($(COMPILER),mpi)
|
|
CPP = mpic++ -DMUSE_MPI # C++ Compiler
|
|
CC = mpicc -DMUSE_MPI # C compiler
|
|
AR = ar
|
|
DBUG = -g -DDEBUG -DNANCHECK #-Wall #-pedantic #-ansi
|
|
OPT = #-xN -O3 #-ipo -no-prec-div -static #-O3
|
|
endif
|
|
|
|
ifeq ($(COMPILER),mingw)
|
|
CPP = /cygdrive/c/MINGW/bin/g++ # C++ Compiler
|
|
CC = /cygdrive/c/MINGW/bin/gcc # C compiler
|
|
AR = /cygdrive/c/MINGW/bin/ar
|
|
DBUG = #-g -DDEBUG -DNANCHECK -Wall -pedantic #-ansi
|
|
OPT = -O3 -static
|
|
endif
|
|
|
|
# Large file support?
|
|
LFSC = #-D_LARGEFILE_SOURCE `getconf LFS_CFLAGS`
|
|
LFSL = #`getconf LFS_LDFLAGS` `getconf LFS_LIBS`
|
|
|
|
# GNU Scientific Library?
|
|
GSLC = #-DUSEGSL -I/usr/local/include/
|
|
GSLL = #-lgsl -lgslcblas
|
|
|
|
# GA Library?
|
|
LIBGAC = #-DLIBGA -I/usr/local/include/
|
|
LIBGAL = #-lga -L/usr/local/lib/ -Wl,--allow-multiple-definition
|
|
|
|
# Movie frame support?
|
|
MOVIE = #-DMOVIE
|
|
|
|
# VTK ?
|
|
VTKH = #-DUSEVTK -I/usr/local/include/vtk-5.0
|
|
VTKL = #-lvtkWidgets -lvtkHybrid -lvtkVolumeRendering -lvtkRendering -lvtkIO -lvtkGenericFiltering -lvtkGraphics -lvtkImaging -l vtkFiltering -lvtkCommon -L/usr/X11R6/lib/ -lGL -lXt -lSM -lICE -lX11 -lXext -lpthread -ldl
|
|
|
|
CFLAGS = $(OPT) $(MOVIE) $(DBUG) $(INC) $(GSLC) $(LIBGAC) $(VTKH) -c
|
|
LFLAGS = $(OPT)
|
|
LLIBS = $(GSLL) $(LIBGAL) $(LFSL) $(VTKL)
|
|
|
|
# Distribution Directories
|
|
DIST_BIN = /home/wmbrown/distbin/
|
|
DIST_MAN = /home/wmbrown/cpp/manpages/man1/
|
|
DIST_DOC = /home/wmbrown/cpp/doc/
|
|
|
|
OBJ_DIR = $(HOBJ_DIR)
|
|
|
|
# Objects for this project
|
|
THIS_OBJ = $(OBJ_DIR)/asphere_vis.o $(GRPHICS_LIB) $(MATH_LIB) $(ALL_LIB)
|
|
EXECS = $(BIN_DIR)/asphere_vis
|
|
|
|
all: $(EXECS)
|
|
|
|
libraries:
|
|
cd $(ALL_DIR); make; cd $(MATH_DIR); make; cd $(GRID_DIR); make; \
|
|
cd $(GRPHICS_DIR); make;
|
|
|
|
ALL_OBJS = $(OBJ_DIR)/error.o $(OBJ_DIR)/commandline.o \
|
|
$(OBJ_DIR)/misc.o
|
|
|
|
$(OBJ_DIR)/error.o: error.h error.cpp
|
|
$(CPP) $(CFLAGS) -o $@ error.cpp
|
|
|
|
$(OBJ_DIR)/commandline.o: commandline.h commandline.cpp
|
|
$(CPP) $(CFLAGS) -o $@ commandline.cpp
|
|
|
|
$(OBJ_DIR)/misc.o: misc.h misc.cpp
|
|
$(CPP) $(CFLAGS) -o $@ misc.cpp
|
|
|
|
$(ALL_LIB): $(ALL_OBJS)
|
|
$(AR) -crusv $(ALL_LIB) $(ALL_OBJS)
|
|
|
|
GRPHICS_O = $(OBJ_DIR)/colors.o $(OBJ_DIR)/glsurface.o
|
|
|
|
$(OBJ_DIR)/colors.o: colors.h colors.cpp
|
|
$(CPP) $(CFLAGS) -o $@ colors.cpp
|
|
|
|
$(OBJ_DIR)/glsurface.o: glsurface.h glsurface.cpp
|
|
$(CPP) $(CFLAGS) -o $@ glsurface.cpp
|
|
|
|
$(GRPHICS_LIB): $(GRPHICS_O)
|
|
$(AR) -crusv $(GRPHICS_LIB) $(GRPHICS_O)
|
|
|
|
MATH_OBJS = $(OBJ_DIR)/cartesian.o $(OBJ_DIR)/miscm.o \
|
|
$(OBJ_DIR)/spherical.o
|
|
|
|
$(OBJ_DIR)/miscm.o: miscm.h miscm.cpp
|
|
$(CPP) $(CFLAGS) -o $@ miscm.cpp
|
|
|
|
$(OBJ_DIR)/cartesian.o: cartesian.h cartesian.cpp
|
|
$(CPP) $(CFLAGS) -o $@ cartesian.cpp
|
|
|
|
$(OBJ_DIR)/spherical.o: spherical.h spherical.cpp
|
|
$(CPP) $(CFLAGS) -o $@ spherical.cpp
|
|
|
|
$(MATH_LIB): $(MATH_OBJS)
|
|
$(AR) -crusv $(MATH_LIB) $(MATH_OBJS)
|
|
|
|
$(OBJ_DIR)/asphere_vis.o: asphere_vis.cpp
|
|
$(CPP) $(CFLAGS) -o $@ asphere_vis.cpp
|
|
|
|
$(BIN_DIR)/asphere_vis: $(THIS_OBJ)
|
|
$(CPP) $(LFLAGS) -o $@ $(THIS_OBJ) $(LLIBS)
|
|
#
|
|
# Documentation
|
|
#
|
|
manpages: all
|
|
/bin/tcsh make_manpages.sh
|
|
|
|
#
|
|
# Create a .tar distribution file
|
|
#
|
|
dist: all manpages
|
|
/bin/tcsh makedistribution.sh
|
|
|
|
|
|
#
|
|
# INSTALL to Mike's Directories
|
|
install: all manpages
|
|
/bin/cp $(EXECS) $(DIST_BIN); \
|
|
/bin/cp ./manpages/*.1 $(DIST_MAN); \
|
|
/bin/cp ./manpages/*.pdf $(DIST_DOC)
|
|
|
|
|
|
#
|
|
# Remove objects, cores, etc.
|
|
#
|
|
|
|
clean:
|
|
rm -rf $(EXECS) $(THIS_OBJ) $(ALL_OBJ) $(MATH_OBJ) $(GRPHICS_O)
|
|
cd $(OBJ_DIR); rm -f *.o
|
|
|
|
veryclean: clean
|
|
rm -rf *~ ./api ./manpages
|
|
|
|
cleanproject: clean
|
|
cd $(ALL_DIR); make clean; cd $(MATH_DIR); make clean; \
|
|
cd $(GRPHICS_DIR); make clean;
|