CPPLapack
|
############################################################################### ## Makefile ## ############################################################################### A.OUT = A.OUT ############################################################################### include $(HOME)/local/cpplapack/makefiles/Makefile.g++ ############################################################################### HEADERS:= $(shell find ./ -iname '*.hpp') SOURCES:= $(shell find ./ -iname '*.cpp') SOURCES:= $(sort $(SOURCES)) OBJECTS:= $(SOURCES:%.cpp=%.o) THIS_FILE:= $(firstword $(MAKEFILE_LIST)) ############################################################################### ############################################################################### ############################################################################### release: depend @echo -e "##################################" @echo -e "#### building in release mode ####" @echo -e "##################################\n" @$(MAKE) -f $(THIS_FILE) --no-print-directory build RELEASE=1 profile: depend @echo -e "##################################" @echo -e "#### building in profile mode ####" @echo -e "##################################\n" @$(MAKE) -f $(THIS_FILE) --no-print-directory build PROFILE=1 debug: depend @echo -e "################################" @echo -e "#### building in debug mode ####" @echo -e "################################\n" @$(MAKE) -f $(THIS_FILE) --no-print-directory build DEBUG=1 verbose: depend @echo -e "##################################" @echo -e "#### building in verbose mode ####" @echo -e "##################################\n" @$(MAKE) -f $(THIS_FILE) --no-print-directory build DEBUG=1 VERBOSE=1 ############################################################################### .SUFFIXES: .cpp .o .cpp.o: $(CXX) -c $< $(CFLAGS) $(INCLUDE_DIRS) $(MACROS) -o $@ @echo build: $(OBJECTS) $(CXX) $(OBJECTS) $(LFLAGS) $(LIB_DIRS) $(LIBS) -o $(A.OUT) @echo ############################################################################### depend: makedepend -f- -Y $(SOURCES) > Makefile.depend 2> /dev/null # gccmakedep -- -I./ -MM -- $(SOURCES) # $(CXX) -MM -I./ $(SOURCES) > Makefile.depend # $(CXX) -MM $(INCLUDE_DIRS) $(SOURCES) > Makefile.depend @echo clean: rm -f $(OBJECTS) fullclean: rm -f $(shell find -name '*.o') Makefile.depend std err $(A.OUT) remake: clean all ############################################################################### -include Makefile.depend
############################################################################### ## Makefile.g++ ## ############################################################################### ####################################### ############### common ################ ####################################### CXX = g++ ######## FLAGS ######## FLAGS += -O2 -funroll-loops #### -O3 is dangerous FLAGS += -ffast-math -fno-math-errno #-mfpmath=sse FLAGS += -fprefetch-loop-arrays -fstrength-reduce -malign-double #FLAGS += -std=c++0x # -std=c++98 FLAGS += -msse4.2 #-march=corei7 #FLAGS += -msse4.1 #-march=core2 ####FLAGS += -fforce-addr -falign-functions=4 -ftree-vectorize -ftree-vectorizer-verbose=5 -funsafe-loop-optimizations -Wunsafe-loop-optimizations #FLAGS += -fopenmp ######## LFLAGS ######## LFLAGS = $(FLAGS) #LFLAGS += -static ######## CFLAGS ######## CFLAGS = $(FLAGS) CFLAGS += -Wall -Wno-unknown-pragmas -Wextra -Wshadow -ftree-vectorizer-verbose=0 ##CFLAGS += --param large-function-growth=99999 --param max-inline-insns-single=99999 --param inline-unit-growth=99999 -Winline ####CFLAGS += -fimplement-inlines -finline-limit=0 --param large-function-growth=0 --param max-inline-insns-single=0 --param inline-unit-growth=0 ######## others ######## INCLUDE_DIRS = -I./ -I$(HOME)/local/cpplapack/include LIB_DIRS = #LIBS = /usr/lib/sse2/liblapack.a /usr/lib/sse2/libblas.a -lm -lgfortran LIBS = -llapack -lblas -lgfortran -lm #LIBS = -llapack $(HOME)/local/ATLAS/libatlas.a -lgfortran -lm LIBS += -lboost_filesystem MACROS = ####################################### ############ release mode ############# ####################################### ifdef RELEASE CFLAGS += -fomit-frame-pointer LFLAGS += -fomit-frame-pointer endif ####################################### ############ profile mode ############# ####################################### ifdef PROFILE CFLAGS += -pg #-g LFLAGS += -pg #-g endif ####################################### ############## debug mode ############# ####################################### ifdef DEBUG FLAGS = -g -O0 CFLAGS = $(FLAGS) -Wall -Wno-unknown-pragmas -Wextra -Wshadow -fstack-protector-all -fbounds-check -ftrapv -ftrapping-math #-mfp-trap-mode=sui #-ffpe-trap=invalid,zero,overflow,underflow LFLAGS = $(FLAGS) MACROS += -DDEBUG MACROS += -DCPPL_DEBUG endif ####################################### ############ verbose mode ############# ####################################### ifdef VERBOSE MACROS += -DVERBOSE MACROS += -DCPPL_VERBOSE endif
#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
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
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
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
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
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
#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
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
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
[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