# Makefile for trimspNL # # 17-Jun-2002 TP, use standard f77 code; use ranlux random number # generator of the CERN mathlib # 4-Feb-2013 ZS, clean up makefile and include random number generator # in the code. Use gfortran which is now a standard part of gcc. # 18-Jun-2026 ZS, add explicit release/debug/profile build modes. # 19-Jun-2026 ZS, add optional random number generators to improve speed FC = gfortran PROGRAM = trimspNL SOURCE = trimspNL.F CC = gcc # Common fixed-form Fortran settings. # .F files are preprocessed by gfortran; keep -std=gnu for legacy code. # -ffixed-line-length-none avoids accidental truncation after column 72. DIALECT = -std=gnu COMMON_FLAGS = $(DIALECT) -ffixed-line-length-none -mcmodel=medium WARN = DEBUG = OPT = -O3 prefix ?= /usr/local CFLAGS ?= -O3 -Wall -Wextra RNG_OBJS = rng_pcg32.o rng_xoshiro256starstar.o FCFLAGS = $(COMMON_FLAGS) $(WARN) $(DEBUG) $(OPT) PROFILE_FLAGS = $(COMMON_FLAGS) $(WARN) -O0 -g -pg \ -fno-omit-frame-pointer DEBUG_FLAGS = $(COMMON_FLAGS) -O0 -g -Wall -Wextra -Wsurprising \ -fcheck=all -fbacktrace -ffpe-trap=invalid,zero,overflow all: release release : $(PROGRAM) $(PROGRAM) : $(SOURCE) $(RNG_OBJS) $(FC) $(FCFLAGS) -o $@ trimspNL.F $(RNG_OBJS) rng_pcg32.o : rng_pcg32.c $(CC) $(CFLAGS) -c -o $@ $< rng_xoshiro256starstar.o : rng_xoshiro256starstar.c $(CC) $(CFLAGS) -c -o $@ $< $(PROGRAM)-debug : $(SOURCE) $(RNG_OBJS) $(FC) $(DEBUG_FLAGS) -o $@ $(SOURCE) $(RNG_OBJS) $(PROGRAM)-profile : $(SOURCE) $(RNG_OBJS) $(FC) $(PROFILE_FLAGS) -o $@ trimspNL.F $(RNG_OBJS) $(PROGRAM)-static : $(SOURCE) $(RNG_OBJS) $(FC) $(FCFLAGS) -static -o $@ trimspNL.F $(RNG_OBJS) clean: rm -f *.o *~ \#* .#* trimspNL trimspNL-debug trimspNL-profile \ trimspNL-static gmon.out install: mv $(PROGRAM) $(prefix)/bin/.