Typical "Makefile"s for Various Platforms

Makefile for g++ + blas + lapack

CPP = g++

COMP_FLAGS = -O2 -Wall -Wno-unknown-pragmas #-pg
LINK_FLAGS = -O2 -Wall -Wno-unknown-pragmas #-pg

#MACROS = -DCPPL_VERBOSE -DCPPL_DEBUG

CPPLAPACK_INCLUDE_DIR = $(HOME)/local/lib/cpplapack/include
LAPACK_LIB_DIR = /usr/local/lib/LAPACK
BLAS_LIB_DIR = /usr/local/lib/BLAS

INCLUDE_DIRS = -I$(CPPLAPACK_INCLUDE_DIR)
LIB_DIRS = -L$(LAPACK_LIB_DIR) -L$(BLAS_LIB_DIR)

LIBS = -llapack -lblas -lg2c -lm #-lefence
OBJECTS = main.o

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

A.OUT: $(OBJECTS)
  $(CPP) $(OBJECTS) $(LINK_FLAGS) $(LIB_DIRS) $(LIBS) -o $@

.SUFFIXES: .cpp .o

.cpp.o:
  $(CPP) -c $< $(COMP_FLAGS) $(INCLUDE_DIRS) $(MACROS)

do: A.OUT
  ./A.OUT > std 2> err

clean:
  rm -f *~ $(OBJECTS)

fullclean:
  rm -f *~ $(OBJECTS) A.OUT std err 

remake: clean A.OUT


Makefile for g++ + atlas + lapack on Cygwin

#CPP = g++-2
CPP = g++

COMP_FLAGS = -O2 -Wall
LINK_FLAGS = -O2 -Wall

#MACROS = -DCPPL_VERBOSE -DCPPL_DEBUG

CPPLAPACK_INCLUDE_DIR = $(HOME)/local/lib/cpplapack/include
LAPACK_LIB_DIR = $(HOME)/local/lib/LAPACK
BLAS_LIB_DIR = $(HOME)/local/lib/ATLAS

INCLUDE_DIRS = -I$(CPPLAPACK_INCLUDE_DIR)
LIB_DIRS = -L$(LAPACK_LIB_DIR) -L$(BLAS_LIB_DIR)

LIBS = -llapack -lf77blas -latlas -lg2c -lm
OBJECTS = main.o

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

A.OUT: $(OBJECTS)
  $(CPP) $(OBJECTS) $(LINK_FLAGS) $(LIB_DIRS) $(LIBS) -o $@

.SUFFIXES: .cpp .o

.cpp.o:
  $(CPP) -c $< $(COMP_FLAGS) $(INCLUDE_DIRS) $(MACROS)

do: A.OUT
  ./A.OUT > std 2> err

clean:
  rm -f *~ $(OBJECTS)

fullclean:
  rm -f *~ $(OBJECTS) A.OUT std err 

remake: clean A.OUT


Makefile for icc8.1 + mkl7

CPP = LC_ALL=C icc

#COMP_FLAGS = -openmp -O2 -w1 #[is buggy]
#LINK_FLAGS = -O2 -w1 #[is buggy]
COMP_FLAGS = -openmp -O2 -w1 -cxxlib-icc 
LINK_FLAGS = -O2 -w1 -cxxlib-icc

#MACROS = -DCPPL_VERBOSE -DCPPL_DEBUG

CPPLAPACK_INCLUDE_DIR = $(HOME)/local/lib/cpplapack/include
MKL_LIB_DIRS = $(shell echo /opt/intel/mkl*/lib/32)

INCLUDE_DIRS = -I$(CPPLAPACK_INCLUDE_DIR)
LIB_DIRS = -L$(MKL_LIB_DIRS)

#LIBS = -lmkl_lapack -lmkl_ia32 -lguide -lpthread -lstdc++ -lefence #[is buggy]
LIBS = -lmkl_lapack -lmkl_ia32 -lguide -lpthread -lcprts -lunwind #-limf #-lefence

OBJECTS = main.o

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

A.OUT: $(OBJECTS)
  $(CPP) $(OBJECTS) $(LINK_FLAGS) $(LIB_DIRS) $(LIBS) -o $@

.SUFFIXES: .cpp .o

.cpp.o:
  $(CPP) -c $< $(COMP_FLAGS) $(INCLUDE_DIRS) $(MACROS)

do: A.OUT
  ./A.OUT > std 2> err

clean:
  rm -f *~ $(OBJECTS)

fullclean:
  rm -f *~ $(OBJECTS) A.OUT std err 

remake: clean A.OUT


Makefile for icc8 + mkl6

CPP = icc

COMP_FLAGS = -openmp -O2 -w1
LINK_FLAGS = -O2 -w1

#MACROS = -DCPPL_VERBOSE -DCPPL_DEBUG

CPPLAPACK_INCLUDE_DIR = $(HOME)/local/lib/cpplapack/include
MKL_LIB_DIRS = $(shell echo /opt/intel/mkl*/lib/32)
INCLUDE_DIRS = -I$(CPPLAPACK_INCLUDE_DIR)
LIB_DIRS = -L$(MKL_LIB_DIRS)

LIBS = -lmkl_lapack -lmkl_ia32 -lguide -lpthread #-lefence
OBJECTS = main.o

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

A.OUT: $(OBJECTS)
  $(CPP) $(OBJECTS) $(LINK_FLAGS) $(LIB_DIRS) $(LIBS) -o $@

.SUFFIXES: .cpp .o

.cpp.o:
  $(CPP) -c $< $(COMP_FLAGS) $(INCLUDE_DIRS) $(MACROS)

do: A.OUT
  ./A.OUT > std 2> err

clean:
  rm -f *~ $(OBJECTS)

fullclean:
  rm -f *~ $(OBJECTS) A.OUT std err 

remake: clean A.OUT


Makefile for icc7 + mkl5

CPP = icc

COMP_FLAGS = -O2 -w1
#COMP_FLAGS = -openmp -O2 -w1
LINK_FLAGS = -O2 -w1

#MACROS = -DCPPL_VERBOSE -DCPPL_DEBUG

CPPLAPACK_INCLUDE_DIR = $(HOME)/local/lib/cpplapack/include
ICC_INCLUDE_DIR = /opt/intel/compiler70/ia32/include
MKL_LIB_DIR = $(shell echo /opt/intel/mkl*/lib/32)

INCLUDE_DIRS = -I$(ICC_INCLUDE_DIR) -I$(CPPLAPACK_INCLUDE_DIR)
LIB_DIRS = -L$(MKL_LIB_DIR)

LIBS = -lmkl_lapack -lmkl -lguide -lF90
OBJECTS = main.o

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

A.OUT: $(OBJECTS)
  $(CPP) $(OBJECTS) $(LINK_FLAGS) $(LIB_DIRS) $(LIBS) -o $@

.SUFFIXES: .cpp .o

.cpp.o:
  $(CPP) -c $< $(COMP_FLAGS) $(INCLUDE_DIRS) $(MACROS)

do: A.OUT
  ./A.OUT > std 2> err

clean:
  rm -f *~ $(OBJECTS)

fullclean:
  rm -f *~ $(OBJECTS) A.OUT std err 

remake: clean A.OUT


Makefile for ecc + mkl

CPP = ecc

COMP_FLAGS = -O2 -w1
LINK_FLAGS = -O2 -w1

#MACROS = -DCPPL_VERBOSE -DCPPL_DEBUG

CPPLAPACK_INCLUDE_DIR = $(HOME)/local/lib/cpplapack/include
ECC_INCLUDE_DIR = /opt/intel/compiler70/ia64/include
MKL_LIB_DIR = /opt/intel/mkl/lib/64/

INCLUDE_DIRS = -I$(ECC_INCLUDE_DIR) -I$(CPPLAPACK_INCLUDE_DIR)
LIB_DIRS = -L$(MKL_LIB_DIR)

LIBS = -lmkl_lapack -lmkl -lguide -lF90
OBJECTS = main.o

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

A.OUT: $(OBJECTS)
  $(CPP) $(OBJECTS) $(LINK_FLAGS) $(LIB_DIRS) $(LIBS) -o $@

.SUFFIXES: .cpp .o

.cpp.o:
  $(CPP) -c $< $(COMP_FLAGS) $(INCLUDE_DIRS) $(MACROS)

do: A.OUT
  ./A.OUT > std 2> err

clean:
  rm -f *~ $(OBJECTS)

fullclean:
  rm -f *~ $(OBJECTS) A.OUT std err 

remake: clean A.OUT


Makefile for cxx + cxml on Linux

CPP = cxx

#COMP_FLAGS = -D__USE_STD_IOSTREAM -tune host -arch host -fast -O4 -Wall
COMP_FLAGS = -D__USE_STD_IOSTREAM -omp -tune host -arch host -fast -O4 -Wall
LINK_FLAGS = -D__USE_STD_IOSTREAM -omp -Wall

#MACROS = -DCPPL_VERBOSE -DCPPL_DEBUG

CPPLAPACK_INCLUDE_DIR = $(HOME)/local/lib/cpplapack/include

INCLUDE_DIRS = -I$(CPPLAPACK_INCLUDE_DIR)
LIB_DIRS =

LIBS = -lcxml -lcpml
OBJECTS = main.o

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

A.OUT: $(OBJECTS)
  $(CPP) $(OBJECTS) $(LINK_FLAGS) $(LIB_DIRS) $(LIBS) -o $@

.SUFFIXES: .cpp .o

.cpp.o:
  $(CPP) -c $< $(COMP_FLAGS) $(INCLUDE_DIRS) $(MACROS)

do: A.OUT
  ./A.OUT > std 2> err

clean:
  rm -f *~ $(OBJECTS)

fullclean:
  rm -f *~ $(OBJECTS) A.OUT std err 

remake: clean A.OUT


Makefile for cxx + cxml on Alpha with MP

#please set OMP_NUM_THREAD ?
CPP = cxx

COMP_FLAGS = -D__USE_STD_IOSTREAM -omp -tune host -arch host -fast -O4 -Wall
LINK_FLAGS = -D__USE_STD_IOSTREAM -omp -Wall

#MACROS = -DCPPL_VERBOSE -DCPPL_DEBUG

CPPLAPACK_INCLUDE_DIR = $(HOME)/local/lib/cpplapack/include

INCLUDE_DIRS = -I$(CPPLAPACK_INCLUDE_DIR)
LIB_DIRS = 

LIBS = -lcxml
OBJECTS = main.o

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

A.OUT: $(OBJECTS)
  $(CPP) $(OBJECTS) $(LINK_FLAGS) $(LIB_DIRS) $(LIBS) -o $@

.SUFFIXES: .cpp .o

.cpp.o:
  $(CPP) -c $< $(COMP_FLAGS) $(INCLUDE_DIRS) $(MACROS)

do: A.OUT
  ./A.OUT > std 2> err

clean:
  rm -f *~ $(OBJECTS)

fullclean:
  rm -f *~ $(OBJECTS) A.OUT std err 

remake: clean A.OUT


Makefile for sxc++ + MathKeisan

CPP = sxc++
#CPP = c++

COMP_FLAGS = 
LINK_FLAGS = 

#MACROS = -DCPPL_VERBOSE -DCPPL_DEBUG

CPPLAPACK_INCLUDE_DIR = $(HOME)/local/lib/cpplapack/include

INCLUDE_DIRS = -I$(CPPLAPACK_INCLUDE_DIR)
LIB_DIRS = 

LIBS = -lblas_64 -lf90sxe -li90sxe
OBJECTS = main.o

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

A.OUT: $(OBJECTS)
  $(CPP) $(OBJECTS) $(LINK_FLAGS) $(LIB_DIRS) $(LIBS) -o $@

.SUFFIXES: .cpp .o

.cpp.o:
  $(CPP) -c $< $(COMP_FLAGS) $(INCLUDE_DIRS) $(MACROS)

do: A.OUT
  ./A.OUT > std 2> err

clean:
  rm -f *~ $(OBJECTS)

fullclean:
  rm -f *~ $(OBJECTS) A.OUT std err 

remake: clean A.OUT


Makefile for CC + SCSL with MP

CPP = CC

#COMP_FLAGS = -n32 -Ofast -LANG:std
COMP_FLAGS = -mp -n32 -Ofast -LANG:std
LINK_FLAGS = -mp -n32 -Ofast -LANG:std

#MACROS = -DCPPL_VERBOSE -DCPPL_DEBUG

CPPLAPACK_INCLUDE_DIR = $(HOME)/local/lib/cpplapack/include

INCLUDE_DIRS = -I$(CPPLAPACK_INCLUDE_DIR)
LIB_DIRS = 

#LIBS = -lscs -lfastm -lm
LIBS = -lscs_mp -lfastm -lm
OBJECTS = main.o

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

A.OUT: $(OBJECTS)
  $(CPP) $(OBJECTS) $(LINK_FLAGS) $(LIB_DIRS) $(LIBS) -o $@

.SUFFIXES: .cpp .o

.cpp.o:
  $(CPP) -c $< $(COMP_FLAGS) $(INCLUDE_DIRS) $(MACROS)

do: A.OUT
  ./A.OUT > std 2> err

clean:
  rm -f *~ $(OBJECTS)

fullclean:
  rm -f *~ $(OBJECTS) A.OUT std err 

remake: clean A.OUT


Makefile for cl(VC++) + clapack on Windows

[See How to compile with VC++ on Windows also.]
CPP = cl.exe

COMP_FLAGS = /nologo /EHsc /w /MD
LINK_FLAGS = /link /nologo

#MACROS = -DCPPL_VERBOSE -DCPPL_DEBUG

INCLROOT=C:\lib\cpplapack\cpplapack
CPPLAPACK_INCLUDE_DIR = "$(INCLROOT)\include"
INCLUDE_DIRS = /I $(CPPLAPACK_INCLUDE_DIR) 

LIBSROOT=C:\lib\CLAPACK3-Windows
LIBS = "$(LIBSROOT)\clapack\Release\clapack.lib" "$(LIBSROOT)\clapack\BLAS\Release\blas.lib"

OBJECTS = main.obj

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

A.EXE: $(OBJECTS)
  $(CPP) $(OBJECTS) /o $@ $(LINK_FLAGS) $(LIBS)

.SUFFIXES: .cpp .obj

.cpp.obj:
  $(CPP) /c $(COMP_FLAGS) $(INCLUDE_DIRS) $<

do: A.OUT
  .\A.EXE > std 2> err

clean:
  del $(OBJECTS)

fullclean:
  del $(OBJECTS) A.EXE std err 

remake: clean A.EXE

Generated on Fri Mar 25 17:28:29 2005 for CPPLapack by  doxygen 1.4.1