Bonjour tout le monde !

Je suis actuellement sur un petit Makefile générique (pour ne pas à avoir à le modifier à chaque projet) ... Certains me diront que c'est pas bien et ils auront surement raison mais bon la question n'est pas là

Ci dessous l’arborescence des fichiers d'un "simple" HelloWorld :

├── build
│   ├── bin
│   │   └── hello
│   └── obj
│      ├── hello.o
│       └── main.o
├── inc
│   ├── hello
│   │   └── hello.h
│   └── version.h
├── Makefile
└── src
    ├── hello.c
    └── main.c
Jusqu'ici tout fonctionne ! Et puis une idée un peu étrange est arrivée ... Passer à cette arborescence :

├── build
│   ├── bin
│   └── obj
│       ├── hello.o
│       └── main.o
├── inc
│   ├── hello
│   │   └── hello.h
│   └── version.h
├── Makefile
└── src
    ├── hello
    │   └── hello.c
    └── main.c
Et plus rien ne va car le compilo ne trouve plus le hello.c

Voici un bribes du Makefile en question :

Code Makefile : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Directories
PROJ_DIR = ./
SRCDIR = src
INCDIR   = inc
BUILDDIR = build
DEBUG_BUILDDIR := build-debug
OBJDIR   = $(OUTPUT_DIR)/obj
BINDIR   = $(OUTPUT_DIR)/bin
 
SOURCES  := $(shell find $(SRCDIR) -name '*.c')
INCLUDES := $(shell find $(INCDIR) -name '*.h')
OBJECTS  := $(SOURCES:$(SRCDIR)/%.c=$(OBJDIR)/%.o)
 
# Main instruction
main-build: $(OBJECTS)
	@$(LINKER) $(TARGET)-$(SOFT_VERSION) $(LFLAGS) $(OBJECTS)
	@echo "\n*** Linking complete! ***"
 
# Create object files
$(OBJECTS): $(OBJDIR)/%.o : $(SRCDIR)/%.c
	@$(CC) $(CFLAGS) -c $< -o $@ $(LDFLAGS)
	@echo "Compiled "$<" successfully!"

Tout se passe bien pour le headers mais pas pour les fichiers sources et aucune idée du pourquoi du comment, un idée ? une piste ?

Étant débutant dans le domaine toute remarque est la bienvenue

Merci,
Trigger00