# Makefile for SOFTSUSY library and test program - old school version # Ben Allanach .KEEP_STATE: # Choose your c++ compiler here: if you want to use the link to fortran, # it's probably going to have to be g++ on linux CC=g++ # fortran compiler and linker to C: pick the relevant one for your system .Sometimes g77-34 works. #FF= g77 #LFC= -lg2c FF= gfortran LFC= -lgfortran .SUFFIXES: .o .cpp .h .f .F .PRECIOUS: .cpp .h .f .F libsoft.a #Optimisation level, eg: -O2 -march=i686, speeds by a factor of 2 on my machine OPT= #OR debug level: -g(n=1,2,3) DEBUG= CFLAGS= -I. -L. $(DEBUG) $(OPT) .cpp.o: $(CC) -c $(CFLAGS) $< .cpp.a: $(CC) -c $(CFLAGS) $< ar r $@ $*.o; rm $*.o .f.o: $(FF) $(OPT) -c $< .f.a: $(FF) $(OPT) -c $< ar r $@ $*.o; rm $*.o # Chooses whether to use ranlib - not if your system is a linux one all: softsusy.x softpoint.x case `uname` in \ Linux) RANL=;;\ OSF1) CFLAGS="$(CFLAGS) -ieee";;\ *) RANL="ranlib libnr.a";;\ esac # Example C++ Softsusy calling program softsusy.x: Makefile main.o libsoft.a $(CC) -o softsusy.x $(CFLAGS) main.o -lm -lsoft $(LFC);\ touch softsusy.x # Command-line program interface softpoint.x: Makefile softpoint.o libsoft.a $(CC) -o softpoint.x $(CFLAGS) softpoint.o -lm -lsoft $(LFC);\ touch softpoint.x # Example R-parity violating calling program rpvsoftsusy.x: Makefile rpvmain.o libsoft.a $(CC) -o rpvsoftsusy.x $(CFLAGS) rpvmain.o -lm -lsoft $(LFC);\ touch softpoint.x # twoloop higgs not deleted because it takes so long to compile clean: rm *.x *.o *.a libsoft.a: libsoft.a(rge.o) libsoft.a(utils.o) \ libsoft.a(linalg.o) libsoft.a(lowe.o) \ libsoft.a(susy.o) libsoft.a(softsusy.o) \ libsoft.a(numerics.o) libsoft.a(def.o) \ libsoft.a(physpars.o) libsoft.a(softpars.o) libsoft.a(twoloophiggs.o) \ libsoft.a(rpvsusypars.o) libsoft.a(rpvsoft.o) libsoft.a(tensor.o) \ libsoft.a(flavoursoft.o) $(RANL) backup: uufiles < .backupinstructions; softpoint.o: softpoint.cpp mycomplex.h def.h linalg.h lowe.h rge.h softsusy.h softpars.h physpars.h susy.h utils.h flavoursoft.h numerics.h rpvsoft.h tensor.h rpvsusypars.h twoloophiggs.h main.o: main.cpp mycomplex.h def.h linalg.h lowe.h rge.h softsusy.h softpars.h susy.h utils.h numerics.h rpvmain.o: rpvmain.cpp rpvmain.h mycomplex.h def.h linalg.h lowe.h rge.h softsusy.h \ softpars.h susy.h utils.h numerics.h rpvsoft.h rpvsusypars.h libsoft.a(numerics.o): numerics.cpp numerics.h utils.h mycomplex.h linalg.h def.h twoloophiggs.h libsoft.a(rge.o): rge.cpp rge.h def.h utils.h linalg.h numerics.h libsoft.a(softpars.o): softpars.cpp softpars.h susy.h def.h linalg.h utils.h \ numerics.h libsoft.a(def.o): def.cpp def.h libsoft.a(physpars.o): physpars.cpp physpars.h linalg.h libsoft.a(utils.o): utils.cpp utils.h linalg.h libsoft.a(linalg.o): linalg.cpp linalg.h utils.h libsoft.a(lowe.o): lowe.cpp lowe.h linalg.h rge.h def.h libsoft.a(susy.o): susy.cpp susy.h lowe.h utils.h libsoft.a(utils.o): utils.cpp utils.h linalg.h def.h libsoft.a(softsusy.o): softsusy.cpp softsusy.h numerics.h physpars.h \ softpars.h twoloophiggs.h libsoft.a(twoloopshiggs.o): twoloophiggs.f twoloophiggs.h libsoft.a(flavoursoft.o): flavoursoft.h flavoursoft.cpp libsoft.a(rpvsoft.o): rpvsoft.h rpvsoft.cpp softsusy.h linalg.h rpvsusypars.h libsoft.a(tensor.o): tensor.h tensor.cpp rge.h lowe.h susy.h linalg.h libsoft.a(rpvsusypars.o): rpvsusypars.cpp rpvsusypars.h linalg.h tensor.h