Page MenuHomec4science

Makefile
No OneTemporary

File Metadata

Created
Mon, Nov 4, 23:43

Makefile

#***************************************************************************
# 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 = -O2 -g -Wall #-DDEBUG -DNANCHECK -Wall -pedantic #-ansi
OPT = #-O3 -g -Wall
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: paths $(EXECS)
paths: $(HOBJ_DIR) $(BIN_DIR)
$(HOBJ_DIR) $(BIN_DIR):
mkdir $@
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;

Event Timeline