diff --git a/tests/C/test-07-dependency/README.md b/tests/C/test-07-dependency/README.md new file mode 100644 index 0000000..b2926c0 --- /dev/null +++ b/tests/C/test-07-dependency/README.md @@ -0,0 +1 @@ +Dépendances multiples : Vérifier que si un fichier .c dépend de plusieurs fichiers .h, toute modification d'un .h entraîne la recompilation du .c. \ No newline at end of file diff --git a/tests/C/test-07-dependency/bake/Bakefile b/tests/C/test-07-dependency/bake/Bakefile new file mode 100644 index 0000000..38b0eba --- /dev/null +++ b/tests/C/test-07-dependency/bake/Bakefile @@ -0,0 +1,26 @@ +CC = gcc +CFLAGS = -Wall -Wextra -Werror + +# Règle par défaut +all: program + +# Compilation de l'exécutable +program: main.o module.o + $(CC) $(CFLAGS) -o program main.o module.o + +# Compilation des fichiers .c en .o +main.o: main.c module.h + $(CC) $(CFLAGS) -c main.c -o main.o + +module.o: module.c module.h + $(CC) $(CFLAGS) -c module.c -o module.o + +# Nettoyage des fichiers objets et de l'exécutable +clean: + rm -f main.o module.o program + +# Nettoyage complet +mrproper: clean + +# Force la recompilation +rebuild: clean all diff --git a/tests/C/test-07-dependency/bake/main.c b/tests/C/test-07-dependency/bake/main.c new file mode 100644 index 0000000..1f93d59 --- /dev/null +++ b/tests/C/test-07-dependency/bake/main.c @@ -0,0 +1,8 @@ +#include +#include "module.h" + +int main() { + printf("Test du programme Bake/Make !\n"); + print_message(); + return 0; +} diff --git a/tests/C/test-07-dependency/bake/module.c b/tests/C/test-07-dependency/bake/module.c new file mode 100644 index 0000000..990bf34 --- /dev/null +++ b/tests/C/test-07-dependency/bake/module.c @@ -0,0 +1,6 @@ +#include +#include "module.h" + +void print_message() { + printf("Module chargé avec succès !\n"); +} diff --git a/tests/C/test-07-dependency/bake/module.h b/tests/C/test-07-dependency/bake/module.h new file mode 100644 index 0000000..2c03942 --- /dev/null +++ b/tests/C/test-07-dependency/bake/module.h @@ -0,0 +1,6 @@ +#ifndef MODULE_H +#define MODULE_H + +void print_message(); + +#endif diff --git a/tests/C/test-07-dependency/make/Makefile b/tests/C/test-07-dependency/make/Makefile new file mode 100644 index 0000000..38b0eba --- /dev/null +++ b/tests/C/test-07-dependency/make/Makefile @@ -0,0 +1,26 @@ +CC = gcc +CFLAGS = -Wall -Wextra -Werror + +# Règle par défaut +all: program + +# Compilation de l'exécutable +program: main.o module.o + $(CC) $(CFLAGS) -o program main.o module.o + +# Compilation des fichiers .c en .o +main.o: main.c module.h + $(CC) $(CFLAGS) -c main.c -o main.o + +module.o: module.c module.h + $(CC) $(CFLAGS) -c module.c -o module.o + +# Nettoyage des fichiers objets et de l'exécutable +clean: + rm -f main.o module.o program + +# Nettoyage complet +mrproper: clean + +# Force la recompilation +rebuild: clean all diff --git a/tests/C/test-07-dependency/make/main.c b/tests/C/test-07-dependency/make/main.c new file mode 100644 index 0000000..1f93d59 --- /dev/null +++ b/tests/C/test-07-dependency/make/main.c @@ -0,0 +1,8 @@ +#include +#include "module.h" + +int main() { + printf("Test du programme Bake/Make !\n"); + print_message(); + return 0; +} diff --git a/tests/C/test-07-dependency/make/module.c b/tests/C/test-07-dependency/make/module.c new file mode 100644 index 0000000..990bf34 --- /dev/null +++ b/tests/C/test-07-dependency/make/module.c @@ -0,0 +1,6 @@ +#include +#include "module.h" + +void print_message() { + printf("Module chargé avec succès !\n"); +} diff --git a/tests/C/test-07-dependency/make/module.h b/tests/C/test-07-dependency/make/module.h new file mode 100644 index 0000000..2c03942 --- /dev/null +++ b/tests/C/test-07-dependency/make/module.h @@ -0,0 +1,6 @@ +#ifndef MODULE_H +#define MODULE_H + +void print_message(); + +#endif