2018-11-28 15:52:27 +00:00
|
|
|
PACKAGE = $(notdir $(realpath .))
|
|
|
|
ADD_CFLAGS =
|
|
|
|
ADD_LFLAGS =
|
|
|
|
|
|
|
|
GIT_VERSION= $(shell git describe --tags)
|
|
|
|
#TRGT ?= arm-none-eabi-
|
|
|
|
CC = $(TRGT)gcc
|
|
|
|
CXX = $(TRGT)g++
|
|
|
|
OBJCOPY = $(TRGT)objcopy
|
|
|
|
|
|
|
|
RM = rm -rf
|
|
|
|
COPY = cp -a
|
|
|
|
PATH_SEP = /
|
|
|
|
|
|
|
|
ifeq ($(OS),Windows_NT)
|
|
|
|
COPY = copy
|
|
|
|
RM = del
|
|
|
|
PATH_SEP = \\
|
|
|
|
endif
|
|
|
|
|
|
|
|
DBG_CFLAGS = -ggdb -g -DDEBUG -Wall
|
|
|
|
DBG_LFLAGS = -ggdb -g -Wall
|
|
|
|
CFLAGS = $(ADD_CFLAGS) \
|
|
|
|
-Wall -Wextra \
|
|
|
|
-ffunction-sections -fdata-sections -fno-common \
|
|
|
|
-fomit-frame-pointer -Os \
|
|
|
|
-DGIT_VERSION=u\"$(GIT_VERSION)\" -std=gnu11
|
|
|
|
CXXFLAGS = $(CFLAGS) -std=c++11
|
|
|
|
LFLAGS = $(ADD_LFLAGS) $(CFLAGS) \
|
|
|
|
|
|
|
|
OBJ_DIR = .obj
|
|
|
|
|
|
|
|
CSOURCES = $(wildcard *.c)
|
|
|
|
CPPSOURCES = $(wildcard *.cpp)
|
|
|
|
ASOURCES = $(wildcard *.S)
|
|
|
|
COBJS = $(addprefix $(OBJ_DIR)/, $(notdir $(CSOURCES:.c=.o)))
|
|
|
|
CXXOBJS = $(addprefix $(OBJ_DIR)/, $(notdir $(CPPSOURCES:.cpp=.o)))
|
|
|
|
AOBJS = $(addprefix $(OBJ_DIR)/, $(notdir $(ASOURCES:.S=.o)))
|
|
|
|
OBJECTS = $(COBJS) $(CXXOBJS) $(AOBJS)
|
|
|
|
VPATH = .
|
|
|
|
|
|
|
|
QUIET = @
|
|
|
|
|
|
|
|
ALL = all
|
|
|
|
TARGET = $(PACKAGE)
|
|
|
|
CLEAN = clean
|
|
|
|
|
|
|
|
$(ALL): $(TARGET)
|
|
|
|
|
|
|
|
$(OBJECTS): | $(OBJ_DIR)
|
|
|
|
|
|
|
|
$(TARGET): $(OBJECTS)
|
|
|
|
$(QUIET) echo " LD $@"
|
2018-11-28 16:02:49 +00:00
|
|
|
$(QUIET) $(CC) $(OBJECTS) $(LFLAGS) -o $@
|
2018-11-28 15:52:27 +00:00
|
|
|
|
|
|
|
$(DEBUG): CFLAGS += $(DBG_CFLAGS)
|
|
|
|
$(DEBUG): LFLAGS += $(DBG_LFLAGS)
|
|
|
|
CFLAGS += $(DBG_CFLAGS)
|
|
|
|
LFLAGS += $(DBG_LFLAGS)
|
|
|
|
$(DEBUG): $(TARGET)
|
|
|
|
|
|
|
|
$(OBJ_DIR):
|
|
|
|
$(QUIET) mkdir $(OBJ_DIR)
|
|
|
|
|
|
|
|
$(COBJS) : $(OBJ_DIR)/%.o : %.c Makefile
|
|
|
|
$(QUIET) echo " CC $< $(notdir $@)"
|
|
|
|
$(QUIET) $(CC) -c $< $(CFLAGS) -o $@ -MMD
|
|
|
|
|
|
|
|
$(OBJ_DIR)/%.o: %.cpp
|
|
|
|
$(QUIET) echo " CXX $< $(notdir $@)"
|
|
|
|
$(QUIET) $(CXX) -c $< $(CXXFLAGS) -o $@ -MMD
|
|
|
|
|
|
|
|
$(OBJ_DIR)/%.o: %.S
|
|
|
|
$(QUIET) echo " AS $< $(notdir $@)"
|
|
|
|
$(QUIET) $(CC) -x assembler-with-cpp -c $< $(CFLAGS) -o $@ -MMD
|
|
|
|
|
|
|
|
.PHONY: clean
|
|
|
|
|
|
|
|
clean:
|
|
|
|
$(QUIET) echo " RM $(subst /,$(PATH_SEP),$(wildcard $(OBJ_DIR)/*.d))"
|
|
|
|
-$(QUIET) $(RM) $(subst /,$(PATH_SEP),$(wildcard $(OBJ_DIR)/*.d))
|
|
|
|
$(QUIET) echo " RM $(subst /,$(PATH_SEP),$(wildcard $(OBJ_DIR)/*.d))"
|
|
|
|
-$(QUIET) $(RM) $(subst /,$(PATH_SEP),$(wildcard $(OBJ_DIR)/*.o))
|
|
|
|
$(QUIET) echo " RM $(TARGET)"
|
|
|
|
-$(QUIET) $(RM) $(TARGET)
|
|
|
|
|
|
|
|
include $(wildcard $(OBJ_DIR)/*.d)
|