.PHONY: all build_target clean test prebuild all: build_target TARGET:=reset_usb_tools OUTDIR:=build SRCDIR:=src LIBDIR:=lib INC:=-Iinc CDEF:= LIBS:=-lusb-1.0 CFLAG := -O1 -g -Wall LDFLAG:= CC:=gcc PROJDIR := $(shell pwd -P) INC += -I$(SRCDIR) LDFLAG += -Wl,--rpath=$(LIBDIR) #SRC:=resetusb.c SRC:=$(wildcard $(SRCDIR)/*.c) OBJDIR=$(strip $(OUTDIR)) TARGET:=$(OBJDIR)/$(TARGET) obj=$(SRC:.c=.o) #OBJS:=$(addprefix $(OBJDIR)/, $(obj)) OBJS:=$(subst $(SRCDIR)/, $(OBJDIR)/, $(obj)) PRES:=$(OBJS:.o=.p) DEPS:=$(OBJS:.o=.d) DEPFLAG:=-MMD -MF $(OBJDIR): mkdir -p $@ include $(wildcard $(DEPS)) build_target:$(TARGET) prebuild:$(OBJDIR) $(PRES) $(TARGET):$(OBJDIR) $(OBJS) @echo build target... @$(CC) -o $@ $(OBJS) $(LIBS) $(LDFLAG) $(OBJDIR)/%.o: $(SRCDIR)/%.c @echo compile $< ... @$(CC) -c $(INC) $(CDEF) $(CFLAG) $< -o $@ $(DEPFLAG) $(OBJDIR)/$*.d -MP $(OBJDIR)/%.p: $(SRCDIR)/%.c @$(CC) -c -E $(INC) $(CDEF) $(CFLAG) $< -o $@ clean: rm -rf $(OBJDIR) test: @echo $(SRC), $(obj), $(SRCDIR), $(OBJDIR), $(OBJS)