Commit Graph

24 Commits

Author SHA1 Message Date
chao an
52353a7eb2 apps/build: Restore ARLOCK to improve compile speed in incremental case
To solve the issue of carrying object files from previous builds,
Matias changed the archiving process to re-archive libapps.a on every compilation,
if libapps.a carries more object files, incremental compilation will waste too
many time in re-archiving, compared with the previous implement, this is a degradation
of the build system.  Referring to mature engineering projects such as cmake, if there
is configuration or source file changed, the best solution should be to reconfigure
the environment.

Revert this PR to ensure the compilation speed during incremental compilation.

|  commit 18137c0fec
|  Author: Matias N <matias@protobits.dev>
|  Date:   Sat Sep 12 00:36:23 2020 -0300
|
|      Fix: ensure archive files do not carry object files from prior builds
|
|      This is the corresponding change to the one on main NuttX repo. In this
|      case this involves splitting the build of libapps.a into: a) building
|      all applications (which is safely parallelizable), b) adding each
|      application's object files to the archive in turns (serial by nature).
|
|      This removes the need for the flock used to protect the parallel build.

Testing:

sim:nsh
-------------------------------
|   Patched    |  Current
-------------------------------
|$ time make   |  $ time make
|real 0m1.270s |  real 0m1.728s
|user 0m0.971s |  user 0m1.276s
|sys  0m0.363s |  sys  0m0.530s
-------------------------------

Private project (20+ 3rd library needs archive to libapps.a)
-------------------------------
|   Patched     |  Current
-------------------------------
|$ time make    |  $ time make
|real 0m21.181s |  real 0m39.721s
|user 0m14.638s |  user 0m24.837s
|sys  0m6.919s  |  sys  0m14.394s
-------------------------------

Signed-off-by: chao an <anchao@xiaomi.com>
2023-09-12 21:55:39 +08:00
Stuart Ianna
40886698fb mk: Attempt to silence "Nothing to be done for xx" messages.
When rebuilding, it's not really useful to see reams of "Nothing to be done for" for every application being built. This change attempts to silence these messages.
2023-06-23 17:05:56 +08:00
Xiang Xiao
503b4ccf82 Fix the indent issue found in build script
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-03-17 12:00:17 -03:00
Xiang Xiao
fc1045271a Directory.mk: Always generate and remove .kconfig
since .kconfig is required to trigger the recursive processing

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-03-17 03:21:43 +01:00
zouboan
776136a113 Fix various error in Windows native build 2022-12-08 13:22:13 +08:00
Alin Jerpelea
fd8ea90a5f apps: Directory.mk: update license to Apache
Gregory Nutt is the copyright holder for those files and he has submitted the
SGA as a result we can migrate the licenses to Apache.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2022-03-08 17:04:01 +02:00
Matias N
18137c0fec Fix: ensure archive files do not carry object files from prior builds
This is the corresponding change to the one on main NuttX repo. In this
case this involves splitting the build of libapps.a into: a) building
all applications (which is safely parallelizable), b) adding each
application's object files to the archive in turns (serial by nature).

This removes the need for the flock used to protect the parallel build.
2020-09-14 15:55:06 +08:00
Ouss4
c1d060dac3 Directory.mk: The subdirectories' clean and distclean targets need to be
unique to avoid the "overriding recipe for target"  warning.
2020-07-25 10:56:06 -05:00
Ouss4
1dae12ba05 Don't run preconfig, clean or distclean when it's not necessary. 2020-07-25 07:50:28 -06:00
Xiang Xiao
deaa6c5b7b build: Replace $(TOPDIR)/Make.defs with $(APPDIR)/Make.defs
and move NUTTXLIB defintion to the common place

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-07-09 15:17:37 -03:00
Xiang Xiao
ead498a788 build: Remove the workaround for the inexistence of .config/Make.defs
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-21 17:43:42 +01:00
Xiang Xiao
6ddf347178
Move MAKE_template and SDIR_template to Make.defs (#135)
So Directory.mk and Makefile can share the same definition
2020-03-22 10:06:37 -06:00
David Sidrane
119f81f30a Revert "Avoid calling ARCHIVE in multiple places"
This reverts commit 52222cb020.
2020-02-21 11:31:34 -06:00
YAMAMOTO Takashi
52222cb020 Avoid calling ARCHIVE in multiple places
Because it isn't safe to run multiple instances to libapps.a
concurrently.
2020-02-21 07:37:51 -06:00
liuhaitao
02dbab7679 Makefile: Fix warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
Change-Id: I73d156f55bc82778c64defe5a8dd84bb478c9008
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2020-01-19 07:24:21 -06:00
Xiang Xiao
18bd9acd3d apps/Makefile: Move APPDIR set to the first and remove APPDIR from command line but ensure TOPDIR/BINDIR are always set in command line. 2019-10-01 11:46:38 -06:00
Gregory Nutt
17b69f1515 Directory.mk: If the current directory contains a Kconfig file and MENUDESC is not defined, then Directory.mk must not trash the Kconfig in the current directory. 2018-09-16 06:15:37 -06:00
Gregory Nutt
c8f473c507 Directory.mk: Fix: distclean targets of directory makefiles was not removing generated Kconfig files. There is then no way to remove this Kconfig files without manually deleting them one at a time. 2018-09-08 09:42:48 -06:00
Gregory Nutt
f5dd9811dc Bitbucket Issue 5, apps build system: The previous patch wasn't complete, it was just idea how to resolve issue. Please, find attached issue5.patch to resolve it. It can be applied on top current apps/master. From Artur Mądrzak. 2017-05-12 07:50:03 -06:00
Gregory Nutt
114a1d2846 Issue 5: I found an unexpected behavior in apps/ configuration generation. Adding external symbolic link in apps/ directory and using Make.defs for Kconfig generation, Kconfig file has a wrong path in the source argument. It contains original dir path outside of the source tree instead path to sub-directory in apps/.
The problem is connected with make/system symbolic link path resolution.  Corrected by a patch submitted by Artur Mądrzak with Issue 5.
2017-05-11 07:57:37 -06:00
Sebastien Lorquet
7ca5478da3 Rearrange to eliminate Kmenu files 2016-06-09 08:59:16 -06:00
Gregory Nutt
807e51ad05 Update tools/mkkconfig.bat; silence some Makefile output 2016-06-06 12:30:01 -06:00
Sebastien Lorquet
a9aa753fa4 Recursive Kconfig autogeneration 2016-06-02 16:34:00 +02:00
Paul A. Patience
298a72c71e Add UAVCAN library 2015-09-23 13:48:35 -04:00