diff --git a/src/tools/Makefile b/src/tools/Makefile new file mode 100644 index 0000000..970589a --- /dev/null +++ b/src/tools/Makefile @@ -0,0 +1,33 @@ +# Universal makefile for single C++ program +# +# Use gcc flag -MMD (user) or -MD (user/system) to generate dependencies among source files. +# Use make default rules for commonly used file-name suffixes and make variables names. +# +# % make [ a.out ] + +########## Variables ########## + +CXX = g++ # compiler +CXXFLAGS = -std=c++20 -g -Wall -MMD # compiler flags +MAKEFILE_NAME = ${firstword ${MAKEFILE_LIST}} # makefile name + +SOURCES = $(wildcard *.cc) # source files (*.cc) +OBJECTS = ${SOURCES:.cc=.o} # object files forming executable +DEPENDS = ${OBJECTS:.o=.d} # substitute ".o" with ".d" +EXEC = a.out # executable name + +########## Targets ########## + +.PHONY : clean # not file names + +${EXEC} : ${OBJECTS} # link step + ${CXX} ${CXXFLAGS} $^ -o $@ # additional object files before $^ + +${OBJECTS} : ${MAKEFILE_NAME} # OPTIONAL : changes to this file => recompile + +# make implicitly generates rules to compile C++ files that generate .o files + +-include ${DEPENDS} # include *.d files containing program dependences + +clean : # remove files that can be regenerated + rm -f ${DEPENDS} ${OBJECTS} ${EXEC} diff --git a/src/tools/astylerc-example b/src/tools/astylerc-example new file mode 100644 index 0000000..3d069d7 --- /dev/null +++ b/src/tools/astylerc-example @@ -0,0 +1 @@ +--style=java -k3 -W3 -m0 -f -p -H --squeeze-lines=3 -xb -xf -xh -c --max-code-length=80 -xL -Y --indent=spaces=8 \ No newline at end of file diff --git a/src/tools/compile b/src/tools/compile new file mode 100755 index 0000000..5a24514 --- /dev/null +++ b/src/tools/compile @@ -0,0 +1,25 @@ +#!/bin/bash +# Use this script to compile your .cc files in dependency order + +# Arguments: +# $1 = name of file containing list of .cc files +# $2 = name of the output file + +cxx="g++-11" +cxxflags="-std=c++20 -fmodules-ts -Wall -g" + +if [ $# -lt 1 ]; then + echo "Usage: $0 list-filename [output-name]" 1>&2 + exit 1 +fi + +if [ $# -eq 2 ]; then + name="-o $2" +fi + +for x in $(cat $1); do + $cxx $cxxflags -c $x +done + +$cxx *.o $name + diff --git a/src/tools/produceOutputs b/src/tools/produceOutputs new file mode 100755 index 0000000..7397f63 Binary files /dev/null and b/src/tools/produceOutputs differ diff --git a/src/tools/runSuite b/src/tools/runSuite new file mode 100755 index 0000000..bfa3ada Binary files /dev/null and b/src/tools/runSuite differ