bugfix
This commit is contained in:
118
makefile
118
makefile
@ -1,6 +1,8 @@
|
||||
BUILDDIR = build
|
||||
|
||||
CONFIG ?= release
|
||||
BUILDDIR = build
|
||||
|
||||
CONFIG ?= release
|
||||
|
||||
-include local.mk
|
||||
|
||||
CONFIGDIR = $(BUILDDIR)/$(CONFIG)
|
||||
|
||||
@ -11,11 +13,46 @@ LSTDIR = $(CONFIGDIR)/lst
|
||||
DEPDIR = $(CONFIGDIR)/.dep
|
||||
|
||||
|
||||
TRGT = bfin-elf-
|
||||
CC = $(TRGT)gcc
|
||||
CP = $(TRGT)objcopy
|
||||
AS = $(TRGT)gcc -x assembler-with-cpp
|
||||
LDR = $(TRGT)ldr
|
||||
BFIN_TOOLCHAIN ?=
|
||||
CROSS_COMPILE ?=
|
||||
|
||||
ifeq ($(strip $(CROSS_COMPILE)),)
|
||||
ifneq ($(strip $(BFIN_TOOLCHAIN)),)
|
||||
ifneq ($(wildcard $(BFIN_TOOLCHAIN)/bin/bfin-elf-gcc),)
|
||||
TRGT = $(BFIN_TOOLCHAIN)/bin/bfin-elf-
|
||||
else ifneq ($(wildcard $(BFIN_TOOLCHAIN)/bfin-elf-gcc),)
|
||||
TRGT = $(BFIN_TOOLCHAIN)/bfin-elf-
|
||||
else
|
||||
TRGT = $(BFIN_TOOLCHAIN)/bin/bfin-elf-
|
||||
endif
|
||||
else
|
||||
TRGT = bfin-elf-
|
||||
endif
|
||||
else
|
||||
TRGT = $(CROSS_COMPILE)
|
||||
endif
|
||||
|
||||
CC = $(TRGT)gcc
|
||||
CP = $(TRGT)objcopy
|
||||
AS = $(TRGT)gcc -x assembler-with-cpp
|
||||
LDR = $(TRGT)ldr
|
||||
|
||||
TOOLCHAIN_SKIP_CHECK_GOALS = clean help print-toolchain
|
||||
TOOLCHAIN_CHECK = 1
|
||||
ifneq ($(strip $(MAKECMDGOALS)),)
|
||||
ifeq ($(strip $(filter-out $(TOOLCHAIN_SKIP_CHECK_GOALS),$(MAKECMDGOALS))),)
|
||||
TOOLCHAIN_CHECK = 0
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(TOOLCHAIN_CHECK),1)
|
||||
ifeq ($(strip $(shell command -v $(CC) 2>/dev/null)),)
|
||||
$(error Blackfin GCC toolchain not found: '$(CC)'. Set BFIN_TOOLCHAIN=/abs/path/to/bfin-elf or CROSS_COMPILE=/abs/path/to/bin/bfin-elf-)
|
||||
endif
|
||||
ifeq ($(strip $(shell command -v $(LDR) 2>/dev/null)),)
|
||||
$(error Blackfin loader tool not found: '$(LDR)'. Set BFIN_TOOLCHAIN=/abs/path/to/bfin-elf or CROSS_COMPILE=/abs/path/to/bin/bfin-elf-)
|
||||
endif
|
||||
endif
|
||||
|
||||
LDRFLAGS = -T BF527
|
||||
|
||||
@ -131,14 +168,29 @@ CPFLAGS += -MD -MP -MF $(DEPDIR)/$(@F).d
|
||||
|
||||
#bfin-elf-gcc $(CPFLAGS) -I . $(INCDIR) $(LDFLAGS) $(SRC) -o bf-test.elf
|
||||
|
||||
.PHONY: all clean prj dirs
|
||||
.SECONDEXPANSION:
|
||||
|
||||
all: dirs $(RESULT_FILES)
|
||||
|
||||
|
||||
$(OBJS) : $$(filter %/$$(basename $$(notdir $$@)).c, $$(SRC)) ##$$(patsubst %.o,%.c, $$@)
|
||||
$(CC) -c $(CPFLAGS) -I . $(INCDIR) $< -o $@
|
||||
.PHONY: all clean prj dirs help print-toolchain
|
||||
.SECONDEXPANSION:
|
||||
|
||||
all: dirs $(RESULT_FILES)
|
||||
|
||||
help:
|
||||
@echo "Blackfin firmware build"
|
||||
@echo " make"
|
||||
@echo " make CONFIG=debug"
|
||||
@echo " make BFIN_TOOLCHAIN=/abs/path/to/bfin-elf"
|
||||
@echo " make CROSS_COMPILE=/abs/path/to/bin/bfin-elf-"
|
||||
@echo " make print-toolchain"
|
||||
|
||||
print-toolchain:
|
||||
@echo "TRGT=$(TRGT)"
|
||||
@echo "CC=$(CC)"
|
||||
@echo "AS=$(AS)"
|
||||
@echo "CP=$(CP)"
|
||||
@echo "LDR=$(LDR)"
|
||||
|
||||
|
||||
$(OBJS) : $$(filter %/$$(basename $$(notdir $$@)).c, $$(SRC)) ##$$(patsubst %.o,%.c, $$@)
|
||||
$(CC) -c $(CPFLAGS) -I . $(INCDIR) $< -o $@
|
||||
|
||||
$(AOBJS) : $(ASRC)
|
||||
$(AS) -c $(CPFLAGS) -I . $(INCDIR) $< -o $@
|
||||
@ -153,23 +205,23 @@ dirs: $(BUILDDIR) $(CONFIGDIR) $(DEPDIR) $(OBJDIR) $(LSTDIR) $(BINDIR)
|
||||
|
||||
|
||||
|
||||
$(BINDIR):
|
||||
mkdir $(BINDIR)
|
||||
|
||||
$(LSTDIR):
|
||||
mkdir $(LSTDIR)
|
||||
|
||||
$(OBJDIR):
|
||||
mkdir $(OBJDIR)
|
||||
|
||||
$(BUILDDIR):
|
||||
mkdir $(BUILDDIR)
|
||||
|
||||
$(CONFIGDIR):
|
||||
mkdir $(CONFIGDIR)
|
||||
|
||||
$(DEPDIR):
|
||||
mkdir $(DEPDIR)
|
||||
$(BINDIR):
|
||||
mkdir -p $(BINDIR)
|
||||
|
||||
$(LSTDIR):
|
||||
mkdir -p $(LSTDIR)
|
||||
|
||||
$(OBJDIR):
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
$(BUILDDIR):
|
||||
mkdir -p $(BUILDDIR)
|
||||
|
||||
$(CONFIGDIR):
|
||||
mkdir -p $(CONFIGDIR)
|
||||
|
||||
$(DEPDIR):
|
||||
mkdir -p $(DEPDIR)
|
||||
|
||||
clean:
|
||||
-rm -fR $(CONFIGDIR)
|
||||
|
||||
Reference in New Issue
Block a user