#############################################################################
# Author: jianwang16
# Date: 2017 06 18
# E-mail: jianwang16@foxmail.com
#############################################################################
CROSS_COMPILE ?=
TARGET = main
#CUR_DIR = $(shell pwd)
CUR_DIR = .
SRCDIR = $(CUR_DIR)/src
INCDIR = $(CUR_DIR)/inc
OBJDIR = $(CUR_DIR)/obj
LIB = -lwiringPi
VPATH = src:inc
CC := $(CROSS_COMPILE)gcc
CFLAGS = -O2 -I$(INCDIR) -Wall -g -std=c99
# *.c->*.o
SOURCES = $(foreach dir,$(SRCDIR),$(wildcard $(dir)/*.c))
#$(info SOURCES:$(SOURCES))
OBJECTS = $(addprefix $(OBJDIR)/,$(patsubst %.c,%.o,$(notdir $(SOURCES))))
#$(info OBJECTS:$(OBJECTS))
all:$(TARGET)
$(TARGET):$(OBJECTS)
$(info Building $(TARGET) with $(OBJECTS) and $(LIB)...)
@$(CC) $(OBJECTS) -o $(TARGET) $(CFLAGS) $(LIB)
@chmod a+x $(TARGET)
$(info Building $@ finished)
$(OBJDIR)/%.o:%.c $(INCLUDES) | $(OBJDIR)
$(info Compiling $@ from $<...)
@$(CC) -c $(CFLAGS) $< -o $@
$(info Compiling $@ finished)
$(info )
$(OBJDIR):
@mkdir -p $(OBJDIR)
.PHONY:clean all
clean:
@$(RM) $(OBJDIR)/*.o main