# Makefile for the ROOT test programs. # This Makefile shows nicely how to compile and link applications # using the ROOT libraries on all supported platforms. # # Copyright (c) 2000 Rene Brun and Fons Rademakers # # Author: Fons Rademakers, 29/2/2000 #ROOTSYS = ../../../.. include $(ROOTSYS)/etc/Makefile.arch include $(ROOTSYS)/config/Makefile.config #------------------------------------------------------------------------------ # ifeq ($(PLATFORM),macosx) # #unroll loop better on gcc > 4 #CXXFLAGS+= -O3 -g # endif AVXCXXFLAG := -mavx SIMDCXXFLAGS := -mavx -msse4.2 -msse4.1 -msse4a -mssse3 -msse3 -msse2 #VCFLAGS := -fabi-version=0 -Wno-unused-function USEVC=1 CXXFLAGS+= $(VCFLAGS) ifeq ($(NOAVX),) CXXFLAGS+= $(AVXCXXFLAG) LDFLAGS += $(AVXCXXFLAG) endif #CXXFLAGS+= -O3 #CXXFLAGS+= --fast-math #CXXFLAGS += -ftree-vectorize ifneq ($(AUTOVEC),) CXXFLAGS+= -ftree-vectorize endif ifneq ($(FASTM),) CXXFLAGS+= -O3 -ffast-math -ftree-vectorize -Ofast LDFLAGS+= -O3 -ffast-math -ftree-vectorize -Ofast endif #CXXFLAGS+= -ftree-vectorizer-verbose=2 ifneq ($(USEVC),) CXXFLAGS+= -DUSE_VC EXTRALIBS += $(ROOTSYS)/lib/libVc.a ifneq ($(VCSCALAR),) CXXFLAGS+= -DVC_IMPL=Scalar endif endif ifneq ($(USEVDT),) CXXFLAGS+= -DUSE_VDT -I/home/data/moneta/vdt_trunk/include ifeq ($(NOAVX),) EXTRALIBS += -L/home/data/moneta/vdt_trunk/lib-avx -lvdt else EXTRALIBS += -L/home/data/moneta/vdt_trunk/lib-sse -lvdt endif endif ifneq ($(DEBUG),) CXXFLAGS += -g -DDEBUG endif LIBS = -L$(ROOTSYS)/lib -lCore -lCint -lMathCore -lMatrix -lGenVector VECTOROPOBJ = vectorOperation.$(ObjSuf) VECTOROPSRC = vectorOperation.$(SrcSuf) VECTOROP = vectorOperation$(ExeSuf) OBJS = $(VECTOROPOBJ) PROGRAMS = $(VECTOROP) .SUFFIXES: .$(SrcSuf) .$(ObjSuf) $(ExeSuf) $(VECTOROP): $(VECTOROPOBJ) $(LD) $(LDFLAGS) $^ $(LIBS) $(EXTRALIBS) $(OutPutOpt)$@ @echo "$@ done" vc: clean usevc all @echo "compiled for VC" novc: clean all @echo "compiled without VC" check: all for prog in $(PROGRAMS); do \ ./$$prog > $$prog.out; \ done; clean: @rm -f $(OBJS) $(PROGRAMS) distclean: clean @rm -f $(PROGRAMS) .SUFFIXES: .$(SrcSuf) .$(SrcSuf).$(ObjSuf): $(CXX) $(CXXFLAGS) -c $<