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 :
	
	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
						
					
Partager