[modes] modes = static-gnu static-gnu-debug static-intel static-intel-debug shared-gnu shared-gnu-debug shared-intel shared-intel-debug tests-gnu tests-gnu-debug tests-intel tests-intel-debug [common-variables] $MOD_FILE = json_module.F90 $FORD_FILE = json-fortran.md $STATIC_LIB = libjsonfortran.a $SHARED_LIB = libjsonfortran.so $OPTIMIZE = -O2 $CSTATIC_GNU = -c -fbacktrace -Wall -Wextra -Wno-maybe-uninitialized -Wno-unused-function -pedantic -std=f2008ts $DEBUG_GNU = -O0 -g3 -Warray-bounds -Wcharacter-truncation -Wline-truncation -Wimplicit-interface -Wimplicit-procedure -Wunderflow -fcheck=all -fmodule-private -ffree-line-length-132 -fimplicit-none -fbacktrace -fdump-core -finit-real=nan -std=f2008ts -fall-intrinsics $CSTATIC_INT = -c -std15 $DEBUG_INT = -O0 -debug all -check all -warn all -extend-source 132 -traceback -gen-interfaces -fpe-all=0 -fp-stack-check -fstack-protector-all -ftrapuv -no-ftz -std15 $EXCLUDE_DIRS = ./src/tests/introspection ./visual_studio/jsonfortrantest # modes templates [template-static] cflags_heritage = True build_dir = ./lib/ mod_dir = ./mod/ obj_dir = ./obj/ src = ./src/ colors = True quiet = False log = False jobs = 2 mklib = static target = $MOD_FILE output = $STATIC_LIB exclude_dirs = $EXCLUDE_DIRS [template-shared] cflags_heritage = True build_dir = ./lib/ mod_dir = ./mod/ obj_dir = ./obj/ src = ./src/ colors = True quiet = False log = False jobs = 2 mklib = shared target = $MOD_FILE output = $SHARED_LIB exclude_dirs = $EXCLUDE_DIRS [template-tests] cflags_heritage = True build_dir = ./bin/ mod_dir = ./mod/ obj_dir = ./obj/ src = ./src/ colors = True quiet = False log = False jobs = 2 exclude_dirs = $EXCLUDE_DIRS # main modes # library [static-gnu] description = Build library with GNU gfortran by optimized-static flags compiler = gnu cflags = $CSTATIC_GNU $OPTIMIZE template = template-static [static-gnu-debug] description = Build library with GNU gfortran by debug-static flags compiler = gnu cflags = $CSTATIC_GNU $DEBUG_GNU template = template-static [static-intel] description = Build library with Intel Fortran by optimized-static flags compiler = intel cflags = $CSTATIC_INT $OPTIMIZE template = template-static [static-intel-debug] description = Build library with Intel Fortran by debug-static flags compiler = intel cflags = $CSTATIC_INT $DEBUG_INT template = template-static [shared-gnu] description = Build library with GNU gfortran by optimized-shared flags compiler = gnu cflags = $CSTATIC_GNU $OPTIMIZE template = template-shared [shared-gnu-debug] description = Build library with GNU gfortran by debug-shared flags compiler = gnu cflags = $CSTATIC_GNU $DEBUG_GNU template = template-shared [shared-intel] description = Build library with Intel Fortran by optimized-shared flags compiler = intel cflags = $CSTATIC_INT $OPTIMIZE template = template-shared [shared-intel-debug] description = Build library with Intel Fortran by debug-shared flags compiler = intel cflags = $CSTATIC_INT $DEBUG_INT template = template-shared # test programs [tests-gnu] description = Build all tests with GNU gfortran by optimized-static flags compiler = gnu cflags = $CSTATIC_GNU $OPTIMIZE template = template-tests [tests-gnu-debug] description = Build all tests with GNU gfortran by debug-static flags compiler = gnu cflags = $CSTATIC_GNU $DEBUG_GNU template = template-tests [tests-intel] description = Build all tests with Intel Fortran by optimized-static flags compiler = intel cflags = $CSTATIC_INT $OPTIMIZE template = template-tests [tests-intel-debug] description = Build all tests with Intel Fortran by debug-static flags compiler = intel cflags = $CSTATIC_INT $DEBUG_INT template = template-tests # auxiliary rules [rule-makedoc] help = Rule for building documentation from source files rule_1 = ford $FORD_FILE [rule-tests] help = Rule for running the test programs rule_1 = (cd bin GLOBIGNORE='*.*' ls jf_test_* | sed 's/^\([^0-9]*\)\([0-9]*\)/\1 \2/' | sort -k2,2n | tr -d ' ' | while read TEST; do echo "" echo "Running ${TEST}" "./${TEST}" done)