Makefile模板
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
CROSS_COMPILE ?= arm-linux-gnueabihf-CC := $(CROSS_COMPILE)gccCXX := $(CROSS_COMPILE)g++AR := $(CROSS_COMPILE)arLD := $(CROSS_COMPILE)ldOBJCOPY := $(CROSS_COMPILE)objcopyOBJDUMP := $(CROSS_COMPILE)objdumpARFLAGS := rcsDEBUG := -gFLAGS := -Wall -nostdlib -c -O2 -fno-builtinCFLAGS := $(FLAGS) -std=c99 CXXFLAGS := $(FLAGS) -std=c++11SFLAGS := $(FLAGS)LDFLAGS := -Timx6ul.ldsLIBS := -lgccLIB_PATH := -L /home/chengs/imx6ull/tool/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/4.9.4OUTPUT := /var/tmp/outputSOURCE_DIR += imx6ulSOURCE_DIR += projectSOURCE_DIR += bsp/clkSOURCE_DIR += bsp/delaySOURCE_DIR += bsp/ledSOURCE_DIR += bsp/beepSOURCE_DIR += bsp/gpioSOURCE_DIR += bsp/keySOURCE_DIR += bsp/intSOURCE_DIR += bsp/extiSOURCE_DIR += bsp/epittimerSOURCE_DIR += bsp/uartINCLUDES := $(patsubst %, -I %, $(SOURCE_DIR))SOURCES += $(foreach dir, $(SOURCE_DIR), $(wildcard $(dir)/*.S))SOURCES += $(foreach dir, $(SOURCE_DIR), $(wildcard $(dir)/*.c))SOURCES += $(foreach dir, $(SOURCE_DIR), $(wildcard $(dir)/*.cpp))OBJS := $(patsubst %.c, $(OUTPUT)/%.o, $(SOURCES))OBJS := $(patsubst %.cpp, $(OUTPUT)/%.o, $(OBJS))OBJS := $(patsubst %.S, $(OUTPUT)/%.o, $(OBJS))VERSION := 0.1PROJECT_NAME := appTARGET := $(OUTPUT)/$(PROJECT_NAME)STATIC_LIB := $(OUTPUT)/lib$(PROJECT_NAME).a.$(VERSION)SHARED_LIB := $(OUTPUT)/lib$(PROJECT_NAME).so.$(VERSION)all: clean $(TARGET) $(OBJCOPY) -O binary -S $(TARGET) $(TARGET).bin $(OBJDUMP) -D -m arm $(TARGET) > project/app.dis imxdownload $(TARGET).bin /dev/usbSdCard @rm -rf $(TARGET).dis $(TARGET).bin load.imx$(TARGET): $(OBJS) $(LD) $(LDFLAGS) -o $(TARGET) $(OBJS) $(LIBS) $(LIB_PATH) $(STATIC_LIB): $(OBJS) $(AR) $(ARFLAGS) $(STATIC_LIB) $(OBJS)$(SHARED_LIB): $(OBJS) $(CC) -fPIC -shared -o $(SHARED_LIB) $(OBJS)$(OUTPUT)/%.o: %.c @echo $(CC) $< @mkdir -p $(dir $@) @$(CC) $(CFLAGS) $(DEBUG) $(INCLUDES) -o $@ $<$(OUTPUT)/%.o: %.cpp @echo $(CXX) $< @mkdir -p $(dir $@) @$(CXX) $(CXXFLAGS) $(DEBUG) $(INCLUDES) -o $@ $<$(OUTPUT)/%.o: %.S @echo $(CC) $< @mkdir -p $(dir $@) @$(CC) $(SFLAGS) $(DEBUG) -o $@ $<.PHONY: clean all printclean: rm -rf $(OUTPUT)print: @echo $(SOURCES) @echo $(OBJS) @echo $(CFLAGS)
Seraching...