I am trying to reorganize my project to put all generated object file in a particular "obj" folder, when I just handle c files I used below makefile and it works fine(I put src1.c in src1 dir,src2.c in src2 dir and src3.c in src3 dir).
vpath %.c srcvpath %.c src2 vpath %.c src3D_OBJ = objCC = gccSRC_C = src1.c src2.c src3.cOBJ_C = $(addprefix $(D_OBJ)/,$(patsubst %.c,%.o,$(notdir $(SRC_C))))DEP = $(addprefix $(D_OBJ)/, $(patsubst %.c,%.d,$(notdir $(SRC_C)))).PHONY: all all:$(OBJ_C) $(D_OBJ)/%.o:%.c $(CC) -c -Wall $< -o $@ -MMD -MF $(D_OBJ)\\$*.d -MP -include $(DEP)
currently, I have asm and S files in src1,src2 and src3 called file1.asm file2.asm file3.asm and sfile1.s,sfile2.s and sfile3.s. how can I put all of these files generated .o into obj folder?
I tried below but doesn't work
vpath %.c srcvpath %.c src2 vpath %.c src3vpath %.s srcvpath %.s src2 vpath %.s src3 vpath %.asm srcvpath %.asm src2 vpath %.asm src3 D_OBJ = objCC = gccSRC_C = src1.c src2.c src3.cSRC_ASM = file1.asm file2.asm file3.asmSRC_S = sfile1.s sfile2.s sfile3.sOBJ_C = $(addprefix $(D_OBJ)/,$(patsubst %.c,%.o,$(notdir $(SRC_C))))OBJ_S = $(addprefix $(D_OBJ)/,$(patsubst %.s,%.o,$(notdir $(SRC_S))))OBJ_ASM = $(addprefix $(D_OBJ)/,$(patsubst %.asm,%.o,$(notdir $(SRC_ASM))))DEP = $(addprefix $(D_OBJ)/, $(patsubst %.c,%.d,$(notdir $(SRC_C))))DEP += $(addprefix $(D_OBJ)/, $(patsubst %.s,%.d,$(notdir $(SRC_S))))DEP += $(addprefix $(D_OBJ)/, $(patsubst %.asm,%.d,$(notdir $(SRC_ASM)))).PHONY: all all:$(OBJ_C) $(OBJ_ASM) $(OBJ_S)$(D_OBJ)/%.o:%.c $(CC) -c -Wall $< -o $@ -MMD -MF $(D_OBJ)\\$*.d -MP $(D_OBJ)/%.o:%.asm $(CC) -c -Wall $< -o $@ -MMD -MF $(D_OBJ)\\$*.d -MP $(D_OBJ)/%.o:%.s $(CC) -c -Wall $< -o $@ -MMD -MF $(D_OBJ)\\$*.d -MP -include $(DEP)
got error :make: *** No rule to make target obj/file1.o', needed by
all'. Stop.
Thank you in advance!