63 lines
1.8 KiB
Makefile
63 lines
1.8 KiB
Makefile
# 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/.
|