SNIFF_MAKEDIR = .sniffdir # Include the list of object files include ofiles.incl #------------------------ platform dependencies ------------------------------------- # where is the parSA package situated? PARSAHOME = .. PARSALIB_PATH = $(PARSAHOME)/lib PARSAINC_PATH = $(PARSAHOME)/include # choose one of solaris, linux, linuxhome #ARCH = solaris ARCH = $(shell uname) # number to indicate the system version #VERS = _2_6 RELEASE = $(shell uname -r | awk -F- '{print "_"$$1}') VERS = $(subst .,_,$(RELEASE)) # set an environment variable MPI to YES to produce parallel version MPI = YES ifeq ($(MPI), YES) MPIDEFINE = -DMPI endif #--------------------------- #--------- ScaMPI ---------- #--------------------------- ifeq ($(ARCH) , ScaMPI) MPI_HOME = /opt/scali MPILIB_LIST = -ldbfork -lmpi -lsocket -lnsl MPIINC_PATH = $(MPI_HOME)/include STDLIB_PATH = -L/local/gnu/lib STDLIB_LIST = -lm #-lstdc++ STDINC_PATH = endif #--------------------------- #--------- SOLARIS --------- #--------------------------- ifeq ($(ARCH) , solaris) MPI_HOME = /usr/local/mpich1.2/mpi_solaris MPI_ARCH = solaris MPI_CHANELL = ch_p4 MPILIB_PATH = $(MPI_HOME)/lib MPILIB_LIST = -lmpich -lsocket -lnsl MPIINC_PATH = $(MPI_HOME)/build/$(MPI_ARCH)/$(MPI_CHANELL)/include $(MPI_HOME)/include # MPIINC_PATH = -I$(MPI_HOME)/include MPE_DIR = $(MPIR_HOME)/$(ARCH) MPE_LIBS = #-lmpe MPE_GRAPH = STDLIB_PATH = -L/local/gnu/lib STDLIB_LIST = -lm #-lstdc++ STDINC_PATH = endif #--------------------------- #---- LINUX ---------------- #--------------------------- ifeq ($(ARCH) , Linux) MPI_HOME = /usr/local/mpich-1.2.6 MPI_ARCH = Linux MPI_CHANELL = ch_p4 MPILIB_PATH = $(MPI_HOME)/lib MPILIB_LIST = -lpmpich++ -lmpich #-lsocket -lnsl MPIINC_PATH = $(MPI_HOME)/include # $(MPI_HOME)/build/$(MPI_ARCH)/$(MPI_CHANELL)/include MPE_DIR = $(MPIR_HOME)/$(ARCH) MPE_LIBS = -lmpe MPE_GRAPH = STDLIB_PATH = -L/usr/local/list STDLIB_LIST = -lm #-lstdc++ STDINC_PATH = # PARSAHOME = /home/parsa/parSA endif ifdef MPIDEFINE OSLIB_PATH = $(MPILIB_PATH) $(STDLIB_PATH) $(PARSALIB_PATH) OSLIB_LIST = -lparSA_$(ARCH)$(VERS) $(MPILIB_LIST) $(STDLIB_LIST) #SOLARIS !!! OSINC_PATH = $(MPIINC_PATH) $(PARSAINC_PATH) else OSLIB_PATH = $(STDLIB_PATH) $(PARSALIB_PATH) OSLIB_LIST = -lseqSA_$(ARCH)$(VERS) $(STDLIB_LIST) OSINC_PATH = $(PARSAINC_PATH) endif #------------------------ platform dependencies ------------------------------------- DEFINES = -D_GNU $(MPIDEFINE) # # ----- C++ compiler ifeq ($(PURIFY) , ON) PURIFYCMD = purify -best-effort -cache-dir=/var/tmp/taiko endif PROFILE = # -pg CXX = $(PURIFYCMD) g++ $(PROFILE) #CXX = CC # ----- C++ flags #OPTFLAGS = -Winline -O2 -fomit-frame-pointer -g #OPTFLAGS = -fbounds-checking -g OPTFLAGS = -g #OPTFLAGS = -O3 #CXXFLAGS = -fno-implicit-templates -DHAVE_STDLIB_H=1 $(OPTFLAGS) $(INCLUDE_DIR) $(DEFINES) -D_REENTRANT CXXFLAGS = -DHAVE_STDLIB_H=1 $(OPTFLAGS) $(DEFINES) -D_REENTRA # program for linking an executable LINK = $(CXX) LIB_LIST = $(OSLIB_LIST) # ----- the target TARGET = PARSA_Example_$(ARCH)$(VERS) INC_PATH = -I.. -I. $(addprefix -I,$(OSINC_PATH)) LIB_PATH = $(addprefix -L,$(OSLIB_PATH)) $(TARGET) : $(OFILES) # $(PARSALIB_PATH)/libparSA_$(ARCH)$(VERS).a # $(PARSALIBPATH)/libseqSA_$(ARCH)$(VERS).a $(CXX) $(LDFLAGS) $(CXXFLAGS) $(INC_PATH) $(LIB_PATH) $(LIB_LIST) $(OFILES) -o $(TARGET) chmod 755 $(TARGET) #./$(TARGET) | more .SUFFIXES : .cc .h .o .cc.o: $(CXX) $(INC_PATH) $(CXXFLAGS) $(OTHER_CXXFLAGS) -c $*.cc -o $*.o clean: rm *.o gmake