From 33a076c7508d125aa926d627861fac43dedb0867 Mon Sep 17 00:00:00 2001 From: Derek Tan Date: Sat, 29 Jun 2024 17:24:59 -0400 Subject: [PATCH] reorganized folder structure --- src/tools/Makefile | 33 +++++++++++++++++++++++++++++++++ src/tools/astylerc-example | 1 + src/tools/compile | 25 +++++++++++++++++++++++++ src/tools/produceOutputs | Bin 0 -> 58032 bytes src/tools/runSuite | Bin 0 -> 71552 bytes 5 files changed, 59 insertions(+) create mode 100644 src/tools/Makefile create mode 100644 src/tools/astylerc-example create mode 100755 src/tools/compile create mode 100755 src/tools/produceOutputs create mode 100755 src/tools/runSuite 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 0000000000000000000000000000000000000000..7397f63bf32969370c26079ae309f9682372c9fc GIT binary patch literal 58032 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 X>2@`a+%s1FhIbUl$&Lz+qVazLl~T^k literal 0 HcmV?d00001 diff --git a/src/tools/runSuite b/src/tools/runSuite new file mode 100755 index 0000000000000000000000000000000000000000..bfa3ada3c125bc188ec2b90c27d94d5c68a0195d GIT binary patch literal 71552 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 literal 0 HcmV?d00001