From 155a7f282cc5b01c155bfa5a378dc5449a8c1fd0 Mon Sep 17 00:00:00 2001 From: Samuel Oberhofer Date: Fri, 24 Jun 2022 12:33:18 +0200 Subject: [PATCH] Makefile and Main --- Uebung 5/Uebung5_2/Makefile | 52 +++++++++++++++++++++++++++++++++++++ Uebung 5/Uebung5_2/main.cpp | 3 +++ 2 files changed, 55 insertions(+) create mode 100644 Uebung 5/Uebung5_2/Makefile create mode 100644 Uebung 5/Uebung5_2/main.cpp diff --git a/Uebung 5/Uebung5_2/Makefile b/Uebung 5/Uebung5_2/Makefile new file mode 100644 index 0000000..2e38b58 --- /dev/null +++ b/Uebung 5/Uebung5_2/Makefile @@ -0,0 +1,52 @@ + +# Name of the binary for Development +BINARY = main +# Name of the binary for Release +FINAL = prototyp +# Object files +OBJS = cashInstance.o main.o +# Compiler flags +CFLAGS = -Werror -Wall -std=c++17 -fsanitize=address,undefined -g +# Linker flags +LFLAGS = -fsanitize=address,undefined +#Which Compiler to use +COMPILER = c++ + + +# all target: builds all important targets +all: binary + +final : ${OBJS} + ${COMPILER} ${LFLAGS} -o ${FINAL} ${OBJS} + rm ${OBJS} + +binary : ${OBJS} + ${COMPILER} ${LFLAGS} -o ${BINARY} ${OBJS} + +# Links the binary +${BINARY} : ${OBJS} + ${COMPILER} ${LFLAGS} -o ${BINARY} ${OBJS} + + +# Compiles a source-file (any file with file extension .c) into an object-file +# +# "%" is a wildcard which matches every file-name (similar to * in regular expressions) +# Such a rule is called a pattern rule (because it matches a pattern, see https://www.gnu.org/software/make/manual/html_node/Pattern-Rules.html), +# which are a form of so called implicit rules (see https://www.gnu.org/software/make/manual/html_node/Implicit-Rules.html) +# "$@" and "$<" are so called automatic variables (see https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html) +%.o : %.cpp + ${COMPILER} -c ${CFLAGS} -o $@ $< + + +# Rules can not only be used for compiling a program but also for executing a program +run: ${BINARY} + ./${BINARY} + + +# Delete all build artifacts +clean : + rm -rf ${BINARY} ${OBJS} + + +# all and clean are a "phony" targets, meaning they are no files +.PHONY : all clean diff --git a/Uebung 5/Uebung5_2/main.cpp b/Uebung 5/Uebung5_2/main.cpp new file mode 100644 index 0000000..b90e9c8 --- /dev/null +++ b/Uebung 5/Uebung5_2/main.cpp @@ -0,0 +1,3 @@ + + +int main() { return 0; } \ No newline at end of file