1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-02 10:24:11 +01:00
Commit Graph

234 Commits

Author SHA1 Message Date
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
Oleg Semyonov
60a7d7e454 Makefile: export important make variables from the top Makefile 2013-03-24 13:03:59 +02:00
Oleg Semyonov
23c605ffba Makefile: indents, comments, spacing, $(CMDS) variables, etc.
How to invoke external command instead of shell builtin on Windows:
ECHO := /bin/echo

Conflicts:
	Makefile
2013-03-24 13:03:58 +02:00
Alessio Morale
1a38b7eb46 Merge remote-tracking branch 'origin/amorale/02_os-stac_logfs-unittests' into next
Conflicts:
	flight/targets/RevoMini/Makefile
	flight/targets/Revolution/Makefile
2013-03-23 15:13:05 +01:00
Alessio Morale
e06ab7f706 Merge remote-tracking branch 'origin/amorale/01-directory_move_sanity_simposix' into next
Conflicts:
	Makefile
	flight/PiOS.posix/inc/pios_com.h
	flight/targets/RevoMini/UAVObjects.inc
	flight/targets/Revolution/Makefile
2013-03-23 14:37:19 +01:00
Stacey Sheldon
990048cf29 ut: fix up unit test clean target name 2013-03-03 14:33:04 +01:00
Oleg Semyonov
8901cde35b ut: remove unused targets 2013-03-03 14:33:04 +01:00
Stacey Sheldon
ea09a53adc unittest: build gtest-all and gtest_main directly
Conflicts:
	make/unittest.mk
2013-03-03 14:33:03 +01:00
Stacey Sheldon
9b94eeb745 ut: convert logfs unit test to gtest
Conflicts:
	Makefile
	make/unittest.mk
2013-03-03 14:33:03 +01:00
Stacey Sheldon
14c5af6148 ut: convert make rules to template and add TAP file generation
Make targets changed to:
 make ut_<test>
 make ut_<test>_tap
 make ut_<test>_run
 make ut_<test>_clean
 make all_ut
 make all_ut_tap
 make all_ut_run
 make all_ut_clean

Conflicts:
	Makefile
2013-03-03 14:33:03 +01:00
Stacey Sheldon
264d76382b makefile: allow arch-specific path to qmake
This will be required once we move to Qt5.
2013-03-03 14:33:03 +01:00
Stacey Sheldon
e00372a540 makefile: define ARCH before including make/tools.mk
ARCH is required in order to pick up the right versions
of the tools for each architecture.
2013-03-03 14:33:03 +01:00
Stacey Sheldon
f934ebfd4c makefile: ensure that the builds are not run as root
When running the build as root, any bugs in the Makefiles
can have disasterous results.  This will be even more
important once we start automatically running unit tests
as part of our build.

This change ensures that the builds cannot be run as root.
2013-03-03 14:33:03 +01:00
Stacey Sheldon
7f53aa422a ut: add basic unit test for logfs
Build it with:
  make ut_logfs

Create a raw flash file like this:
  dd if=/dev/zero bs=1 count=2MiB | tr '\000' '\377' > theflash.bin

Run it with:
  ./build/unit_tests/logfs/logfs.elf && echo 'all good'

Conflicts:
	Makefile
2013-03-03 14:33:02 +01:00
David Willis
70294ed1ad Revert last change that broke compatibility with 12.10.2 2013-02-27 21:18:23 +00:00
David Willis
dec828f9ab Update git version of last UAVObject definition change 2013-02-27 00:12:11 +00:00
Oleg Semyonov
4314faa3f9 Merge remote-tracking branch 'origin/os/android-bamboo-builds' into next 2013-02-04 16:50:58 +02:00
Oleg Semyonov
e09705d604 Makefile: add build-info target (for CI builds) 2013-02-04 15:56:11 +02:00
Oleg Semyonov
c1b0972492 android: make it compatible with RELEASE-12.10.2 2013-02-03 05:11:47 +02:00
Oleg Semyonov
d7efcd28af android: provide debug/release build option 2013-02-03 05:10:38 +02:00
Oleg Semyonov
3daaea3385 android: downgrade Google API version (16 -> 14)
Make it Android 4.0 compatible (was: 4.1.2 and above).
2013-02-03 05:10:37 +02:00
Oleg Semyonov
a0bbd9ec94 android: update SDK version (20.0.3 -> 21.0.1) 2013-02-03 02:10:06 +02:00
Stacey Sheldon
f500ac1e23 rename: move UAVObjects and UAVTalk directories under targets 2013-01-28 02:33:06 +02:00
Stacey Sheldon
e55519b1e2 makefile: split tool install rules into separate makefile
The rules for downloading/building/installing the various
tools were cluttering the top-level makefile.

Conflicts:

	Makefile
2013-01-28 02:29:08 +02:00
Stacey Sheldon
0fda8035c2 makefile: update to released openocd 0.6.1 2013-01-28 02:13:17 +02:00