Commit Graph

61 Commits

Author SHA1 Message Date
Gregory Nutt
5555070fc3 tools/: Hook incdir.c into build system.
incdir.c was added in PR 1148.  This PR hooks it into the build system.
2020-05-30 01:05:34 +01:00
Xiang Xiao
8b20b97d26 build: Remove the dummy drivers folder under boards
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-24 20:20:12 +01:00
Xiang Xiao
e83c1400b6 build: Move BOARD_DIR definition to common place
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-24 20:20:12 +01:00
liuhaitao
adc0c3e459 build: parallel clean and distclean subdir build
Use absolute path for APPDIR which could be used by apps clean
and distclean subdir build. Parallel clean and distclean subdir
could save more build time.

Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2020-05-22 12:35:46 +01:00
Xiang Xiao
567962bd62 build: Move the extension definition to common place
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-19 19:23:18 +01:00
Xiang Xiao
5e7342bcf4 build: Move V definition to common place
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-19 19:23:18 +01:00
Xiang Xiao
8b42ee421a build: Move MKDEP definition to common place
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-19 19:23:18 +01:00
Xiang Xiao
9ec9431706 build: Move DIRLINK/DIRUNLINK definition to common place
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-19 19:23:18 +01:00
Xiang Xiao
6e94effeed build: Make all variables inside Configs.mk overwritable
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-19 19:23:18 +01:00
Xiang Xiao
5eae32577e build: Move INCDIROPT to common place
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-18 15:02:55 -06:00
Xiang Xiao
a2f657e4cb build: Move KDEFINE to a common place(tools/Config.mk)
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-01 15:56:55 -06:00
YAMAMOTO Takashi
e67062fd88 Config.mk: Provide the default MODULESTRIP
Similarly to MODULECC/MODULELD.
2020-04-16 16:04:11 -06:00
YAMAMOTO Takashi
18c574d66a Config.mk: Provide the default MODULECC/MODULELD
In some cases, a separate toolchain is necessary to
build modules.
E.g. the sim on macOS, where the native format is Mach-O.

By default, just use CC/LD, which is appropriate for
the most of platforms.
2020-03-27 00:04:36 -05:00
Gregory Nutt
5c0e8e88b1 Revert "Makefile: move INCDIROPT to common place (#625)"
This reverts commit b9ace36fcc.

This change was added by PR 625 but has a serious logic flaw.  It removes all occurrences of INCDIROPT and replaces it with a definition in tools/Config.mk:

    else ifeq ($(WINTOOL),y)
      DEFINE = "$(TOPDIR)/tools/define.sh"
      INCDIR = "$(TOPDIR)/tools/incdir.sh" -w

This logic flaw is the Config.mk is included in all Make.defs files BEFORE WINTOOL is defined.  As a result, the definition is wrong in many places when building under Cygwin with a Windows native toolchain.
2020-03-26 08:50:29 -07:00
Xiang Xiao
b9ace36fcc
Makefile: move INCDIROPT to common place (#625) 2020-03-26 08:09:59 -06:00
Xiang Xiao
e1385b1074 tools/Config.mk: CATFILE clear the existing file
To simplify the caller usage
2020-03-23 12:23:05 -06:00
Xiang Xiao
aaa32156df tools/Config.mk: implement a simple version of TESTANDREPLACEFILE for Windows 2020-03-23 12:22:50 -06:00
Gregory Nutt
3ee1af5bcc Build System: Resolve CPU-specific logic in common build files
* tools/Config.mk - Add empty definition POSTBUILD
* tools/Makefile.unix/win - Replace CXD56xx specific logic with $(call POSTBUILD)
* boards/arm/cxd56xx/scripts/Config.mk - Add POSTBUILD definitions with logic removed from Makefile.unix/win
* boards/arm/cxd56xx/spresense/scripts/Make.defs - Include the CXD56xx Config.mk immediately after tools/Config.mk so that the empty POSTBUILD definition will be replaced with the correct one

NOTE: There is a precedent for this approach.  This is the way that other architecture-specific build options are implemented.  See, for example, tools/zds/Config.mk
2020-03-06 11:44:53 -06:00
Gregory Nutt
d1a8a803e4 Build system: Get rid of the MOVEOBJ definition
Eliminate the MOVEOBJ definition from tools/Config.mk, Makefiles, and other locations.  The MOVEOBJ definition was used to work around the case where the object output of a compile or assemble is in a different directory than the source file.  The ZDS-II tools have no command line option to perform this move; MOVEOBJ handled the move as a post-compiler operation.

MOVEOBJ is no longer needed because this the ez80 COMPILE and ASSEMBLE definitions now handle all of the object file movement cases.
2020-02-24 22:37:28 +01:00
Gregory Nutt
54be203107 boards/z80/ez80/scripts/eZ80_Config.mk: Fix ez80 build
This includes some fixes for the ez80 build including:

1. Ability to handle decorated object file names,
2. Ability to handle libraries described with absolute paths

This commit address only the POSIX build and needs to be updated
for the Windows native build.
2020-02-22 00:59:44 +01:00
Xiang Xiao
4d16eeb435 Make.defs: Fix flock: failed to execute @: No such file or directory
Remove $(Q) in ARCHIVE which is added back in commit fd3e2c5916 accidentally
2020-02-21 07:35:24 -06:00
Alan Carvalho de Assis
fd3e2c5916 Make.defs: Fix printed "|| { ar blablabla FAILED!" after $(Q) removed 2020-02-20 19:43:52 -06:00
Xiang Xiao
342f76a529 Makefile: Remove @echo from ARCHIVE
to avoid shell complain that @echo can't find if the variable expand in the compound
command(e.g. ARLOCK) and remove $(Q) before $AR so the result is almost same as before.
2020-02-20 08:32:09 -06:00
Xiang Xiao
adbff7de81 tools/Config.mk: add DEFINE macro like INCDIR 2020-02-03 15:06:11 -06:00
Xiang Xiao
bb6c70bdcc Fix the comment header style in tools folder
Change-Id: I189a0e8b86f3af682111668ccdad64a52b48dcb4
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-01-20 08:04:21 -06:00
Xiang Xiao
8ffa77b167 tools/mkexport.sh: Should export full content for flat build even with CONFIG_BUILD_LOADABLE. 2019-10-03 14:08:32 -06:00
Gregory Nutt
8471da9dec tools/Config.mk: Update comments to indicate how to use the single-file compilation options. 2019-10-03 08:23:22 -06:00
Xiang Xiao
37ef3c1cbc tools/Config.mk: Support the ability to change the CFLAGS for the compilation of a single file. Set special compiler options as follows the rule:
sourcefile + fixed suffix "_[A|C|CPP|CXX]FLAGS"

apps/examples/hello/Makefile:
  $(SRCDIR)/hello_main.c_CFLAGS = -DTEST
2019-10-03 06:49:17 -06:00
Gregory Nutt
03fc3a2218 Fix a typo I introducted in the last commit. My bad. 2019-09-15 11:14:47 -06:00
Xiang Xiao
bf84868360 tools/Config.mk and Makefile.unix: Support the incremental build for configuration change. 2019-09-15 10:56:26 -06:00
anchao
7ce51e66b9 tools/Config.mk: Eliminate use of the built-in implicit rules. 2019-09-15 08:48:25 -06:00
Nathan Hartman
366053e464 Fix typos, 1 in a #define, others in comments. This changes one definition: _MQ_TIMEDRECIEVE is changed to _MQ_TIMEDRECEIVE. It appears this symbol is not used anywhere. 2019-09-11 08:56:56 -06:00
Nathan Hartman
ce8fb54d07 Fix various typos 2019-09-03 17:00:22 -06:00
Anatol Ivanov
e748bb8cd3 tools/Config.mk and tools/Makefile.win: Force use 'cmd' for shell with windows native build 2018-11-06 06:34:00 -06:00
Anatol Ivanov
1dad62d3b7 Squashed commit of the following:
tools/configure.c: Add missing '\n' in printf statement

    tools/configure.c: Add missed -g option to getopt() string

    tools/configure.c and tools/configure.sh:  Fix Windows native pre-build kconfig-conf incompability.  Looks like prebuilt Windows native kconfig-conf interprets "..\apps" as "..apps" (possibly '\a' as escape-sequence) so expand winnative path to double-backslashed variant "..\\apps".

    tools/mkdeps.c:  Fix '\0' missing in MinGW.  Implicit bug. There are 2 cases.

    1. Under Linux.  The code works as planned: '\n' is always replaced with '\0' due to sprintf fills n-1 bytes and reaches buffer length limit.

    2. Under Windows/MinGW. There is memory corruption.  Seems like it`s a bug inside MinGW/snprintf.  Snprintf fills consecutively "oldbase",' ',"str",'\n', but does not inserts trailing '\0' instead of '\n'.  And when next append() occurs, strlen() returns garbage-appended "oldbase".

    So the fix just removes '\n' and reserves space for '\0'.

    tools/link.bat: Fix .fakelink creation

    configs/Makefile and tools/Config.mk:  Move single file copy to the new function COPYFILE.  This fixes the Windows native build case when there is no cp or cp does not recognize Windows paths.
2018-11-05 16:35:28 -06:00
Anthony Merlino
d533cc53df tools/Config.mk: Fix an error in RWILDCARD implemenation 2018-09-12 11:52:10 -06:00
Gregory Nutt
aeda17318d tools/Config.mk: Move the RWILDCARD function definition from apps/builtin/Makefile to nuttx/tools/Config.mk. It may have a broader usage than it does now. 2018-08-15 18:45:39 -06:00
Gregory Nutt
96f05c895d tools/Config.mk: Add function CATFILE definition. Currently only used in apps/builtin/Makefile. 2018-08-15 18:30:12 -06:00
Gregory Nutt
f2a89813f2 Build system: Remove fixed lib/ subdirectory and its content. Replace with new directory called staging/ that is created dynamically when building and removed when 'make clean' is done. This both improves the name and eliminates a garbage directory from the repository. 2018-05-29 11:36:21 -06:00
Andrey Zabolotnyi
33a1e73bab LibTargets.mk, tools/Config.mk: Drop executable bit on installed libraries. The rules to install libraries under lib/ were modified to use mode 0644 instead of the default 0755. 2018-05-12 07:42:38 -06:00
Gregory Nutt
0de294a586 Fix lots of occurrences of 'the the', 'the there', 'the these', 'the then', 'the they. 2017-05-11 13:35:56 -06:00
Gregory Nutt
cf29dfa2ac Add a PRELINK macro to Config.mk. From Kriegleder 2014-10-17 06:58:47 -06:00
Gregory Nutt
57a0ef401a Beginning of logic that will, hopefully, all me to build applications against a NuttX export package (vs. the nuttx/ source tree). 2014-09-04 15:54:51 -06:00
Gregory Nutt
0331a07026 Back out change. Unnecessary with code is all in tree and costs a LOT of build performance 2014-01-30 18:59:06 -06:00
Gregory Nutt
90f0e4f6dc configs/efm32-dk3650: Support for Energy Micro's development kit for the Leopard Gecko MCU. From Richard Cochran 2014-01-23 08:19:34 -06:00
Gregory Nutt
85dea13030 Config.mk: If WINTOOL is set, COMPILE definition should convert path generated by Cygwin make to a proper Windows path. From Richard Cochran (2014-1-23). 2014-01-23 07:37:14 -06:00
Gregory Nutt
78936f7260 Changes for ZDS-II ez80 build 2013-11-28 17:47:03 -06:00
Gregory Nutt
bc46b447dc Fix all occurrences of "the the" in documentation and comments 2013-08-27 09:40:19 -06:00
patacongo
f9fa51b66f Progress toward a z80 native Windows build -- still needs some work
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5411 42af7a65-404d-4744-a932-0658087f49c3
2012-12-03 20:12:59 +00:00
patacongo
9fbe2944ee Fix typol in Config.mk that would effect non-Windows builds
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5369 42af7a65-404d-4744-a932-0658087f49c3
2012-11-18 20:59:30 +00:00