mirror of
https://github.com/openwrt/openwrt.git
synced 2026-10-12 06:57:57 +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>
58 lines
1.4 KiB
Makefile
58 lines
1.4 KiB
Makefile
#
|
|
# Copyright (C) 2010-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:=e2fsprogs
|
|
PKG_CPE_ID:=cpe:/a:e2fsprogs_project:e2fsprogs
|
|
PKG_VERSION:=1.47.4
|
|
PKG_HASH:=fd5bf388cbdbe006a3d3b318d983b2948382440acc85a87f1e7d108653e8db0b
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
|
PKG_SOURCE_URL:=@KERNEL/linux/kernel/people/tytso/e2fsprogs/v$(PKG_VERSION)/
|
|
|
|
HOST_BUILD_PARALLEL:=1
|
|
HOST_CONFIGURE_CACHE:=1
|
|
|
|
include $(INCLUDE_DIR)/host-build.mk
|
|
|
|
ifneq ($(shell $(HOSTCC) --version | grep clang),)
|
|
HOST_CFLAGS += -D__GNUC_PREREQ\(...\)=0 -Dloff_t=off_t
|
|
endif
|
|
HOST_CFLAGS += $(HOST_FPIC)
|
|
|
|
HOST_CONFIGURE_ARGS += \
|
|
--disable-elf-shlibs \
|
|
--disable-libuuid \
|
|
--disable-tls \
|
|
--disable-nls \
|
|
--enable-threads=pth \
|
|
--disable-fuse2fs \
|
|
--with-crond-dir=no \
|
|
--enable-libblkid
|
|
|
|
# The following uses pkg-config the wrong way around. Just override it.
|
|
HOST_CONFIGURE_VARS += \
|
|
ac_cv_lib_uuid_uuid_generate=yes
|
|
|
|
define Host/Prepare
|
|
$(call Host/Prepare/Default)
|
|
rm -rf $(HOST_BUILD_DIR)/doc
|
|
endef
|
|
|
|
define Host/Install
|
|
$(call Host/Install/Default)
|
|
$(SED) 's|^DIR=.*|DIR=$$$${STAGING_DIR_HOST}/share/et|' $(STAGING_DIR_HOST)/bin/compile_et
|
|
$(SED) 's|^DIR=.*|DIR=$$$${STAGING_DIR_HOST}/share/ss|' $(STAGING_DIR_HOST)/bin/mk_cmds
|
|
endef
|
|
|
|
define Host/Uninstall
|
|
-$(call Host/Compile/Default,uninstall)
|
|
endef
|
|
|
|
$(eval $(call HostBuild))
|