diff --git a/tests/C/test-15-subdir-build/README.md b/tests/C/test-15-subdir-build/README.md
new file mode 100644
index 0000000..74d0d6f
--- /dev/null
+++ b/tests/C/test-15-subdir-build/README.md
@@ -0,0 +1 @@
+En gros, on vérifie si bake arrive à compiler un fichier qui est dans un sous répertoire (src) et mettre le résultat de la compilation dans un sous répertoire (build)
\ No newline at end of file
diff --git a/tests/C/test-15-subdir-build/bake/Bakefile b/tests/C/test-15-subdir-build/bake/Bakefile
new file mode 100644
index 0000000..e2f1466
--- /dev/null
+++ b/tests/C/test-15-subdir-build/bake/Bakefile
@@ -0,0 +1,6 @@
+CC = gcc
+CFLAGS = -Wall -Wextra
+
+build/main: src/main.c
+	mkdir -p build
+	$(CC) $(CFLAGS) -o build/main src/main.c
diff --git a/tests/C/test-15-subdir-build/bake/src/main.c b/tests/C/test-15-subdir-build/bake/src/main.c
new file mode 100644
index 0000000..c7a73b2
--- /dev/null
+++ b/tests/C/test-15-subdir-build/bake/src/main.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+int main() {
+    printf("Hello from Bake & Make!\n");
+    return 0;
+}
diff --git a/tests/C/test-15-subdir-build/make/Makefile b/tests/C/test-15-subdir-build/make/Makefile
new file mode 100644
index 0000000..e2f1466
--- /dev/null
+++ b/tests/C/test-15-subdir-build/make/Makefile
@@ -0,0 +1,6 @@
+CC = gcc
+CFLAGS = -Wall -Wextra
+
+build/main: src/main.c
+	mkdir -p build
+	$(CC) $(CFLAGS) -o build/main src/main.c
diff --git a/tests/C/test-15-subdir-build/make/src/main.c b/tests/C/test-15-subdir-build/make/src/main.c
new file mode 100644
index 0000000..c7a73b2
--- /dev/null
+++ b/tests/C/test-15-subdir-build/make/src/main.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+int main() {
+    printf("Hello from Bake & Make!\n");
+    return 0;
+}