1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-11-29 07:24:13 +01:00
Commit Graph

258 Commits

Author SHA1 Message Date
Oleg Semyonov
0414231408 Move uncrustify config from flight to make/uncrustify/ 2013-04-24 22:49:17 +03:00
Oleg Semyonov
748b28f4f4 Move doxygen config from flight to make/doxygen/ 2013-04-24 22:44:40 +03:00
Oleg Semyonov
33ed88e696 Merge remote-tracking branch 'origin/next' into os/OP-899_board-rename-and-config-rework 2013-04-24 21:28:33 +02:00
Oleg Semyonov
fb207bdaf7 OP-896: rename SensorTest to RevoProto 2013-04-24 00:57:33 +03:00
Oleg Semyonov
27195b7327 OP-899: move UAVObjects and UAVTalk one level up from targets 2013-04-24 00:07:07 +03:00
Oleg Semyonov
1dd20eca33 OP-899: move board_hw_defs.c under board directories and fix some includes 2013-04-24 00:07:06 +03:00
Oleg Semyonov
f7f842687a OP-899: rename System to firmware and move Makefile into it 2013-04-24 00:07:06 +03:00
Oleg Semyonov
fce12662bc OP-899: move bootloaders under board directories 2013-04-24 00:07:06 +03:00
Oleg Semyonov
f01655efed OP-899: get rid of board_friendly names 2013-04-24 00:07:06 +03:00
Oleg Semyonov
c33ff12faa OP-899: rename targets/common/CamelStyle to unix_style 2013-04-24 00:07:05 +03:00
Oleg Semyonov
63573fac16 OP-899: move EF and BU to targets/common 2013-04-24 00:07:05 +03:00
Oleg Semyonov
fc845888d3 OP-899: move board targets under targets/boards 2013-04-24 00:07:05 +03:00
Oleg Semyonov
399cafe7d7 OP-896: rename RevoMini to Revolution 2013-04-24 00:07:05 +03:00
Oleg Semyonov
6afbef01eb OP-896: rename Revo to SensorTest 2013-04-24 00:07:04 +03:00
Oleg Semyonov
1ded536056 OP-896: rename OPLink to OPLinkMini 2013-04-24 00:07:04 +03:00
Brian Webb
ba7b712cf1 Changed all references to PipXtreme on flight side to OPLink. 2013-04-24 00:07:03 +03:00
Oleg Semyonov
8d1e1fdbc0 tools: make uncrustify_install target, script and base config file
See also: OPIN-3
2013-04-22 21:35:25 +02:00
Oleg Semyonov
59f8a99ab7 make: warn users about old ARM toolchain instead of cryptic 'no such file' error 2013-04-16 21:26:36 +02:00
Oleg Semyonov
3b3377e6f4 Merge remote-tracking branch 'origin/os/friendly-toolchain-install' into next 2013-04-15 01:24:42 +02:00
Oleg Semyonov
9cc0abe262 makefile: use correct opfw_resource file name as dependancy
When 'opfw_resource' target is used as a dependency, it seems that make
can't determine when the resource file is remade, and sometimes may
start building GCS before the resource really exists. This is an attempt
to fix that issue by referencing the real file instead of phony target.
2013-04-12 17:55:23 +03:00
Oleg Semyonov
e15c40b35d makefile: deprecate CLEAN_BUILD option (use clean_package or package instead) 2013-04-12 17:03:32 +03:00
Oleg Semyonov
34b15fedaf OP-719: make python_install (Windows) 2013-04-12 10:56:10 +02:00
Oleg Semyonov
e4d91218b6 OP-719: make qt_sdk_install mingw_install (Windows) 2013-04-12 10:56:07 +02:00
Oleg Semyonov
a12470f7a7 makefile: if all_fw or all_flight are requested, gcs will depend on opfw_resource 2013-04-12 10:55:58 +02:00
Oleg Semyonov
cab706125b Merge remote-tracking branch 'origin/os/get-rid-of-build-ground-dir' into next 2013-04-05 17:07:34 +02:00
Oleg Semyonov
eb9c6e48f2 tools: now OPENPILOT_* environment variables can use Windows style slashes 2013-04-05 00:42:56 +03:00
Oleg Semyonov
f57610dc78 tools: Makefile and sh.cmd minor updates (mostly comments) 2013-04-04 23:57:43 +03:00
Oleg Semyonov
7a5c04034f tools: update help message 2013-04-04 18:26:59 +03:00
Oleg Semyonov
f0780c96c6 tools: use global environment variables to set download and tools location
This allows to define OPENPILOT_DL_DIR and OPENPILOT_TOOLS_DIR to override
local tools download and installation directory. So the same toolchains
can be used for all working copies. Particularly useful for CI server
agents, but also for local installations.

Paths should use forward (unix-style) slashes.

If no OPENPILOT_* variables found, makefile internal DL_DIR and TOOLS_DIR
are used. They still can be overriden by the make command line parameters.
2013-04-04 16:33:19 +02:00
Oleg Semyonov
b67ce783f5 OP-719: upgrade ARM SDK to 4.7-2012q4, use 'make arm_sdk_install' to install
+review OPReview
2013-03-31 16:59:00 +02:00
Oleg Semyonov
3e815ca8d5 build: get rid of build/ground subdirectory, fix qt-creator builds
This changeset:
- moves all ground targets one level up, under build directory. The
  build/ground was created as a workaround, now unnecessary;
- fixes QtCreator builds, they are separated from command line builds;
- moves GCS autogenerated files into openpilotgcs-synthetics directory.

The resulting build subdirectory now looks like:

    build
        openpilotgcs             <- Qt-Creator build directory
        openpilotgcs-synthetics  <- version-info and opfw_resource
        openpilotgcs_debug
        openpilotgcs_release     <- Makefile build directory
        uavobject-synthetics
        uavobjgenerator

NOTE: you should update the shadow build path in QtCreator to build,
      not build/ground as before.

+review OPReview
2013-03-30 17:33:38 +02:00
Oleg Semyonov
587b12dd3e Makefile: using release build configuration for uavobjgenerator 2013-03-28 12:00:38 +02:00
Oleg Semyonov
9f0710f9d5 Makefile: add comment about Android GCS compatible version hashes 2013-03-24 17:00:15 +02:00
Oleg Semyonov
c2284d0c3f Makefile: fix package directory in the help message 2013-03-24 16:32:30 +02:00
Oleg Semyonov
8f977a4411 Final step: lot of small fixes, last commit in this commit series
This is the first cleanup pass through makefiles and pios.
Probably it is difficult to track changes due to the nature of them.
I would recommend to look at resulting files and compiled code instead.

NOTE: original branch was rebased and lot of conflicts were fixed on
the way. So do not expect that every commit in this series will be
buildable (unlike original branch). Only final result was tested.

The main goal was to remove as much duplication of code (and copy/paste
errors) as possible, moving common parts out of Makefiles. It still is
not perfect, and mostly no code changes made - Makefiles and #ifdefs only.
But please while testing make sure that all code works as before, and no
modules/options are missed by accident.

Brief list of changes:
- Moved common parts of Makefiles into the set of *.mk files.
- Changed method of passing common vars from top Makefile to lower ones.
- Some pios cleanup, mostly #ifdefs, and all pios_config.h files.
- Many obsolete files removed (for instance, AHRS files, op_config.h).
- Many obsolete or unused macros removed or fixed/renamed (ALL_DIGNOSTICS).
- Unified pios_config.h template. Please don't remove lines for board
  configs, only comment/uncomment them. Adding new PIOS options, please
  propagate them to all board files keeping the same order.
- Some formatting, spacing, indentation (no line endings change yet).
- Some cosmetic fixes (no more C:\X\Y\filename.c printings on Windows).
- Added some library.mk files to move libs into AR achives later.
- EntireFlash target now uses cross-platform python script to generate bin
  files. So it works on all supported platforms: Linux, OSX, Windows.
- Top level packaging is completely rewritten. Now it is a part of top
  Makefile. As such, all dependencies are checked and accounted, no
  more 'make -j' problems should occur.
- Default GCS_BUILD_CONF is release now, may be changed if necessary
  using 'make GCS_BUILD_CONF=debug gcs'.
- GCS build paths are separated into debug and release, so no more obj
  file clashes. Packaging system supports only release builds.
- New target is introduced: 'clean_package'. Now 'make package' does not
  clean build directory. Use clean_package instead for distributable builds.
- Targets like 'all', 'opfw_resource', etc now will print extra contex
  in parallel builds too.
- If any of 'package', 'clean_package', 'opfw_resource' targets are given
  on command line, GCS build will depend on the resource, so all fw_*.opfw
  targets will be built and embedded into GCS. By default GCS does not
  depend on resource, and will be built w/o firmware (unless the resource
  files already exist and the Qt resource file is generated).
- fw_simposix (ELF executable) is now packaged for linux. Run'n'play!
- Make help is refined and is now up to date.

Still broken:
- UnitTests, should be fixed
- SimPosix: buildable, but should be reworked.

Next planned passes to do:
- toolchain bootstrapping and packaging (including windows - WIP)
- CMSIS/StdPeriph lib cleanup
- more PIOS cleanup
- move libs into AR archives to save build time
- sim targets refactir and cleanup
- move android-related directories under <top>/android
- unit test targets fix
- source code line ending changes (there are many different, were not changed)
- coding style

Merging this, please use --no-ff git option to make it the real commit point

Conflicts:
	A lot of... :-)
2013-03-24 13:06:24 +02:00
Oleg Semyonov
151bd73bda Packaging: package ELF simposix file (executable), not OPFW (binary) 2013-03-24 13:06:23 +02:00
Oleg Semyonov
105e7d95c9 Packaging: now should work for all 3 platforms 2013-03-24 13:06:20 +02:00
Oleg Semyonov
096d0d7442 Packaging: move common part into the top Makefile
This includes all dependencies and generates package directory
with renamed firmware files.
2013-03-24 13:06:19 +02:00
Oleg Semyonov
bd033badb9 BootloaderUpdater: move one level up, now next to EntireFlash and Bootloaders 2013-03-24 13:06:18 +02:00
Oleg Semyonov
5f24378a4f EntireFlash: now works on all supported platforms 2013-03-24 13:06:17 +02:00
Oleg Semyonov
80db2ff79c Packaging: define package directory 2013-03-24 13:06:16 +02:00
Oleg Semyonov
8ea19c396c Makefile: now 'make all' also shows extra context 2013-03-24 13:06:14 +02:00
Oleg Semyonov
0957bbb498 Makefile: split GCS build directory into debug and release
Now by default GCS is built for release.
AeroSimRC also is placed under misc (as it is installed on Windows).
2013-03-24 13:06:13 +02:00
Oleg Semyonov
1407d4ce61 Makefile: update help output 2013-03-24 13:06:12 +02:00
Oleg Semyonov
4082b1498a Makefile: move opfw_resource rules from packaging to top Makefile
opfw_resource make target now depends on built firmware images. They are
referenced directly from Qt resource file generated. No extra copies
are now necessary.
2013-03-24 13:06:11 +02:00
Oleg Semyonov
853f9bf31e Makefile: swap some lines for readability, no real code changes 2013-03-24 13:06:09 +02:00
Oleg Semyonov
9b3d3e62ab Makefile: fix Makefile for BootloaderUpdater (STM32F10x only targets)
Conflicts:
	flight/targets/Bootloaders/BootloaderUpdater/Makefile
2013-03-24 13:05:52 +02:00
Oleg Semyonov
67d7db88f1 Makefile: pass TOPDIR to sub-make to overcome Windows filename problem
Makefile uses toprel function to display nice short relative paths when
building. But different ways of getting current path (using . or pwd
or MAKEFILE_LIST, etc) give different cases for Windows drive letters.
As result, some paths are not translated by toprel function and look
not nice. Passing known TOPDIR value to sub-make fixes this:

 ...
 CC flight/Modules/FirmwareIAP/firmwareiap.c
 CC flight/Modules/Telemetry/telemetry.c
 CC flight/Modules/System/systemmod.c
 CC d:/Work/OpenPilot/toolchains/flight/targets/CopterControl/System/coptercontrol.c
 CC d:/Work/OpenPilot/toolchains/flight/targets/CopterControl/System/pios_board.c
 ...

Instead of

 ...
 CC flight/Modules/FirmwareIAP/firmwareiap.c
 CC flight/Modules/Telemetry/telemetry.c
 CC flight/Modules/System/systemmod.c
 CC flight/targets/CopterControl/System/coptercontrol.c
 CC flight/targets/CopterControl/System/pios_board.c
 ...
2013-03-24 13:04:09 +02:00
Oleg Semyonov
f7bdcdb782 Makefile: firmware makefiles cleanup (CC)
Conflicts:
	flight/targets/CopterControl/Makefile
2013-03-24 13:04:03 +02:00
Oleg Semyonov
75ef685c6e Makefile: bootloader makefiles cleanup
Conflicts:
	flight/targets/Bootloaders/CopterControl/Makefile
	flight/targets/Bootloaders/OSD/Makefile
	flight/targets/Bootloaders/PipXtreme/Makefile
	flight/targets/Bootloaders/RevoMini/Makefile
	flight/targets/Bootloaders/Revolution/Makefile
2013-03-24 13:04:01 +02:00