From dd4c325fe6b219c16a2fc288a27ffa02a409820e Mon Sep 17 00:00:00 2001 From: Lukas Jiriste Date: Fri, 25 Oct 2024 16:36:16 +0200 Subject: [PATCH] Add a Makefile and a test main.cpp --- ex03/Makefile | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++ ex03/main.cpp | 28 +++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 ex03/Makefile create mode 100644 ex03/main.cpp diff --git a/ex03/Makefile b/ex03/Makefile new file mode 100644 index 0000000..2f960ab --- /dev/null +++ b/ex03/Makefile @@ -0,0 +1,67 @@ +CC := clang++ +CFLAGS = -std=c++98 -Wall -Wextra -Werror -Wpedantic + +DEP_GEN = g++ -MM + +ifneq ("$(wildcard .debug)","") + CFLAGS += -g -fno-limit-debug-info +endif + +RM := rm -f + +INCDIR := inc +INCDIR += $(addsuffix /inc, $(SUBPROJECTS)); +ifneq ($(INCLUDE),) + INCLUDE := $(addprefix -I, $(INCDIR)) +endif + +SRCDIR := . + +SOURCES := main.cpp \ + AMateria.cpp \ + Ice.cpp \ + Cure.cpp \ + MateriaSource.cpp \ + Character.cpp \ + +SOURCES := $(addprefix $(SRCDIR)/, $(SOURCES)) + +OBJECTS := $(SOURCES:.cpp=.o) + +NAME := materia + +all : $(NAME) + +debug : .debug + $(MAKE) all + +nodebug : + $(RM) .debug + $(MAKE) re + +.% : + $(MAKE) fclean + touch $@ + +$(NAME) : $(OBJECTS) + $(CC) $(CFLAGS) -o $@ $^ $(LINKS) + +%.o : %.cpp + $(CC) $(CFLAGS) -o $@ -c $< $(INCLUDE) + +clean : + $(RM) $(OBJECTS) + +fclean : clean + $(RM) $(NAME) + +re : fclean + $(MAKE) all + +depend: .depend + +.depend: $(SOURCES) + rm -f $@ + $(DEP_GEN) $^ > $@ + +include .depend diff --git a/ex03/main.cpp b/ex03/main.cpp new file mode 100644 index 0000000..3518a3b --- /dev/null +++ b/ex03/main.cpp @@ -0,0 +1,28 @@ +#include "AMateria.h" +#include "Ice.h" +#include "Cure.h" +#include "IMateriaSource.h" +#include "MateriaSource.h" +#include "ICharacter.h" +#include "Character.h" + +int main() +{ + IMateriaSource* src = new MateriaSource(); + ICharacter* me = new Character("me"); + ICharacter* bob = new Character("bob"); + AMateria* tmp; + + src->learnMateria(new Ice()); + src->learnMateria(new Cure()); + tmp = src->createMateria("ice"); + me->equip(tmp); + tmp = src->createMateria("cure"); + me->equip(tmp); + me->use(0, *bob); + me->use(1, *bob); + delete bob; + delete me; + delete src; + return (0); +} -- 2.30.2