# Executable name EXE=gray # Objects list MAINOBJ=gray.o OTHOBJ=conical.o const_and_precisions.o coreprofiles.o dierckx.o dispersion.o \ eccd.o eierf.o graydata_anequil.o graydata_flags.o graydata_par.o \ interp_eqprof.o magsurf_data.o math.o minpack.o numint.o quadpack.o \ reflections.o simplespline.o utils.o beamdata.o # Alternative search paths vpath %.f90 src vpath %.f src # Fortran compiler name and flags FC=gfortran FFLAGS=-O3 #-Wall -g -fcheck=all DIRECTIVES = -DREVISION="'$(shell svnversion src)'" all: $(EXE) # Build executable from object files $(EXE): $(MAINOBJ) $(OTHOBJ) $(FC) $(FFLAGS) -o $@ $^ # Dependencies on modules gray.o: const_and_precisions.o coreprofiles.o dierckx.o dispersion.o eccd.o \ graydata_anequil.o graydata_flags.o graydata_par.o \ interp_eqprof.o magsurf_data.o math.o minpack.o numint.o quadpack.o \ reflections.o simplespline.o utils.o beamdata.o conical.o: const_and_precisions.o coreprofiles.o: const_and_precisions.o dierckx.o graydata_anequil.o \ graydata_flags.o simplespline.o utils.o dierckx.o: const_and_precisions.o dispersion.o: const_and_precisions.o eierf.o math.o quadpack.o eccd.o: const_and_precisions.o conical.o magsurf_data.o dierckx.o numint.o eierf.o: const_and_precisions.o graydata_anequil.o: const_and_precisions.o graydata_flags.o: const_and_precisions.o graydata_par.o: const_and_precisions.o interp_eqprof.o: const_and_precisions.o magsurf_data.o: const_and_precisions.o math.o: const_and_precisions.o minpack.o: const_and_precisions.o numint.o: const_and_precisions.o quadpack.o: const_and_precisions.o reflections.o: const_and_precisions.o utils.o simplespline.o: const_and_precisions.o utils.o: const_and_precisions.o beamdata.o: const_and_precisions.o # General object compilation command %.o: %.f90 $(FC) $(FFLAGS) -c $< %.o: %.f $(FC) $(FFLAGS) -c $< gray.o:gray.f $(FC) -cpp $(DIRECTIVES) $(FFLAGS) -c $< .PHONY: clean install # Remove output files clean: rm -rf *.o *.mod $(EXE) install: @if [ -f $(EXE) ]; then \ cp $(EXE) ~/bin/; \ else \ echo File $(EXE) does not exist. Run \'make\' first; \ fi