mirror of
https://github.com/apache/nuttx.git
synced 2026-05-30 21:36:28 +08:00
Build System: Resolve CPU-specific logic in common build files
* tools/Config.mk - Add empty definition POSTBUILD * tools/Makefile.unix/win - Replace CXD56xx specific logic with $(call POSTBUILD) * boards/arm/cxd56xx/scripts/Config.mk - Add POSTBUILD definitions with logic removed from Makefile.unix/win * boards/arm/cxd56xx/spresense/scripts/Make.defs - Include the CXD56xx Config.mk immediately after tools/Config.mk so that the empty POSTBUILD definition will be replaced with the correct one NOTE: There is a precedent for this approach. This is the way that other architecture-specific build options are implemented. See, for example, tools/zds/Config.mk
This commit is contained in:
@@ -0,0 +1,41 @@
|
|||||||
|
############################################################################
|
||||||
|
# board/arm/cxd56xx/script/Config.mk
|
||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
# contributor license agreements. See the NOTICE file distributed with
|
||||||
|
# this work for additional information regarding copyright ownership. The
|
||||||
|
# ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance with the
|
||||||
|
# License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
# These are the macros that will be used in the NuttX make system to compile
|
||||||
|
# and assembly source files and to insert the resulting object files into an
|
||||||
|
# archive. These replace the default definitions at tools/Config.mk
|
||||||
|
|
||||||
|
# POSTBUILD -- Perform post build operations
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_CXD56_BINARY),y)
|
||||||
|
define POSTBUILD
|
||||||
|
$(Q) if [ ! -f "tools/cxd56/mkspk" ] ; then \
|
||||||
|
echo ""; \
|
||||||
|
echo "Please run the following command to build the needed tool"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "cd tools/cxd56 && make && cd ../.."; \
|
||||||
|
echo ""; \
|
||||||
|
echo "run make again to create the nuttx.spk image."; \
|
||||||
|
else \
|
||||||
|
echo "Generating: $(NUTTXNAME).spk"; \
|
||||||
|
tools/cxd56/mkspk -c2 nuttx nuttx nuttx.spk; \
|
||||||
|
fi
|
||||||
|
endef
|
||||||
|
endif
|
||||||
@@ -35,6 +35,7 @@
|
|||||||
|
|
||||||
include ${TOPDIR}/.config
|
include ${TOPDIR}/.config
|
||||||
include ${TOPDIR}/tools/Config.mk
|
include ${TOPDIR}/tools/Config.mk
|
||||||
|
include ${TOPDIR}/boards/arm/cxd56xx/scripts/Config.mk
|
||||||
include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs
|
include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs
|
||||||
|
|
||||||
# Setup for the kind of memory that we are executing from
|
# Setup for the kind of memory that we are executing from
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
include $(TOPDIR)/.config
|
include $(TOPDIR)/.config
|
||||||
include $(TOPDIR)/tools/Config.mk
|
include $(TOPDIR)/tools/Config.mk
|
||||||
include ${TOPDIR}/arch/z16/src/z16f/Toolchain.defs
|
include ${TOPDIR}/arch/z16/src/z16f/Toolchain.defs
|
||||||
include $(TOPDIR)/tools/zds/zds_Config.mk
|
include $(TOPDIR)/tools/zds/Config.mk
|
||||||
|
|
||||||
# CFLAGS
|
# CFLAGS
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
include $(TOPDIR)/.config
|
include $(TOPDIR)/.config
|
||||||
include $(TOPDIR)/tools/Config.mk
|
include $(TOPDIR)/tools/Config.mk
|
||||||
include ${TOPDIR}/arch/z80/src/ez80/Toolchain.defs
|
include ${TOPDIR}/arch/z80/src/ez80/Toolchain.defs
|
||||||
include $(TOPDIR)/tools/zds/zds_Config.mk
|
include $(TOPDIR)/tools/zds/Config.mk
|
||||||
|
|
||||||
# CFLAGS
|
# CFLAGS
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
include $(TOPDIR)/.config
|
include $(TOPDIR)/.config
|
||||||
include $(TOPDIR)/tools/Config.mk
|
include $(TOPDIR)/tools/Config.mk
|
||||||
include ${TOPDIR}/arch/z80/src/ez80/Toolchain.defs
|
include ${TOPDIR}/arch/z80/src/ez80/Toolchain.defs
|
||||||
include $(TOPDIR)/tools/zds/zds_Config.mk
|
include $(TOPDIR)/tools/zds/Config.mk
|
||||||
|
|
||||||
# CFLAGS
|
# CFLAGS
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
include $(TOPDIR)/.config
|
include $(TOPDIR)/.config
|
||||||
include $(TOPDIR)/tools/Config.mk
|
include $(TOPDIR)/tools/Config.mk
|
||||||
include ${TOPDIR}/arch/z80/src/ez80/Toolchain.defs
|
include ${TOPDIR}/arch/z80/src/ez80/Toolchain.defs
|
||||||
include $(TOPDIR)/tools/zds/zds_Config.mk
|
include $(TOPDIR)/tools/zds/Config.mk
|
||||||
|
|
||||||
# CFLAGS
|
# CFLAGS
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
include $(TOPDIR)/.config
|
include $(TOPDIR)/.config
|
||||||
include $(TOPDIR)/tools/Config.mk
|
include $(TOPDIR)/tools/Config.mk
|
||||||
include ${TOPDIR}/arch/z80/src/ez80/Toolchain.defs
|
include ${TOPDIR}/arch/z80/src/ez80/Toolchain.defs
|
||||||
include $(TOPDIR)/tools/zds/zds_Config.mk
|
include $(TOPDIR)/tools/zds/Config.mk
|
||||||
|
|
||||||
# CFLAGS
|
# CFLAGS
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
include $(TOPDIR)/.config
|
include $(TOPDIR)/.config
|
||||||
include $(TOPDIR)/tools/Config.mk
|
include $(TOPDIR)/tools/Config.mk
|
||||||
include ${TOPDIR}/arch/z80/src/z8/Toolchain.defs
|
include ${TOPDIR}/arch/z80/src/z8/Toolchain.defs
|
||||||
include $(TOPDIR)/tools/zds/zds_Config.mk
|
include $(TOPDIR)/tools/zds/Config.mk
|
||||||
|
|
||||||
# CFLAGS
|
# CFLAGS
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
include $(TOPDIR)/.config
|
include $(TOPDIR)/.config
|
||||||
include $(TOPDIR)/tools/Config.mk
|
include $(TOPDIR)/tools/Config.mk
|
||||||
include ${TOPDIR}/arch/z80/src/z8/Toolchain.defs
|
include ${TOPDIR}/arch/z80/src/z8/Toolchain.defs
|
||||||
include $(TOPDIR)/tools/zds/zds_Config.mk
|
include $(TOPDIR)/tools/zds/Config.mk
|
||||||
|
|
||||||
# CFLAGS
|
# CFLAGS
|
||||||
ifeq ($(CONFIG_WINDOWS_NATIVE),y)
|
ifeq ($(CONFIG_WINDOWS_NATIVE),y)
|
||||||
|
|||||||
+10
-1
@@ -2,7 +2,7 @@
|
|||||||
# tools/Config.mk
|
# tools/Config.mk
|
||||||
# Global build rules and macros.
|
# Global build rules and macros.
|
||||||
#
|
#
|
||||||
# Copyright (C) 2011, 2013-2014, 2018-2019 Gregory Nutt. All rights
|
# Copyright (C) 2011, 2013-2014, 2018-2019, 2020 Gregory Nutt. All rights
|
||||||
# reserved.
|
# reserved.
|
||||||
# Author: Richard Cochran
|
# Author: Richard Cochran
|
||||||
# Gregory Nutt <gnutt@nuttx.org>
|
# Gregory Nutt <gnutt@nuttx.org>
|
||||||
@@ -239,6 +239,15 @@ define PRELINK
|
|||||||
endef
|
endef
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# POSTBUILD -- Perform post build operations
|
||||||
|
# Some architectures require the use of special tools and special handling
|
||||||
|
# AFTER building the NuttX binary. Make.defs files for thos architectures
|
||||||
|
# should override the following define with the correct operations for
|
||||||
|
# that platform
|
||||||
|
|
||||||
|
define POSTBUILD
|
||||||
|
endef
|
||||||
|
|
||||||
# DELFILE - Delete one file
|
# DELFILE - Delete one file
|
||||||
|
|
||||||
ifeq ($(CONFIG_WINDOWS_NATIVE),y)
|
ifeq ($(CONFIG_WINDOWS_NATIVE),y)
|
||||||
|
|||||||
+1
-13
@@ -480,19 +480,6 @@ ifeq ($(CONFIG_RAW_BINARY),y)
|
|||||||
@echo "CP: $(NUTTXNAME).bin"
|
@echo "CP: $(NUTTXNAME).bin"
|
||||||
$(Q) $(OBJCOPY) $(OBJCOPYARGS) -O binary $(BIN) $(NUTTXNAME).bin
|
$(Q) $(OBJCOPY) $(OBJCOPYARGS) -O binary $(BIN) $(NUTTXNAME).bin
|
||||||
endif
|
endif
|
||||||
ifeq ($(CONFIG_CXD56_BINARY),y)
|
|
||||||
$(Q) if [ ! -f "tools/cxd56/mkspk" ] ; then \
|
|
||||||
echo ""; \
|
|
||||||
echo "Please run the following command to build the needed tool"; \
|
|
||||||
echo ""; \
|
|
||||||
echo "cd tools/cxd56 && make && cd ../.."; \
|
|
||||||
echo ""; \
|
|
||||||
echo "run make again to create the nuttx.spk image."; \
|
|
||||||
else \
|
|
||||||
echo "Generating: $(NUTTXNAME).spk"; \
|
|
||||||
tools/cxd56/mkspk -c2 nuttx nuttx nuttx.spk; \
|
|
||||||
fi
|
|
||||||
endif
|
|
||||||
ifeq ($(CONFIG_UBOOT_UIMAGE),y)
|
ifeq ($(CONFIG_UBOOT_UIMAGE),y)
|
||||||
@echo "MKIMAGE: uImage"
|
@echo "MKIMAGE: uImage"
|
||||||
$(Q) mkimage -A $(CONFIG_ARCH) -O linux -C none -T kernel -a $(CONFIG_UIMAGE_LOAD_ADDRESS) \
|
$(Q) mkimage -A $(CONFIG_ARCH) -O linux -C none -T kernel -a $(CONFIG_UIMAGE_LOAD_ADDRESS) \
|
||||||
@@ -501,6 +488,7 @@ ifeq ($(CONFIG_UBOOT_UIMAGE),y)
|
|||||||
cp -f uImage /tftpboot/uImage; \
|
cp -f uImage /tftpboot/uImage; \
|
||||||
fi
|
fi
|
||||||
endif
|
endif
|
||||||
|
$(call POSTBUILD)
|
||||||
|
|
||||||
# $(BIN)
|
# $(BIN)
|
||||||
#
|
#
|
||||||
|
|||||||
+1
-13
@@ -490,19 +490,7 @@ ifeq ($(CONFIG_RAW_BINARY),y)
|
|||||||
@echo "CP: $(NUTTXNAME).bin"
|
@echo "CP: $(NUTTXNAME).bin"
|
||||||
$(Q) $(OBJCOPY) $(OBJCOPYARGS) -O binary $(BIN) $(NUTTXNAME).bin
|
$(Q) $(OBJCOPY) $(OBJCOPYARGS) -O binary $(BIN) $(NUTTXNAME).bin
|
||||||
endif
|
endif
|
||||||
ifeq ($(CONFIG_CXD56_BINARY),y)
|
$(call POSTBUILD)
|
||||||
$(Q) if [ ! -f "tools/cxd56/mkspk.exe" ] ; then \
|
|
||||||
echo ""; \
|
|
||||||
echo "Please run the following command to build the needed tool"; \
|
|
||||||
echo ""; \
|
|
||||||
echo "cd tools/cxd56 && make && cd ../.."; \
|
|
||||||
echo ""; \
|
|
||||||
echo "run make again to create the nuttx.spk image."; \
|
|
||||||
else \
|
|
||||||
echo "Generating: $(NUTTXNAME).spk"; \
|
|
||||||
tools\cxd56\mkspk.exe -c2 nuttx nuttx nuttx.spk; \
|
|
||||||
fi
|
|
||||||
endif
|
|
||||||
|
|
||||||
# $(BIN)
|
# $(BIN)
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
############################################################################
|
############################################################################
|
||||||
# tools/zds/zds_Config.defs
|
# tools/zds/Config.mk
|
||||||
#
|
#
|
||||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
# contributor license agreements. See the NOTICE file distributed with
|
# contributor license agreements. See the NOTICE file distributed with
|
||||||
@@ -7,10 +7,10 @@ tools/zds/zdsar.c: This is a wrapper around the ZDS_II librarian. It
|
|||||||
the build files but it also improves performance and, more importantly,i
|
the build files but it also improves performance and, more importantly,i
|
||||||
provides a common solution for the Windows native build case.
|
provides a common solution for the Windows native build case.
|
||||||
|
|
||||||
tools/zds/zds_Config.mk: This makefile fragment is include by ZDS-II
|
tools/zds/Config.mk: This makefile fragment is include by ZDS-II Make.defs
|
||||||
Make.defs files after including tools/Config.mk. The definitions in this
|
files after including tools/Config.mk. The definitions in this file
|
||||||
file override some of the the definitions in tools/Config.mk to customize
|
override some of the the definitions in tools/Config.mk to customize the
|
||||||
the build for use with the ZDS-II tools.
|
build for use with the ZDS-II tools.
|
||||||
|
|
||||||
These tools should work with all ZDS-II based platforms including z8, zNeo,
|
These tools should work with all ZDS-II based platforms including z8, zNeo,
|
||||||
and ez80.
|
and ez80.
|
||||||
|
|||||||
Reference in New Issue
Block a user