summaryrefslogtreecommitdiffstats
path: root/scripts/Makefile.host
Commit message (Collapse)AuthorAgeFilesLines
* kbuild: resync mkdir code with Linux 5.7-rc6Masahiro Yamada2020-05-201-2/+0
| | | | | | | | | Kbuild automatically creates the output directories for O= builds. Previously it called mkdir too much. Linux optimized this a lot. Let's import the outcome so it works faster. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* kbuild: resync top Makefile, mkmakefile, tags.sh with Linux 5.7-rc4Masahiro Yamada2020-05-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The prologue of the build system is not specific to Linux or Barebox. Paritially resync with Linux 5.7-rc4 - In Linux, $(objtree) is always '.', and $(srctree) might be relative. I am keeping both absolute for now to avoid unexpected breakage. - I did not resync single target for now. We need to touch Makefile.build a lot if we want to resync it. - 'export CDPATH=' is Barebox-only code, which was added by commit 6cc8d0544658 ("Makefile: disable CDPATH"). Keep it. - KBUILD_SRC no longer exists in the upstream Linux. I replaced it with building_out_of_srctree. - scripts/mkmakefile does not contain anything specific to Linux or Barebox. Resync it with Linux 5.7-rc4 - scripts/tags was imported from Linux 3.6 with some cherry-picks on top of that. Resync it with Linux 5.7-rc4 Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* kbuild: prefix compiler flag variables with KBUILD_Masahiro Yamada2020-04-271-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | In old days, Linux also used to use well-known variables such CFLAGS, CPPFLAGS, etc. They were prefixed with KBUILD_ presumably for preventing users from overriding them accidentally. Rename as follows: CFLAGS -> KBUILD_CFLAGS AFLAGS -> KBUILD_AFLAGS CPPFLAGS -> KBUILD_CPPFLAGS LDFLAGS -> KBUILD_LDFLAGS HOSTCFLAGS -> KBUILD_HOSTCFLAGS HOSTCXXFLAGS -> KBUILD_HOSTCXXFLAGS HOSTLDFLAGS -> KBUILD_HOSTLDFLAGS HOST_LOADLIBES -> KBUILD_HOSTLDLIBS HOSTCFLAGS, HOSTCXXFLAGS, HOSTLDFLAGS, HOSTLDLIBS are re-used to allow users to pass-in additional flags to the host compiler. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* kbuild: update flex and bison rules to Linux 5.7-rc1Masahiro Yamada2020-04-151-1/+19
| | | | | | | | | | | | | Import the following commits from Linux, and re-sync. - 6ba7dc6616ce "kbuild: make bison create C file and header in a single pattern rule" - cf8dfd15e5fb "kbuild: move flex and bison rules to Makefile.host" Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* kbuild: rename hostprogs-y/always to hostprogs/always-yMasahiro Yamada2020-04-151-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ Linux commit 5f2fb52fac15a8a8e10ce020dd532504a8abfc4e ] In old days, the "host-progs" syntax was used for specifying host programs. It was renamed to the current "hostprogs-y" in 2004. It is typically useful in scripts/Makefile because it allows Kbuild to selectively compile host programs based on the kernel configuration. This commit renames like follows: always -> always-y hostprogs-y -> hostprogs So, scripts/Makefile will look like this: always-$(CONFIG_BUILD_BIN2C) += ... always-$(CONFIG_KALLSYMS) += ... ... hostprogs := $(always-y) $(always-m) I think this makes more sense because a host program is always a host program, irrespective of the kernel configuration. We want to specify which ones to compile by CONFIG options, so always-y will be handier. The "always", "hostprogs-y", "hostprogs-m" will be kept for backward compatibility for a while. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)Masahiro Yamada2020-03-261-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ Linux commit 54b8ae66ae1a3454a7645d159a482c31cd89ab33 ] Kbuild provides per-file compiler flag addition/removal: CFLAGS_<basetarget>.o CFLAGS_REMOVE_<basetarget>.o AFLAGS_<basetarget>.o AFLAGS_REMOVE_<basetarget>.o CPPFLAGS_<basetarget>.lds HOSTCFLAGS_<basetarget>.o HOSTCXXFLAGS_<basetarget>.o The <basetarget> is the filename of the target with its directory and suffix stripped. This syntax comes into a trouble when two files with the same basename appear in one Makefile, for example: obj-y += foo.o obj-y += dir/foo.o CFLAGS_foo.o := <some-flags> Here, the <some-flags> applies to both foo.o and dir/foo.o The real world problem is: scripts/kconfig/util.c scripts/kconfig/lxdialog/util.c Both files are compiled into scripts/kconfig/mconf, but only the latter should be given with the ncurses flags. It is more sensible to use the relative path to the Makefile, like this: obj-y += foo.o CFLAGS_foo.o := <some-flags> obj-y += dir/foo.o CFLAGS_dir/foo.o := <other-flags> At first, I attempted to replace $(basetarget) with $*. The $* variable is replaced with the stem ('%') part in a pattern rule. This works with most of cases, but does not for explicit rules. For example, arch/ia64/lib/Makefile reuses rule_as_o_S in its own explicit rules, so $* will be empty, resulting in ignoring the per-file AFLAGS. I introduced a new variable, target-stem, which can be used also from explicit rules. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* kbuild: rename HOSTLOADLIBES_* to HOSTLDLIBS_*Masahiro Yamada2019-01-031-3/+3
| | | | | | | | | | This is needed to resync kconfig to the latest Linux. Refer to Linux commit 8377bd2b9ee1 ("kbuild: Rename HOST_LOADLIBES to KBUILD_HOSTLDLIBS"). Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* enable LFS support for host programsUwe Kleine-König2017-06-301-1/+1
| | | | | | | | | | | This fixes building on an XFS partition on a 32 bit machine: $ armmake -C ~/gsrc/barebox O=$PWD imx_defconfig HOSTCC scripts/basic/fixdep fixdep: error fstat'ing depfile: scripts/basic/.fixdep.d: Value too large for defined data type Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* scripts/Makefile.host: Update to Linux-3.18-rc6Sascha Hauer2014-11-271-58/+16
| | | | | | Needed for new Kconfig. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* svn_rev_008Sascha Hauer2007-07-051-0/+170
add missing Kconfig