From 8f6c8259c8db5cfa6fe83756784159b09eba73ca Mon Sep 17 00:00:00 2001 From: hugogogo Date: Sun, 27 Feb 2022 22:07:04 +0100 Subject: [PATCH] petites transformations sur les makefiles --- d04/ex02/Makefile | 4 ++ d04/ex02/pure | Bin 0 -> 29336 bytes d04/ex03/Makefile | 82 ++++++++++++++++++++++++++++++++ d04/ex03/headers/AMateria.hpp | 24 ++++++++++ d04/ex03/headers/Character.hpp | 18 +++++++ d04/ex03/headers/Cure.hpp | 19 ++++++++ d04/ex03/headers/ICharacter.hpp | 15 ++++++ d04/ex03/headers/Ice.hpp | 18 +++++++ d04/ex03/main.cpp | 32 +++++++++++++ d04/ex03/srcs/AMateria.cpp | 14 ++++++ d04/ex03/srcs/Cure.cpp | 15 ++++++ d04/ex03/srcs/Ice.cpp | 15 ++++++ d05/ex00/Bureaucrate.hpp | 14 ++++++ d05/ex00/Makefile | 71 +++++++++++++++++++++++++++ d05/ex00/main.cpp | 10 ++++ 15 files changed, 351 insertions(+) create mode 100755 d04/ex02/pure create mode 100644 d04/ex03/Makefile create mode 100644 d04/ex03/headers/AMateria.hpp create mode 100644 d04/ex03/headers/Character.hpp create mode 100644 d04/ex03/headers/Cure.hpp create mode 100644 d04/ex03/headers/ICharacter.hpp create mode 100644 d04/ex03/headers/Ice.hpp create mode 100644 d04/ex03/main.cpp create mode 100644 d04/ex03/srcs/AMateria.cpp create mode 100644 d04/ex03/srcs/Cure.cpp create mode 100644 d04/ex03/srcs/Ice.cpp create mode 100644 d05/ex00/Bureaucrate.hpp create mode 100644 d05/ex00/Makefile create mode 100644 d05/ex00/main.cpp diff --git a/d04/ex02/Makefile b/d04/ex02/Makefile index 2265727..fc4b7c2 100644 --- a/d04/ex02/Makefile +++ b/d04/ex02/Makefile @@ -9,6 +9,10 @@ NAME = pure #TYPE = c TYPE = cpp +ifndef TYPE +echo hello +endif + ifeq "$(TYPE)" "c" CC = c EXT = c diff --git a/d04/ex02/pure b/d04/ex02/pure new file mode 100755 index 0000000000000000000000000000000000000000..fe31b467434b3ae7d03327ad6d881123bfcf6613 GIT binary patch literal 29336 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 Ci@){& literal 0 HcmV?d00001 diff --git a/d04/ex03/Makefile b/d04/ex03/Makefile new file mode 100644 index 0000000..710467d --- /dev/null +++ b/d04/ex03/Makefile @@ -0,0 +1,82 @@ +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # +# . name = value \ . += append to a variable # +# VARIABLES . value . != set result of command # +# . name is case sensitive . ?= set if not already set # +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # + +NAME = materia + +#TYPE = c +TYPE = cpp + +ifeq "$(TYPE)" "c" + CC = c + EXT = c +else ifeq "$(TYPE)" "cpp" + CC = c++ + EXT = cpp +endif + +CFLAGS = -Wall -Wextra -Werror $(INCLUDES) +ifeq "$(TYPE)" "cpp" + CFLAGS += -std=c++98 +endif + +VPATH = $(D_SRCS) + +LIBS = + +INCLUDES = -I$(D_HEADERS) + +D_SRCS = srcs +SRCS = main.cpp \ + Animal.cpp \ + Dog.cpp \ + Cat.cpp \ + Brain.cpp + +D_HEADERS = headers +HEADERS = Animal.hpp \ + Dog.hpp \ + Cat.hpp \ + Brain.hpp + +D_OBJS = builds +OBJS = $(SRCS:%.$(EXT)=$(D_OBJS)/%.o) + +ifeq "$(D_OBJS)" "." + RM_OBJS = rm -f $(OBJS) +else + RM_OBJS = rm -rf $(D_OBJS) +endif + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # +# . target: prerequisites . $@ : target # +# RULES . recipe . $< : 1st prerequisite # +# . recipe . $^ : all prerequisites # +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # + +all: $(NAME) + +$(D_OBJS)/%.o: %.$(EXT) | $(D_OBJS) + $(CC) $(CFLAGS) -c $< -o $@ + +$(D_OBJS): + mkdir $@ + +$(OBJS): $(HEADERS:%=$(D_HEADERS)/%) + +$(NAME): $(OBJS) + $(CC) $(OBJS) -o $@ $(LIBS) + +clean: + $(RM_OBJS) + +fclean: clean + rm -f $(NAME) + +re: fclean all + +.PHONY : all clean fclean re + diff --git a/d04/ex03/headers/AMateria.hpp b/d04/ex03/headers/AMateria.hpp new file mode 100644 index 0000000..096f251 --- /dev/null +++ b/d04/ex03/headers/AMateria.hpp @@ -0,0 +1,24 @@ +#ifndef AMATERIA_HPP +# define AMATERIA_HPP + +# include + +#include "ICharacter.hpp" + +class AMateria { + +public: + AMateria(std::string const & type); + virtual ~AMateria(); + + std::string const & getType() const; //Returns the materia type + + virtual AMateria* clone() const = 0; + virtual void use(ICharacter& target); + +protected: + std::string _type; + +}; + +#endif diff --git a/d04/ex03/headers/Character.hpp b/d04/ex03/headers/Character.hpp new file mode 100644 index 0000000..73e2c10 --- /dev/null +++ b/d04/ex03/headers/Character.hpp @@ -0,0 +1,18 @@ +#ifndef CHARACTER_HPP +# define CHARACTER_HPP + +#include "ICharacter.hpp" + +class Character : public ICharacter { + +public: + Character(); + Character( Character const & src ); + ~Character(); + Character & operator=( Character const & rhs ); + +private: + +}; + +#endif diff --git a/d04/ex03/headers/Cure.hpp b/d04/ex03/headers/Cure.hpp new file mode 100644 index 0000000..1ca03c8 --- /dev/null +++ b/d04/ex03/headers/Cure.hpp @@ -0,0 +1,19 @@ +#ifndef CURE_HPP +# define CURE_HPP + +#include "AMateria.hpp" + +class Cure : public AMateria { + +public: + Cure(); + Cure( Cure const & src ); + ~Cure(); + Cure & operator=( Cure const & rhs ); + +private: + +}; + +#endif + diff --git a/d04/ex03/headers/ICharacter.hpp b/d04/ex03/headers/ICharacter.hpp new file mode 100644 index 0000000..11fa9fc --- /dev/null +++ b/d04/ex03/headers/ICharacter.hpp @@ -0,0 +1,15 @@ +#ifndef ICE_HPP +# define ICE_HPP + +class ICharacter { + +public: + virtual ~ICharacter() {} + virtual std::string const & getName() const = 0; + virtual void equip(AMateria* m) = 0; + virtual void unequip(int idx) = 0; + virtual void use(int idx, ICharacter& target) = 0; +}; + +#endif + diff --git a/d04/ex03/headers/Ice.hpp b/d04/ex03/headers/Ice.hpp new file mode 100644 index 0000000..52e3419 --- /dev/null +++ b/d04/ex03/headers/Ice.hpp @@ -0,0 +1,18 @@ +#ifndef ICE_HPP +# define ICE_HPP + +#include "AMateria.hpp" + +class Ice : public AMateria { + +public: + Ice(); + Ice( Ice const & src ); + ~Ice(); + Ice & operator=( Ice const & rhs ); + +private: + +}; + +#endif diff --git a/d04/ex03/main.cpp b/d04/ex03/main.cpp new file mode 100644 index 0000000..245e05a --- /dev/null +++ b/d04/ex03/main.cpp @@ -0,0 +1,32 @@ +#include "AMateria.hpp" +#include "Ice.hpp" +#include "Cure.hpp" +#include "ICharacter" +#include "IMateriaSource" + +int main() { + + IMateriaSource* src = new MateriaSource(); + src->learnMateria(new Ice()); + src->learnMateria(new Cure()); + + ICharacter* me = new Character("me"); + + AMateria* tmp; + tmp = src->createMateria("ice"); + me->equip(tmp); + tmp = src->createMateria("cure"); + me->equip(tmp); + + ICharacter* bob = new Character("bob"); + + me->use(0, *bob); + me->use(1, *bob); + + delete bob; + delete me; + delete src; + + return 0; +} + diff --git a/d04/ex03/srcs/AMateria.cpp b/d04/ex03/srcs/AMateria.cpp new file mode 100644 index 0000000..fca370d --- /dev/null +++ b/d04/ex03/srcs/AMateria.cpp @@ -0,0 +1,14 @@ +#include "AMateria.hpp" + +AMateria::AMateria(std::string const & type) { + _type = type; +} + +std::string const & AMateria::getType() const { + return _type; +} + +virtual AMateria * AMateria::clone() const { + AMateria clone = new AMateria; + return clone; +} diff --git a/d04/ex03/srcs/Cure.cpp b/d04/ex03/srcs/Cure.cpp new file mode 100644 index 0000000..d804128 --- /dev/null +++ b/d04/ex03/srcs/Cure.cpp @@ -0,0 +1,15 @@ +#include "Cure.hpp" + +Cure::Cure() : _type("cure") {} + +Cure::Cure( Cure const & src ) { + *this = src +} + +Cure & Cure::operator=( Cure const & rhs ) { + return *this; +} + +virtual void Ice::use(ICharacter & target) { + std::cout << "* heals " << target.name << "’s wounds *" +} diff --git a/d04/ex03/srcs/Ice.cpp b/d04/ex03/srcs/Ice.cpp new file mode 100644 index 0000000..06f7379 --- /dev/null +++ b/d04/ex03/srcs/Ice.cpp @@ -0,0 +1,15 @@ +#include "Ice.hpp" + +Ice::Ice() : _type("ice") {} + +Ice::Ice( Ice const & src ) { + *this = src +} + +Ice & Ice::operator=( Ice const & rhs ) { + return *this; +} + +virtual void Ice::use(ICharacter & target) { + std::cout << "* shoots an ice bolt at " << target.name << " *" +} diff --git a/d05/ex00/Bureaucrate.hpp b/d05/ex00/Bureaucrate.hpp new file mode 100644 index 0000000..46677db --- /dev/null +++ b/d05/ex00/Bureaucrate.hpp @@ -0,0 +1,14 @@ +#ifndef BUREAUCRATE_HPP +# define BUREAUCRATE_HPP + +class Bureaucrate { +public: + Bureaucrate(); + Bureaucrate(std::string name, int grade); + +private: + std::string const _name; + int _grade; +} + +#endif diff --git a/d05/ex00/Makefile b/d05/ex00/Makefile new file mode 100644 index 0000000..ee31047 --- /dev/null +++ b/d05/ex00/Makefile @@ -0,0 +1,71 @@ +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # +# . name = value \ . += append to a variable # +# VARIABLES . value . != set result of command # +# . name is case sensitive . ?= set if not already set # +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # + +NAME = bureaucrate + +#CC = gcc +CXX = c++ + +#CFLAGS = -Wall -Wextra -Werror $(INCLUDES) +CXXFLAGS = -Wall -Wextra -Werror $(INCLUDES) -std=c++98 + +#EXT = c +EXT = cpp + +VPATH = $(D_SRCS) + +LIBS = + +INCLUDES = -I$(D_HEADERS) + +D_SRCS = . +SRCS = main.cpp \ + Bureaucrate.cpp + +D_HEADERS = . +HEADERS = Bureaucrate.hpp + +D_OBJS = builds +OBJS = $(SRCS:%.$(EXT)=$(D_OBJS)/%.o) + +ifeq "$(D_OBJS)" "." + RM_OBJS = rm -f $(OBJS) +else + RM_OBJS = rm -rf $(D_OBJS) +endif + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # +# . target: prerequisites . $@ : target # +# RULES . recipe . $< : 1st prerequisite # +# . recipe . $^ : all prerequisites # +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # + +all: $(NAME) + +$(D_OBJS)/%.o: %.$(EXT) | $(D_OBJS) +# $(CC) $(CFLAGS) -c $< -o $@ + $(CXX) $(CXXFLAGS) -c $< -o $@ + +$(D_OBJS): + mkdir $@ + +$(OBJS): $(HEADERS:%=$(D_HEADERS)/%) + +$(NAME): $(OBJS) +# $(CC) $(OBJS) -o $@ $(LIBS) + $(CXX) $(OBJS) -o $@ $(LIBS) + +clean: + $(RM_OBJS) + +fclean: clean + rm -f $(NAME) + +re: fclean all + +.PHONY : all clean fclean re + diff --git a/d05/ex00/main.cpp b/d05/ex00/main.cpp new file mode 100644 index 0000000..8f37d92 --- /dev/null +++ b/d05/ex00/main.cpp @@ -0,0 +1,10 @@ +int main() { + try + { + + } + catch (std::exception & e) + { + + } +}