px4-firmware/makefiles
Mark Charlebois 43345e29dc Makefile multi-target support
NuttX is still the default target and all NuttX configs can still
be built with:

make

Individual NuttX, POSIX, and QuRT configs can now be built more
easily by specifying the target and configs:

make posix posix_default
make qurt qurt_hello
make nuttx aerocore_default

Running make with just the target will make all the configs for
that target:

make nuttx
make qurt
make posix

The help is also target specific:
make nuttx help
make qurt help
make posix help

"make help" will still assume you want help for the NuttX target

Added a new QuRT config called qurt_hello as a sample config to
test buiding in different commands for separate configs.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-20 19:19:08 -07:00
..
nuttx Merge remote-tracking branch 'upstream/master' into linux 2015-05-06 15:51:39 -07:00
posix build mc_pos_control 2015-05-14 14:58:46 +02:00
qurt Makefile multi-target support 2015-05-20 19:19:08 -07:00
README.txt Linux to posix conversion 2015-04-21 09:53:09 -07:00
firmware.mk NuttX: fixes for NuttX build 2015-05-15 12:56:18 -07:00
firmware_nuttx.mk checksubmodules target needed for Linux build 2015-04-20 10:46:44 -07:00
firmware_posix.mk Makefile multi-target support 2015-05-20 19:19:08 -07:00
firmware_qurt.mk Makefile multi-target support 2015-05-20 19:19:08 -07:00
library.mk Refactoring for multiplatform support 2015-04-20 10:46:43 -07:00
module.mk Initial Linux support including execution shell 2015-04-20 10:46:43 -07:00
nuttx.mk NuttX: fixes for NuttX build 2015-05-15 12:56:18 -07:00
nuttx_romfs.mk Merge branch 'master' into linux 2015-04-22 10:38:46 -07:00
posix.mk Linux to posix conversion 2015-04-21 09:53:09 -07:00
posix_elf.mk Linux to posix conversion 2015-04-21 09:53:09 -07:00
qurt.mk QuRT and POSIX changes 2015-04-24 00:52:44 -07:00
qurt_elf.mk QuRT: enable uORB, and simulator 2015-05-13 18:03:08 -07:00
setup.mk Commented out 1st definition of MAVLINK_SRC 2015-05-04 15:48:06 -07:00
toolchain_gnu-arm-eabi.mk Nuttx: remove -Wframe-larger-than=1024 2015-05-05 12:16:23 -07:00
toolchain_hexagon.mk QuRT: Added define so pthread functions are enabled 2015-05-18 12:21:53 -07:00
toolchain_native.mk Logging fixes and enhancements 2015-05-19 11:53:19 -07:00
upload.mk Linux to posix conversion 2015-04-21 09:53:09 -07:00

README.txt

PX4 Build System
================

The files in this directory implement the PX4 runtime firmware build system
and configuration for the standard PX4 boards and software, in conjunction
with Makefile in the parent directory.

../Makefile

	Top-level makefile for the PX4 build system. 
	This makefile supports building NuttX archives for the NuttX based
	configurations, as well as supervising the building of all
	of the defined PX4 firmware configurations.

	Try 'make help' in the parent directory for documentation.

firmware.mk

	Manages the build for one specific firmware configuration. 
	See the comments at the top of this file for detailed documentation.

	Builds modules, builtin command lists and the ROMFS (if configured).

	This is the makefile directly used by external build systems; it can
	be configured to compile modules both inside and outside the PX4
	source tree. When used in this mode, at least BOARD, MODULES and 
	CONFIG_FILE must be set.

firmware_nuttx.mk

	Called by firmware.mk to build NuttX based firmware.

firmware_posix.mk

	Called by firmware.mk to build POSIX (non-ROS) based firmware.

module.mk

	Called by firmware.mk to build individual modules.
	See the comments at the top of this file for detailed documentation.

	Not normally used other than by firmware.mk.

nuttx.mk

	Called by ../Makefile to build or download the NuttX archives if 
	PX4_TARGET_OS is set to "nuttx".

posix.mk

	Called by ../Makefile to set POSIX specific parameters if 
	PX4_TARGET_OS is set to "posix".

upload.mk

	Called by ../Makefile to upload files to a target board. Can be used
	by external build systems as well. (NuttX targets only)

setup.mk

	Provides common path and tool definitions. Implements host 
	system-specific compatibility hacks. Sets PX4_TARGET_OS.

board_<boardname>.mk

	Board-specific configuration for <boardname>. Typically sets 
	CONFIG_ARCH and then includes the toolchain definition for the board.

config_<boardname>_<configname>.mk

	Parameters for a specific configuration on a specific board.
	The board name is derived from the filename.  Sets MODULES to select
	source modules to be included in the configuration, may also set
	ROMFS_ROOT to build a ROMFS and BUILTIN_COMMANDS to include non-module
	commands (e.g. from NuttX)

toolchain_<toolchainname>.mk

	Provides macros used to compile and link source files.
	Accepts EXTRADEFINES to add additional pre-processor symbol definitions,
	EXTRACFLAGS, EXTRACXXFLAGS, EXTRAAFLAGS and EXTRALDFLAGS to pass
	additional flags to the C compiler, C++ compiler, assembler and linker
	respectively.

	Defines the COMPILE, COMPILEXX, ASSEMBLE, PRELINK, ARCHIVE and LINK
	macros that are used elsewhere in the build system.