1# compilers: gnu, pgi 2# modes: debug, profile, optimize 3 4COMPILER=gnu 5MODE=optimize 6 7#gnu c options 8# 9ifeq ($(COMPILER),gnu) 10 CC=gcc 11 CXX=g++ 12 DEPCC=gcc 13 LD=gcc 14 ifeq ($(MODE),optimize) 15 OFLAG=-march=pentiumpro -mcpu=pentiumpro -O6 -ffast-math -malign-double -finline-limit-1000000 -funroll-loops -fstrength-reduce -finline-functions 16 DFLAG= 17 endif 18 19 ifeq ($(MODE),debug) 20 OFLAG= 21 DFLAG=-g 22 endif 23 24 ifeq (($MODE),profile) 25 OFLAG= 26 DFLAG=-g -pg 27 endif 28 29 DEPCFLAGS= 30 CFLAGS=$(OFLAG) $(DFLAG) $(DEPCFLAGS) 31 LDFLAGS= 32 LIBS=$(DFLAG) 33endif 34 35 36 37# pgi cc options 38# 39ifeq (($COMPILER),pgi) 40 CC=pgcc -B 41 CXX=pgCC --pch --no_exceptions 42 DEPCC=gcc 43 LD=pgCC 44 45 ifeq ($(MODE),optimize) 46 OFLAG=-w -tp p6 -fast -O2 -Munroll -Mnoframe -Minline=levels:10 -Mvect=assoc,cachesize:524288,sse -Msafeptr -Msingle 47 DFLAG= 48 endif 49 50 ifeq ($(MODE),debug) 51 OFLAG=-w 52 DFLAG= 53 endif 54 55 ifeq ($(MODE),profile) 56 OFLAG=-w 57 DFLAG=-g -Mprof=lines 58 endif 59 60 DEPCFLAGS= 61 CFLAGS=$(OFLAG) $(DFLAG) $(DEPCFLAGS) 62 LDFLAGS=$(DFLAG) 63 LIBS= 64endif 65 66CXXFLAGS=$(CFLAGS) 67 68 69all: 70 make -f .make 71 72clean: 73 rm -f *.o 74 rm -f *.pch 75 rm -f $(EXTRAO) 76 rm -f $(EXE) 77 78realclean: clean 79 rm -f .targets .make 80 81depend: 82 find . -name '*.c*' | sed 's/\.cpp$$/\.o/g' | sed 's/\.c$$/\.o/g' > .targets 83 echo CC=$(CC) > .make 84 echo CXX=$(CXX) >> .make 85 echo LD=$(LD) >> .make 86 echo CFLAGS=$(CFLAGS) >> .make 87 echo CXXFLAGS=$(CXXFLAGS) >> .make 88 echo LIBS=$(LIBS) >> .make 89 echo $(EXE): `cat .targets` $(EXTRAO) >> .make 90 echo -e \\t$(LD) $(SHARED) $(LDFLAGS) -o $(EXE) `cat .targets` $(EXTRAO) $(LIBS) >> .make 91 echo -e \\t$(POST) >> .make 92 $(DEPCC) $(DEPCFLAGS) -M `find . -name '*.c*'` >> .make 93