new top_makefile with real make targets. All CC3D variants now with their own names, no more clashes and confusion. MAkefile still backwards compatible.

This commit is contained in:
Anders Hoglund 2015-11-25 01:18:10 +01:00
parent e6e5e3e33b
commit 4a65eadb52
5 changed files with 144 additions and 24 deletions

View File

@ -8,6 +8,7 @@ TARGET_FILE=obj/cleanflight_${TARGET}
TRAVIS_REPO_SLUG=${TRAVIS_REPO_SLUG:=$USER/undefined}
BUILDNAME=${BUILDNAME:=travis}
TRAVIS_BUILD_NUMBER=${TRAVIS_BUILD_NUMBER:=undefined}
MAKEFILE="-f Makefile"
CURL_BASEOPTS=(
"--retry" "10"
@ -51,7 +52,7 @@ elif [ $PUBLISHMETA ] ; then
else
if [ $PUBLISH_URL ] ; then
make -j2
make -j2 $MAKEFILE
if [ -f ${TARGET_FILE}.bin ] ; then
TARGET_FILE=${TARGET_FILE}.bin
elif [ -f ${TARGET_FILE}.hex ] ; then
@ -64,6 +65,6 @@ else
curl -k "${CURL_BASEOPTS[@]}" "${CURL_PUB_BASEOPTS[@]}" --form "file=@${TARGET_FILE}" ${PUBLISH_URL} || true
exit 0;
else
make -j2
make -j2 $MAKEFILE
fi
fi

View File

@ -3,7 +3,9 @@ env:
- PUBLISHMETA=True
- PUBLISHDOCS=True
- TARGET=CC3D
- TARGET=CC3D OPBL=yes
- TARGET=CC3D_OPBL
- TARGET=CC3D_BP6
- TARGET=CC3D_OPBL_BP6
- TARGET=COLIBRI_RACE
- TARGET=CHEBUZZF3
- TARGET=CJMCU

View File

@ -11,6 +11,8 @@
#
###############################################################################
# Things that the user might override on the commandline
#
@ -38,21 +40,34 @@ FLASH_SIZE ?=
FORKNAME = betaflight
VALID_TARGETS = NAZE NAZE32PRO OLIMEXINO STM32F3DISCOVERY CHEBUZZF3 CC3D CJMCU EUSTM32F103RC SPRACINGF3 PORT103R SPARKY ALIENWIIF1 ALIENWIIF3 COLIBRI_RACE MOTOLAB RMDO IRCFUSIONF3
CC3D_TARGETS = CC3D CC3D_OPBL CC3D_BP6 CC3D_OPBL_BP6
VALID_TARGETS = NAZE NAZE32PRO OLIMEXINO STM32F3DISCOVERY CHEBUZZF3 $(CC3D_TARGETS) CJMCU EUSTM32F103RC SPRACINGF3 PORT103R SPARKY ALIENWIIF1 ALIENWIIF3 COLIBRI_RACE MOTOLAB RMDO IRCFUSIONF3
# Valid targets for OP VCP support
VCP_VALID_TARGETS = $(CC3D_TARGETS)
# Valid targets for OP BootLoader support
OPBL_VALID_TARGETS = CC3D
OPBL_VALID_TARGETS = CC3D_OPBL CC3D_OPBL_BP6
BP6_VALID_TARGETS = CC3D_BP6 CC3D_OPBL_BP6
64K_TARGETS = CJMCU
128K_TARGETS = ALIENWIIF1 $(CC3D_TARGETS) NAZE OLIMEXINO RMDO
256K_TARGETS = EUSTM32F103RC PORT103R STM32F3DISCOVERY CHEBUZZF3 NAZE32PRO SPRACINGF3 IRCFUSIONF3 SPARKY ALIENWIIF3 COLIBRI_RACE MOTOLAB
F3_TARGETS = STM32F3DISCOVERY CHEBUZZF3 NAZE32PRO SPRACINGF3 IRCFUSIONF3 SPARKY ALIENWIIF3 COLIBRI_RACE MOTOLAB RMDO
# Configure default flash sizes for the targets
ifeq ($(FLASH_SIZE),)
ifeq ($(TARGET),$(filter $(TARGET),CJMCU))
ifeq ($(TARGET),$(filter $(TARGET),$(64K_TARGETS)))
FLASH_SIZE = 64
else ifeq ($(TARGET),$(filter $(TARGET),ALIENWIIF1 CC3D NAZE OLIMEXINO RMDO))
else ifeq ($(TARGET),$(filter $(TARGET),$(128K_TARGETS)))
FLASH_SIZE = 128
else ifeq ($(TARGET),$(filter $(TARGET),EUSTM32F103RC PORT103R STM32F3DISCOVERY CHEBUZZF3 NAZE32PRO SPRACINGF3 IRCFUSIONF3 SPARKY ALIENWIIF3 COLIBRI_RACE MOTOLAB))
else ifeq ($(TARGET),$(filter $(TARGET),$(256K_TARGETS)))
FLASH_SIZE = 256
else
$(error FLASH_SIZE not configured for target)
$(error FLASH_SIZE not configured for target $(TARGET))
endif
endif
@ -72,7 +87,7 @@ VPATH := $(SRC_DIR):$(SRC_DIR)/startup
USBFS_DIR = $(ROOT)/lib/main/STM32_USB-FS-Device_Driver
USBPERIPH_SRC = $(notdir $(wildcard $(USBFS_DIR)/src/*.c))
ifeq ($(TARGET),$(filter $(TARGET),STM32F3DISCOVERY CHEBUZZF3 NAZE32PRO SPRACINGF3 IRCFUSIONF3 SPARKY ALIENWIIF3 COLIBRI_RACE MOTOLAB RMDO))
ifeq ($(TARGET),$(filter $(TARGET),$(F3_TARGETS)))
CSOURCES := $(shell find $(SRC_DIR) -name '*.c')
@ -180,7 +195,7 @@ INCLUDE_DIRS := $(INCLUDE_DIRS) \
DEVICE_STDPERIPH_SRC = $(STDPERIPH_SRC)
ifeq ($(TARGET),CC3D)
ifeq ($(TARGET),$(filter $(TARGET), $(VCP_VALID_TARGETS)))
INCLUDE_DIRS := $(INCLUDE_DIRS) \
$(USBFS_DIR)/inc \
$(ROOT)/src/main/vcp
@ -213,6 +228,36 @@ TARGET_FLAGS := $(TARGET_FLAGS) -DNAZE -DALIENWII32
TARGET_DIR = $(ROOT)/src/main/target/NAZE
endif
ifeq ($(TARGET),$(filter $(TARGET), $(CC3D_TARGETS)))
TARGET_FLAGS := $(TARGET_FLAGS) -DCC3D
TARGET_DIR = $(ROOT)/src/main/target/CC3D
endif
ifneq ($(filter $(TARGET),$(OPBL_VALID_TARGETS)),)
OPBL=yes
endif
ifeq ($(OPBL),yes)
ifneq ($(filter $(TARGET),$(OPBL_VALID_TARGETS)),)
TARGET_FLAGS := -DOPBL $(TARGET_FLAGS)
LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f103_$(FLASH_SIZE)k_opbl.ld
.DEFAULT_GOAL := binary
else
$(error OPBL specified with a unsupported target)
endif
endif
ifneq ($(filter $(TARGET),$(BP6_VALID_TARGETS)),)
BP6=yes
endif
ifeq ($(BP6),yes)
TARGET_FLAGS := -DBEEPER_PIN6 $(TARGET_FLAGS)
endif
INCLUDE_DIRS := $(INCLUDE_DIRS) \
$(TARGET_DIR)
@ -410,16 +455,6 @@ OLIMEXINO_SRC = startup_stm32f10x_md_gcc.S \
$(HIGHEND_SRC) \
$(COMMON_SRC)
ifeq ($(OPBL),yes)
ifneq ($(filter $(TARGET),$(OPBL_VALID_TARGETS)),)
TARGET_FLAGS := -DOPBL $(TARGET_FLAGS)
LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f103_$(FLASH_SIZE)k_opbl.ld
.DEFAULT_GOAL := binary
else
$(error OPBL specified with a unsupported target)
endif
endif
CJMCU_SRC = \
startup_stm32f10x_md_gcc.S \
drivers/adc.c \
@ -705,6 +740,10 @@ ifeq ($(filter $(TARGET),$(VALID_TARGETS)),)
$(error Target '$(TARGET)' is not valid, must be one of $(VALID_TARGETS))
endif
CC3D_OPBL_SRC = $(CC3D_SRC)
CC3D_OPBL_BP6_SRC = $(CC3D_SRC)
CC3D_BP6_SRC = $(CC3D_SRC)
TARGET_BIN = $(BIN_DIR)/$(FORKNAME)_$(TARGET).bin
TARGET_HEX = $(BIN_DIR)/$(FORKNAME)_$(TARGET).hex
TARGET_ELF = $(OBJECT_DIR)/$(FORKNAME)_$(TARGET).elf
@ -775,6 +814,7 @@ st-flash_$(TARGET): $(TARGET_BIN)
st-flash: st-flash_$(TARGET)
binary: $(TARGET_BIN)
hex: $(TARGET_HEX)
unbrick_$(TARGET): $(TARGET_HEX)
stty -F $(SERIAL_DEVICE) raw speed 115200 -crtscts cs8 -parenb -cstopb -ixon

View File

@ -3,7 +3,9 @@
targets=("PUBLISHMETA=True" \
"RUNTESTS=True" \
"TARGET=CC3D" \
"TARGET=CC3D OPBL=yes" \
"TARGET=CC3D_OPBL" \
"TARGET=CC3D_BP6" \
"TARGET=CC3D_OPBL_BP6" \
"TARGET=CHEBUZZF3" \
"TARGET=CJMCU" \
"TARGET=COLIBRI_RACE" \
@ -26,8 +28,8 @@ export TRAVIS_REPO_SLUG=${TRAVIS_REPO_SLUG:=$USER/simulated}
for target in "${targets[@]}"
do
unset RUNTESTS PUBLISHMETA TARGET OPBL
unset RUNTESTS PUBLISHMETA TARGET
eval "export $target"
make clean
make -f Makefile clean
./.travis.sh
done

75
top_makefile Normal file
View File

@ -0,0 +1,75 @@
ALL_TARGETS := naze \
cc3d \
cc3d_opbl \
cc3d_bp6 \
cc3d_opbl_bp6 \
nazepro \
olimexino \
stm32f3discovery \
chebuzzf3 \
cjmcu \
eustm32f103rc \
spracingf3 \
port103r \
sparky \
alienwiif1 \
alienwiif3 \
colibri_race \
motolab \
rmdo \
ircfusionf3 \
CLEAN_TARGETS := $(addprefix clean_, $(ALL_TARGETS))
clean_naze naze : opts := TARGET=NAZE
clean_cc3d cc3d: opts := TARGET=CC3D
clean_cc3d_opbl cc3d_opbl : opts := TARGET=CC3D_OPBL
clean_cc3d_bp6 cc3d_bp6 : opts := TARGET=CC3D_BP6
clean_cc3d_opbl_bp6 cc3d_opbl_bp6 : opts := TARGET=CC3D_OPBL_BP6
clean_nazepro nazepro : opts := TARGET=NAZE32PRO
clean_olimexino olimexino : opts := TARGET=OLIMEXINO
clean_stm32f3discovery stm32f3discovery : opts := TARGET=STM32F3DISCOVERY
clean_chebuzzf3 chebuzzf3 : opts := TARGET=CHEBUZZF3
clean_cjmcu cjmcu : opts := TARGET=CJMCU
clean_eustm32f103rc eustm32f103rc : opts := TARGET=EUSTM32F103RC
clean_spracingf3 spracingf3 : opts := TARGET=SPRACINGF3
clean_port103r port103r : opts := TARGET=PORT103R
clean_sparky sparky : opts := TARGET=SPARKY
clean_alienwiif1 alienwiif1 : opts := TARGET=ALIENWIIF1
clean_alienwiif3 alienwiif3 : opts := TARGET=ALIENWIIF3
clean_colibri_race colibri_race : opts := TARGET=COLIBRI_RACE
clean_motolab motolab : opts := TARGET=MOTOLAB
clean_rmdo rmdo : opts := TARGET=RMDO
clean_ircfusionf3 ircfusionf3 : opts := TARGET=IRCFUSIONF3
.PHONY: all clean
all: everything
clean: clean_everything
.PHONY: clean_everything
clean_everything: $(CLEAN_TARGETS)
.PHONY: everything
everything: $(ALL_TARGETS)
.PHONY:$(ALL_TARGETS)
$(ALL_TARGETS):
make -f Makefile $(opts)
.PHONY: $(CLEAN_TARGETS)
$(CLEAN_TARGETS):
make -f Makefile clean $(opts)
.PHONY: help
help:
@echo "This is your new top makefile. synopsis: make <target>" .
@echo "Valid targets":
@echo "all"
@echo "clean"
@echo "$(ALL_TARGETS)"
@echo "$(CLEAN_TARGETS)"