Makefile 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. .PHONY: all build_target clean test prebuild
  2. all: build_target
  3. TARGET:=reset_usb_tools
  4. OUTDIR:=build
  5. SRCDIR:=src
  6. LIBDIR:=lib
  7. INC:=-Iinc
  8. CDEF:=
  9. LIBS:=-lusb-1.0
  10. CFLAG := -O1 -g -Wall
  11. LDFLAG:=
  12. CC:=gcc
  13. PROJDIR := $(shell pwd -P)
  14. INC += -I$(SRCDIR)
  15. LDFLAG += -Wl,--rpath=$(LIBDIR)
  16. #SRC:=resetusb.c
  17. SRC:=$(wildcard $(SRCDIR)/*.c)
  18. OBJDIR=$(strip $(OUTDIR))
  19. TARGET:=$(OBJDIR)/$(TARGET)
  20. obj=$(SRC:.c=.o)
  21. #OBJS:=$(addprefix $(OBJDIR)/, $(obj))
  22. OBJS:=$(subst $(SRCDIR)/, $(OBJDIR)/, $(obj))
  23. PRES:=$(OBJS:.o=.p)
  24. DEPS:=$(OBJS:.o=.d)
  25. DEPFLAG:=-MMD -MF
  26. $(OBJDIR):
  27. mkdir -p $@
  28. include $(wildcard $(DEPS))
  29. build_target:$(TARGET)
  30. prebuild:$(OBJDIR) $(PRES)
  31. $(TARGET):$(OBJDIR) $(OBJS)
  32. @echo build target...
  33. @$(CC) -o $@ $(OBJS) $(LIBS) $(LDFLAG)
  34. $(OBJDIR)/%.o: $(SRCDIR)/%.c
  35. @echo compile $< ...
  36. @$(CC) -c $(INC) $(CDEF) $(CFLAG) $< -o $@ $(DEPFLAG) $(OBJDIR)/$*.d -MP
  37. $(OBJDIR)/%.p: $(SRCDIR)/%.c
  38. @$(CC) -c -E $(INC) $(CDEF) $(CFLAG) $< -o $@
  39. clean:
  40. rm -rf $(OBJDIR)
  41. test:
  42. @echo $(SRC), $(obj), $(SRCDIR), $(OBJDIR), $(OBJS)