86 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
PACKAGE    = fomu-flash
 | 
						|
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 -O2 \
 | 
						|
             -DGIT_VERSION=u\"$(GIT_VERSION)\"
 | 
						|
CXXFLAGS   = $(CFLAGS)
 | 
						|
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       $@"
 | 
						|
	$(QUIET) $(CC) $(OBJECTS) $(LFLAGS) -o $@
 | 
						|
 | 
						|
$(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)
 |