mirror of
https://github.com/openwrt/openwrt.git
synced 2026-10-12 09:08:20 +04:00
These ten hold up the wall clock on their own. Their configure stages run while nothing else does, because the tools build in dependency order. Measured over a full build, cold cache against warm: sed 21.68 s -> 1.22 s m4 21.48 s -> 1.22 s findutils 19.47 s -> 1.56 s tar 17.75 s -> 1.47 s cpio 14.28 s -> 1.26 s bison 12.81 s -> 1.29 s patch 12.16 s -> 1.31 s elfutils 26.58 s -> 15.47 s Each of the ten configures the same way with a warm cache as it does without one. The check runs configure three times, without a cache, with a cold cache and with a warm cache, and compares every file that configure generates between the first and the last. ncurses fails that check; these do not. The only difference left is ac_ct_AR and ac_ct_RANLIB, which a cold run fills through the fallback path of AC_CHECK_TOOL and a warm run leaves empty. AR and RANLIB are correct in both, and no generated Makefile reads the ac_ct_ form. tools/cmake keeps its 33 s, the longest configure stage in the build. It bootstraps with its own script rather than autoconf, so this does not reach it. Signed-off-by: John Crispin <john@phrozen.org>
35 lines
890 B
Makefile
35 lines
890 B
Makefile
#
|
|
# Copyright (C) 2008-2015 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=bison
|
|
PKG_VERSION:=3.8.2
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
|
PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
|
|
PKG_HASH:=06c9e13bdf7eb24d4ceb6b59205a4f67c2c7e7213119644430fe82fbd14a0abb
|
|
PKG_CPE_ID:=cpe:/a:gnu:bison
|
|
|
|
HOST_BUILD_PARALLEL:=1
|
|
HOST_CONFIGURE_CACHE:=1
|
|
|
|
include $(INCLUDE_DIR)/host-build.mk
|
|
|
|
HOST_CONFIGURE_ARGS += --enable-threads=posix --disable-nls
|
|
|
|
define Host/Install
|
|
$(call Host/Compile/Default,install aclocal_DATA=) # Macro provided by gnulib
|
|
$(INSTALL_BIN) ./scripts/yacc $(STAGING_DIR_HOST)/bin/yacc
|
|
endef
|
|
|
|
define Host/Uninstall
|
|
rm -f $(STAGING_DIR_HOST)/bin/yacc
|
|
-$(call Host/Compile/Default,uninstall aclocal_DATA=) # Macro provided by gnulib
|
|
endef
|
|
|
|
$(eval $(call HostBuild))
|