summaryrefslogtreecommitdiffstats
path: root/rules.mk
Commit message (Collapse)AuthorAgeFilesLines
* imagebuilder: reuse rootfs preparation from rootfs.mkMatthias Schiffer2018-03-071-0/+1
| | | | | | | | | | | | In addition to removing redundant code, this fixes various issues in IB-generated images that have been fixed in prepare_rootfs before, including better handling of CONFIG_CLEAN_IPKG and enabling of initscripts from FILES. We also reuse the opkg macro and remove --force-... flags that have been removed from rootfs.mk as well. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* rules.mk: drop `include_mk` build ruleAlexandru Ardelean2018-01-261-4/+0
| | | | | | | | | | | | | | | | | The only users of this were the python packages from the `packages` feed. The 2 python interpreters would export some mk files (e.g. python-package.mk) and then other python packages would include it via this rule. But there's a few things wrong with this approach, most of them drawing from the fact that python host needs to be built first, to export these mk files. By now all uses of include_mk have been corrected in the feeds and this can be removed. Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
* build: remove use of STAGING_DIR_HOST/usr (fixes cmake build error on macOS)Felix Fietkau2018-01-171-2/+2
| | | | | | | | This directory is never created, nor is it used anywhere. Using it in HOST_LDFLAGS causes a linker warning to be emitted on macOS, which messes with cmake configure tests. Signed-off-by: Felix Fietkau <nbd@nbd.name>
* rules.mk: export TMPDIRJo-Philipp Wich2017-12-121-0/+1
| | | | | | | | Set TMPDIR to the same value as the existing TMP_DIR variable in order to let gcc and various other utilities use the local temporary directory instead of the system-wide one. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* rukes.mk: this patch broken grub2 buildsJohn Crispin2017-09-011-2/+0
| | | | | | | | Revert "rules.mk: add missing CPP definition" This reverts commit 569f74ef49bae9326a723050a400346686983d86. Signed-off-by: John Crispin <john@phrozen.org>
* rules.mk: add missing CPP definitionBangLang Huang2017-08-231-0/+2
| | | | Signed-off-by: BangLang Huang <banglang.huang@foxmail.com>
* rules.mk: make PKG_CONFIG_DEPENDS properly track string valuesMatthias Schiffer2017-02-271-1/+1
| | | | | | | | | The confvar macro is adjusted to not only consider if a variable has a value or not, but also the value itself. Instead of creating a string of 'y' and 'n' characters, all variable names and values are concatenated and hashed. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* build: Pass -iremap gcc option as a single argumentMichal Sojka2017-02-091-1/+1
| | | | | | | | | | | | | | | Passing -iremap argument separately causes problems with projects that use scons and its ParseFlags function. Consider this SConscript example: env = Environment() d = env.ParseFlags("-iremap one:two") ParseFlags will interpret one:two as a file name and the returned dict d will contain only "-iremap". When the -iremap is passed to the compiler without an argument, compilation obviously fails. Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
* build: make <subdir>/install opt-in, use it for target/ onlyFelix Fietkau2017-02-091-1/+1
| | | | | | | Fixes buildbot errors on running make target/install or toolchain/install Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: remove libc version suffix from build/staging directoriesFelix Fietkau2017-02-071-2/+1
| | | | | | Our supported libcs are ABI compatible across version upgrades Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: Suffix build directory with _$(LIBC) for external toolchainsFlorian Fainelli2017-01-291-1/+2
| | | | | | | | For external toolchain, we also know the type of C library used, and the toolchain triplet may not always be reflective of that, therefore make $(TARGET_DIR_NAME) suffixed with _$(LIBC). Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
* build: introduce STAGING_DIR_IMAGEJo-Philipp Wich2017-01-271-0/+1
| | | | | | | | | | | Introduce a new location STAGING_DIR_IMAGE which is intended to be used by bootloader iamges and similar image-related artifacts. This directory is guaranteed to be persistent across kernel upgrades which might involve a removal of KERNEL_BUILD_DIR and is guranteed to be bundled with the image builder. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* rules.mk: export STAGING_DIR_HOSTPKGMatthias Schiffer2017-01-191-1/+1
| | | | Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* build: introduce extra targets that contain only proper dependenciesFelix Fietkau2017-01-181-4/+5
| | | | | | This can be used to check if targets like prepare or compile are up to date Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: define common subdir targets in rules.mkFelix Fietkau2017-01-181-0/+9
| | | | | | Reduce build system clutter and enable further rework Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: move STAGING_DIR_HOSTPKG and BUILD_DIR_HOST back to a common ↵Matthias Schiffer2017-01-181-5/+5
| | | | | | | | | | | | | directory for all targets Using a single host package staging dir (and build dir) significantly speeds up builds when multiple targets are built in succession, especially for large host packages like NodeJS. $(STAGING_DIR)/host is kept in addition to $(STAGING_DIR_HOSTPKG) in most places; it is still used as destination for host files in Build/InstallDev. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* build: use mkhash to replace various quirky md5sum/openssl callsFelix Fietkau2017-01-051-1/+1
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: add defaults for PKG_SOURCE, PKG_SOURCE_SUBDIR, PKG_VERSIONFelix Fietkau2016-12-221-0/+2
| | | | | | | | This makes it easier to unify versioning of git based package downloads. PKG_SOURCE_DATE along with an 8-character abbreviation of the git hash is used as PKG_VERSION, PKG_RELEASE should be used like normal packages. Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: implement make check and make package/X/checkFelix Fietkau2016-12-171-0/+8
| | | | | | | | | | | | | | | | This is intended to be used for a wide array of package sanity checks. The first check that is implemented is for the hash of downloaded files. It checks: - Missing hash - Use of SHA256 instead of MD5 - dl/<file> hash not matching hash in makefile - deprecated MD5SUM variable The deprecated MD5SUM variable check is skipped for feeds/ until OpenWrt is updated as well Signed-off-by: Felix Fietkau <nbd@nbd.name>
* rules.mk: add STAGING_DIR_HOSTPKG variableJo-Philipp Wich2016-11-011-0/+1
| | | | | | | Add a STAGING_DIR_HOSTPKG variable which refers to $(STAGING_DIR)/host in order to prepare support for relocating that directory in the future. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* build: add checksum targetJo-Philipp Wich2016-08-011-0/+7
| | | | | | | | | | | | | | | Add a new "checksum" make target which generates an sha256sums file over the image files produced in bin/targets/ and automatically call it during make world after the package index generation. The advantage of this new target is that it is guaranteed to run after the images, the SDK and the ImageBuilder archives have been generated to ensure that they all end up in the checksum file. Fixes FS#51. Uses sed to postprocess the OpenSSL digest output into an sha256sum command compatible format. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* rules.mk: introduce new variable OUTPUT_DIRJo-Philipp Wich2016-04-061-1/+4
| | | | | | | | | | | Introduce a new variable OUTPUT_DIR which refers to the parent bin/ directory without the architecture specific component. Also construct the BIN_DIR variable based on OUTPUT_DIR now and add both target and subtarget components to it to prevent different subtargets from overwriting each others files in bin/. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* build: disable the use of -iremap for UML (#21851)Felix Fietkau2016-02-131-1/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 48718
* rules.mk: add TARGET_INIT_PATH toplevel variablesJo-Philipp Wich2016-02-081-0/+2
| | | | | | | | | Add a new variable TARGET_INIT_PATH which holds the default $PATH variable value configured in menuconfig. Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 48676
* build: filter out -fno-plt for the kernel build, fixes #21712Felix Fietkau2016-01-281-2/+2
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 48515
* build: use -iremap feature to replace __FILE__ absolute path names in ↵Felix Fietkau2016-01-251-0/+4
| | | | | | | | | | packages with ones relative to $(BUILD_DIR) improves reproducible builds Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 48489
* rules.mk: make the locked template available even if flock has not been ↵Felix Fietkau2016-01-201-3/+7
| | | | | | | | built yet (fall back to unlocked shell command) Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 48414
* build: use a separate variable checking the subdir path (for host packages)Felix Fietkau2016-01-201-1/+2
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 48410
* host-build.mk: change default installation prefix of package/* host builds ↵Felix Fietkau2016-01-201-2/+2
| | | | | | | | to staging_dir/target-*/host Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 48401
* build: move host build directories of package/* to build_dir/target-*/host/Felix Fietkau2016-01-201-2/+5
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 48400
* build: add pure make tolower/toupper funtions that do not require shell callsFelix Fietkau2016-01-031-0/+14
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 48105
* gcc: remove version 4.6, it is no longer neededFelix Fietkau2015-11-101-1/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 47443
* build: add -Wno-error=unused-result to target cflagsFelix Fietkau2015-11-101-1/+1
| | | | | | | | | | Many glibc functions have __warn_unused_result__ in so many different core functions, and failing the build for all of those simply does not make any sense Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 47440
* rules.mk: export STAGING_DIR_HOST to sub-makefiles and shellsFelix Fietkau2015-11-071-1/+1
| | | | | | | | | | | Certains host packages (like quilt) need to know the previously used install location at run-time. They currently use $STAGING_DIR, which causes issues on cleaned environment, where $STAGING_DIR doesn't exist yet. Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org> SVN-Revision: 47409
* build: Allow kernel modules to set build ID debug symbolFelix Fietkau2015-10-301-1/+2
| | | | | | | | | | | | | | | | | | | | This change adds support for specifying a build ID for kernel modules. This is done by setting PKG_BUILD_ID to a hexadecimal string, which will then be passed to the kernel linker. In addition, when this flag is set, the build ID debug symbol (.note.gnu.build-id) will not be stripped from the kernel module. This symbol is exported in sysfs by the kernel (if the kernel is compiled with CONFIG_KALLSYMS) and so can be used to uniquely identify a version of a kernel module in a running kernel. This is useful for keeping track of different versions of a module when doing experiments and development. Modules that specify the build ID will be ~100 bytes larger (depending on the length of the build ID specified). There is no size difference for kernel modules that do not set this variable. Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk> SVN-Revision: 47290
* rules.mk: remove GCC 4.4 and GCC 4.5 conditionalFelix Fietkau2015-08-251-2/+2
| | | | | | | | | gcc 4.4 was removed in r44957 gcc: remove 4.4.7 (only used by avr32) gcc 4.5 was removed in r36149 Signed-off-by: Dirk Neukirchen <dirkneukirchen@web.de> SVN-Revision: 46722
* toolchain: only use fortify-headers for muslSteven Barth2015-06-291-1/+5
| | | | | | Signed-off-by: Steven Barth <steven@midlink.org> SVN-Revision: 46138
* toolchain: add fortify-headers, enable FORTIFY_SOURCE by defaultSteven Barth2015-06-231-1/+1
| | | | | | Signed-off-by: Steven Barth <steven@midlink.org> SVN-Revision: 46117
* toolchain: switch to musl by default, except for mips64Felix Fietkau2015-06-151-1/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 45995
* build: add integration for managing opkg package feed keysFelix Fietkau2015-04-061-0/+2
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 45286
* rules.mk: add newline definitionJohn Crispin2015-03-151-0/+5
| | | | | | | | To be used for stuff like $(subst $(space),$(newline),$(SOME_VAR)) Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com> SVN-Revision: 44796
* rules.mk: don't add staging_dir/host/bin/ path againJo-Philipp Wich2015-02-101-1/+1
| | | | | | Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 44379
* scripts: extend rstrip.sh to remove bad rpathsJo-Philipp Wich2015-02-101-0/+1
| | | | | | | | | Remove all rpath entries which do not point to a location below /lib or /usr/lib and which do not begin with '$ORIGIN'. Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 44377
* rules.mk: use relative paths for BASH, TAR, FIND, PATCH, PYTHONJo-Philipp Wich2015-02-061-5/+5
| | | | | | Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 44294
* include: declare variables formerly set in tmp/.host.mkJo-Philipp Wich2015-02-051-0/+6
| | | | | | Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 44272
* build: do not assume that gcc-{ar,ranlib,nm} is usable with an external ↵Felix Fietkau2015-01-101-1/+1
| | | | | | | | toolchain Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43911
* build: use gcc-provided ar, nm and ranlib where appropriateFelix Fietkau2014-12-271-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since GCC 4.7, GCC provides its own wrappers around ar, nm and ranlib, which should be used for builds with link-time optimization. Since GCC 4.9, using them actually necessary for LTO builds using convenience libraries to succeed. There are some packages which try to automatically detect if gcc-{ar,nm,ranlib} exist (one example is my package "fastd" in the package repository, which tries to use LTO). This breaks because the OpenWrt build system explicitly sets the binutils versions of these tools. As it doesn't cause any issues to use gcc-{ar,nm,ranlib} instead of {ar,nm,ranlib} even without LTO, this patch just makes OpenWrt use the GCC-provided versions by default, which fixes the build of such packages with GCC 4.9. (I know that builds fail though when clang is used with -flto and gcc-{ar,nm,ranlib}, but as all OpenWrt toolchains are based on GCC, this isn't a real issue.) Completely cleaning the tree (or at least `make clean toolchain/clean`) is necessary to get a consistent state after the binutils plugins support patch and this one (as trying to use gcc-{ar,nm,ranlib} with a binutils built without plugin support will definitely lead to a build failure). Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> SVN-Revision: 43784
* rules.mk: reduce shexport to one line to allow it to be put in a target contextFelix Fietkau2014-10-221-2/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43018
* build: clean up and optimize ipkg control generator codeFelix Fietkau2014-10-221-0/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43017
* build: add $(STAGING_DIR_HOST)/usr/{include, lib} to build search path.John Crispin2014-10-201-2/+2
| | | | | | Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com> SVN-Revision: 42987