Commit Graph

130 Commits

Author SHA1 Message Date
simbit18
6a0c0722e2 CI: Improvement to speed up compilation and reduce download errors.
The simple improvement is designed to speed up compilation and reduce download errors on github and local.

Added a folder nxtmpdir for storing third-party packages

nuttxworkspace
|
|- nuttx
|- apps
|- nxtmpdir

tools/Unix.mk:
added export NXTMPDIR := $(WSDIR)/nxtmpdir

tools/configure.sh:
added option -S creates the nxtmpdir folder for third-party packages.

tools/Config.mk:
added macro
CLONE - Git clone repository.
CHECK_COMMITSHA - Check if the branch contains the commit SHA-1.

tools/testbuild.sh:
added option -S

For now I added in the folder this package

ESP_HAL_3RDPARTY_URL = https://github.com/espressif/esp-hal-3rdparty.git

ARCH
arch/xtensa/src/esp32/Make.defs
arch/xtensa/src/esp32s2/Make.defs
arch/xtensa/src/esp32s3/Make.defs
arch/risc-v/src/common/espressif/Make.defs
arch/risc-v/src/esp32c3-legacy/Make.defs

but you can also add other packages (maybe also of apps)
2024-09-20 11:26:01 +08:00
Masayuki Ishikawa
df298c186f Revert "build depend:Revert Make.dep intermediate ddc file"
This reverts commit ddc3119c4e.
2024-09-15 19:29:47 +08:00
xuxin19
ddc3119c4e build depend:Revert Make.dep intermediate ddc file
Revert "Parallelize depend file generation"
This reverts commit d5b6ec450f.

parallel depend ddc does not significantly speed up compilation,
intermediately generated .ddc files can cause problems if compilation is interrupted unexpectedly

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-09-15 10:01:58 +08:00
Alin Jerpelea
c9eef2d697 tools: migrate to SPDX identifier
Most tools used for compliance and SBOM generation use SPDX identifiers
This change brings us a step closer to an easy SBOM generation.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2024-09-10 23:11:11 +08:00
Matheus Catarino
93b520f7b0 swift6 embedded support 2024-08-23 09:02:20 +08:00
Matheus Catarino
c6eea4ad8b add LDC2 (dlang) support
*Note:* ldmd2 is ldc2-wrapper, allow using dmd frontend flags.
      This support may be extended to gdc (gnu) if nuttx developers demand it
  or are interested in it.
2024-06-06 09:32:56 +08:00
wangmingrong
d4b5991589 libcxxabi: Path <cxxabi.h> not found
./helloxx_main.cxx:29:10: fatal error: cxxabi.h: No such file or directory
   29 | #include <cxxabi.h>
      |          ^~~~~~~~~~
CONFIG_LIBCXXABI is turned on, but the library include is not linked to nuttx/include, causing the compilation to fail.

Signed-off-by: wangmingrong <wangmingrong@xiaomi.com>
2024-03-14 22:47:55 +08:00
chao an
e11c793b33 toolchain/tasking: add dependencies rules for tasking compiler
Tasking compiler uses customized compilation options for generating dependencies files

Signed-off-by: chao an <anchao@lixiang.com>
2024-02-19 03:36:43 -08:00
xuxin19
274bff234a tool/Config.mk:use bash with or without verbosity enabled
Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2023-12-21 03:45:52 -08:00
SPRESENSE
6ba30033b3 libm: Fix an issue that public header files are not exported
Fix an issue that math library header files are not exported by make export.
Create symbolic links of libmcs, newlib and openlibm header to nuttx/include.
2023-11-23 16:32:53 +01:00
SPRESENSE
1226f3ffef tools: Remove archive lock file in make distclean
Remove temporary archive lock file (xxx.a.lock) by make distclean
because the file may be generated by archive with flock command.
2023-09-14 18:18:09 +08:00
chao an
9f10ddc9b0 nuttx/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 34b34e2d45 (tag: nuttx-20200914-172150)
|  Author: Matias N <matias@protobits.dev>
|  Date:   Fri Sep 11 22:31:38 2020 -0300
|
|      Fix: ensure archive files do not carry object files from prior builds
|
|      In some cases, when NuttX configuration changes and this makes the
|      object list used to build one of the .a libraries change as well,
|      since the command used to build it is "ar crs" and this simply appends
|      the list of object files, the library could still include object
|      files from prior builds. This commit modifies the ARCHIVE macro to
|      erase the .a file if it already exists.
|
|      Since in some cases this behavior was actually expected (object
|      files from a subdirectory were appended to a library created one
|      level above) I added a ARCHIVE_ADD which works as ARCHIVE did.
|
|      This change should greatly improve behavior of building after
|      configuration changes.

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:23 +08:00
Tiago Medicci Serrano
ea2ec888b8 Build system: Add PREBUILD definition
Add PREBUILD definition and `prebuild` recipe to call it before
the `mkconfig` tool, at the beginning of the build process. This
`prebuild` step enables running CPU/board-specific operations
before building the firmware, like tweaking or overriding configs
that need to be set after the board configuration.
2023-08-02 06:10:57 -07:00
Huang Qi
4c9e11d559 tools: Support string upper/lower case in make
Implement UPPER_CASE/LOWER_CASE function in pure make, usage:
```
UPPER = $(call UPPER_CASE,$(xxx))
```

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2023-06-02 11:12:12 -03:00
yanghuatao
e9dfa0094f libm/libmcs: add math library libmcs support
add math library libmcs support
(1)open menuconfig  (2)close math.h:build setup->Customize Header Files->math.h (3) select libmcs:Library Rountines->Select math library->Math Library fram LibmCS (4)build

Signed-off-by: yanghuatao <yanghuatao@xiaomi.com>
2023-04-29 13:47:28 +08:00
yanghuatao
6d5f8caf53 libm/openlibm: add math library openlibm support.
add math library openlibm support
(1)open menuconfig  (2)close math.h:build setup->Customize Header Files->math.h (3) select openlibm:Library Rountines->Select math library->Math Library fram openlibm (4)build

Signed-off-by: yanghuatao <yanghuatao@xiaomi.com>
2023-04-25 20:37:00 +08:00
yanghuatao
826dd87f30 libm/newlib: add newlib/libm support
Signed-off-by: yanghuatao <yanghuatao@xiaomi.com>
2023-04-24 10:32:53 +08:00
Karel Kočí
62661600b2 treewide: add DOWNLOAD variable as unification of curl call
This is a followup to the commit
03b164f59c.
2023-03-08 17:05:05 +08:00
chao an
dad6b105ca tools/Config: silent print of archive objects
Signed-off-by: chao an <anchao@xiaomi.com>
2023-02-06 16:22:28 -03:00
chao an
5e623da2dd tools/Config: stack usage(.su) file should be removed on clean phase
Signed-off-by: chao an <anchao@xiaomi.com>
2023-02-07 00:30:49 +08:00
Masayuki Ishikawa
6097f12765 tools: Fix Config.mk
Summary:
- I noticed that the following build error happened on my machine.

  make -C sched libsched.a EXTRAFLAGS="-D__KERNEL__ "
  make[1]: Entering directory '/mnt/m2ssd/opensource/RTOS/tmp/nuttx/sched'
  /bin/sh: 1: echoCC: clock/clock_initialize.c : not found

- This commit fixes this issue

Impact:
- Should be none

Testing:
- Build on ubuntu 18.04 x86_64

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2023-02-04 01:05:39 +02:00
yinshengkai
c57a0e90a0 tools: use relative paths when reverting to compile
Using the full path will make __FILE__ longer, which will lead to a larger flash footprint
revert 9c6c9fb0cd && e14309a92d

Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-02-03 18:28:33 +08:00
chao an
03b164f59c tools/makefile: silent all compile output
In order to make compilation warnings and errors easier to be found out,
this commit will disable the printing of the compilation process as much
as possible, and also if you want to restore the log information of the
compilation process, please enable verbose build on command line:

$ make V=0
OR
$ make V=1

| V=0:   Exit silent mode
| V=1,2: Enable echo of commands
| V=2:   Enable bug/verbose options in tools and scripts

Signed-off-by: chao an <anchao@xiaomi.com>
2023-02-02 17:40:19 +08:00
yinshengkai
e14309a92d tools: ARCHIVE uses the full path
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-02-01 20:39:52 +08:00
yinshengkai
9c6c9fb0cd tools/Config.mk: compile with full file path
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-01-31 18:15:59 +08:00
yinshengkai
3f97a87162 tools: add separate flags parameter for COMPILE/COMPILEXX
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-01-31 13:42:33 +08:00
Gustavo Henrique Nihei
f78c6432d8 xtensa/esp32: Simplify board linker script selection
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2022-12-08 21:55:29 +08:00
zouboan
f115a97bdc tools/Config:Fix too long input line error call ARCHIVE when use too many libc in Windows native build
tools/Config:Fix too long input line error call ARCHIVE when use too many libc in Windows native build
2022-12-01 01:47:46 +08:00
zouboan
e2c2cc16ee tools/Config:Fix some error call DELFILE/DELDIR/CATFILE/CLEAN in Windows native build
tools/Config:Fix some error call DELFILE/DELDIR/CATFILE  in Windows native build
2022-12-01 01:47:46 +08:00
zouboan
b96ced8f4b tools/Config:Fix some error caused by double quotation in Windows native build 2022-11-23 10:02:05 +08:00
yinshengkai
bcefa2f0a2 tools: fix errors when executing indir
fix the error message when executing make -C nuttx/tools -f Makefile.host clean
/bin/sh: 1: nuttx/tools/../tools/incdir: not found
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-11-16 12:51:54 +08:00
zouboan
def151869f tools:fix build error of incdir in Windows native build 2022-11-06 16:41:49 +08:00
zouboan
c8e4adad9f tools:fix 'input line is too long error' in Windows native build 2022-11-06 16:41:49 +08:00
yinshengkai
85f727f232 tools: replace INCDIR to Makefile variable
In the past, header file paths were generated by the incdir command
Now they are generated by concatenating environment variables

In this way, when executing makefile, no shell command will be executed,
it will improve the speed of executing makfile
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-11-03 19:59:55 +08:00
yinshengkai
95d9abcf58 tools: replace DEFINE script to Makefile variable
In the past, predefined macros were generated by define.sh scripts
Now they are generated by concatenating environment variables

In this way, when executing makefile, no shell command will be executed,
it will improve the speed of executing makfile

Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-11-03 19:59:55 +08:00
Fotis Panagiotopoulos
63d00a5fb1 Added Kconfig option for ccache. 2022-10-10 16:12:27 -03:00
Huang Qi
d7b04a2b8b Config.mk: Add COMPILEZIG
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2022-09-09 21:39:49 +08:00
Peter van der Perk
f64677b8c9 Add Embedded Template Library (ETL) support 2022-08-05 09:38:48 +08:00
Petro Karashchenko
b302173f31 Revert "zig-build added"
This reverts commit 4880613b26.
2022-03-16 22:17:16 +02:00
Matheus Catarino França
4880613b26 zig-build added
zig install added on CI - fixed

Docker - zig install

parent 5d2e3573c25b48ba7c3d697de11e64896e818aea
author Matheus Catarino França <matheus-catarino@hotmail.com> 1647344723 -0300
committer Matheus Catarino França <matheus-catarino@hotmail.com> 1647344723 -0300

zig-build added

zig install added on CI - fixed

Docker - zig install

CI - replace wget2curl

rm bloat curl command & zig latest version

ZIG_ENV - rm bin folder

ident format

Apply suggestions from code review

Co-authored-by: Petro Karashchenko <petro.karashchenko@gmail.com>

rm arch-zigoptimization

rm arch-zigoptimization ref
2022-03-17 02:09:36 +08:00
Petro Karashchenko
e8213b9ae5 tools: define BOARD_COMMON_DIR only if ARCH_BOARD_COMMON is set
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-03-12 22:12:44 +08:00
Xiang Xiao
1d1bdd85a3 Remove the double blank line from source files
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-02-20 20:10:14 +01:00
Piet
8828a43219 Default macro to compile one Rust file 2022-02-17 15:35:27 -03:00
Xiang Xiao
d056834605 Add CONFIG_NDEBUG Kconfig to control NDEBUG definition
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-02-16 12:03:07 -08:00
Alan Rosenthal
8defb843aa Remove duplicate linker script definitions
## Summary
A lot of linker scripts were listed twice, once for unix, once for windows.

This PR cleans up the logic so they're only listed once.

 ## Impact
Any opportunity to use a single source of truth and reduce lines of code is a win!

 ## Testing
CI will test all build
2022-02-17 02:55:25 +08:00
chao.an
e518a9f031 tools/Config.mk: suppress all normal output for cmp
Fix build break:
make: *** No rule to make target 'byte', needed by 'differ'.  Stop.

Regression by:
-----------------------------------------------------
|commit 0951f70df6
|
|    Improve dependencies for include/nuttx/version.h
-----------------------------------------------------

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-01-26 14:45:32 +01:00
Alan Rosenthal
35905302d3 Cleanup boards/Makefile
Changes:
There was logic in `tools/Config.mk` which was duplicated in `boards/Makefile`.
This PR removes the duplicated logic in boards/Makefile
2022-01-24 11:17:55 +08:00
Petro Karashchenko
630c209bbc tools: add option to reuse boards common files for custom boards
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-01-19 12:09:37 +01:00
zhuyanlin
407bc04934 tools: add gdbplugin for JLinkGDBServer nuttx thread aware
Use `JLinkGDBServer -rtos libnuttxplugin` to add this plugin.
Then in gdb can use command:
  - `info threads` to show all threads infos
  - `thread (id) ` to switch thread.
  - `bt` to show thread backtrace.

Signed-off-by: zhuyanlin <zhuyanlin1@xiaomi.com>
2021-11-10 14:31:10 -03:00
yinshengkai
ee17ae5ba1 tool: add code coverage tool 2021-10-29 19:21:23 +02:00