|
|
@@ -0,0 +1,94 @@ |
|
|
|
# This file is part of MXE. See LICENSE.md for licensing information. |
|
|
|
|
|
|
|
PKG := ccache |
|
|
|
$(PKG)_WEBSITE := https://ccache.samba.org |
|
|
|
$(PKG)_DESCR := ccache – a fast compiler cache |
|
|
|
$(PKG)_IGNORE := |
|
|
|
$(PKG)_VERSION := 3.6 |
|
|
|
$(PKG)_CHECKSUM := a6b129576328fcefad00cb72035bc87bc98b6a76aec0f4b59bed76d67a399b1f |
|
|
|
$(PKG)_SUBDIR := ccache-$($(PKG)_VERSION) |
|
|
|
$(PKG)_FILE := ccache-$($(PKG)_VERSION).tar.xz |
|
|
|
$(PKG)_URL := https://www.samba.org/ftp/ccache/ccache-$($(PKG)_VERSION).tar.xz |
|
|
|
$(PKG)_DEPS := $(BUILD)~$(PKG) |
|
|
|
$(PKG)_TARGETS := $(BUILD) $(MXE_TARGETS) |
|
|
|
|
|
|
|
$(PKG)_DEPS_$(BUILD) := |
|
|
|
|
|
|
|
define $(PKG)_UPDATE |
|
|
|
$(call GET_LATEST_VERSION, https://www.samba.org/ftp/ccache) |
|
|
|
endef |
|
|
|
|
|
|
|
BOOTSTRAP_PKGS += ccache |
|
|
|
|
|
|
|
$(PKG)_SYS_CONF := $(MXE_CCACHE_DIR)/etc/$(PKG).conf |
|
|
|
$(PKG)_USR_CONF := $(MXE_CCACHE_DIR)/$(PKG).conf |
|
|
|
|
|
|
|
ifeq (mxe,$(MXE_USE_CCACHE)) |
|
|
|
define $(PKG)_BUILD_$(BUILD) |
|
|
|
# remove any previous symlinks |
|
|
|
rm -fv '$(PREFIX)/$(BUILD)/bin/$(BUILD_CC)' '$(PREFIX)/$(BUILD)/bin/$(BUILD_CXX)' |
|
|
|
|
|
|
|
# minimal reqs build with bundled zlib |
|
|
|
cd '$(BUILD_DIR)' && $(SOURCE_DIR)/configure \ |
|
|
|
$(MXE_CONFIGURE_OPTS) \ |
|
|
|
--with-bundled-zlib \ |
|
|
|
--disable-man \ |
|
|
|
--prefix='$(MXE_CCACHE_DIR)' \ |
|
|
|
--sysconfdir='$(dir $($(PKG)_SYS_CONF))' |
|
|
|
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' $(MXE_DISABLE_DOCS) |
|
|
|
$(MAKE) -C '$(BUILD_DIR)' -j 1 install $(MXE_DISABLE_DOCS) |
|
|
|
|
|
|
|
# setup symlinks |
|
|
|
ln -sf '$(MXE_CCACHE_DIR)/bin/ccache' '$(PREFIX)/$(BUILD)/bin/$(BUILD_CC)' |
|
|
|
ln -sf '$(MXE_CCACHE_DIR)/bin/ccache' '$(PREFIX)/$(BUILD)/bin/$(BUILD_CXX)' |
|
|
|
|
|
|
|
# https://ccache.samba.org/manual/latest.html#_configuration_settings |
|
|
|
# always set/replace mxe `system` config |
|
|
|
mkdir -p '$(dir $($(PKG)_SYS_CONF))' |
|
|
|
(echo '# ccache system config'; \ |
|
|
|
echo '# this file is controlled by mxe, user config is in:'; \ |
|
|
|
echo '# $($(PKG)_USR_CONF)'; \ |
|
|
|
echo; \ |
|
|
|
echo 'base_dir = $(MXE_CCACHE_BASE_DIR)'; \ |
|
|
|
echo 'cache_dir = $(MXE_CCACHE_DIR)'; \ |
|
|
|
echo 'compiler_check = %compiler% -v'; \ |
|
|
|
) > '$($(PKG)_SYS_CONF)' |
|
|
|
|
|
|
|
# leave user config alone if set |
|
|
|
[ -f '$($(PKG)_USR_CONF)' ] || \ |
|
|
|
(mkdir -p '$(dir $($(PKG)_USR_CONF))' && \ |
|
|
|
(echo '# ccache user config'; \ |
|
|
|
echo '# https://ccache.samba.org/manual/latest.html#_configuration_settings'; \ |
|
|
|
echo '# system config: $($(PKG)_SYS_CONF)'; \ |
|
|
|
echo; \ |
|
|
|
echo 'max_size = 20.0G'; \ |
|
|
|
) > '$($(PKG)_USR_CONF)') |
|
|
|
endef |
|
|
|
|
|
|
|
define $(PKG)_BUILD |
|
|
|
# setup symlinks |
|
|
|
ln -sf '$(MXE_CCACHE_DIR)/bin/ccache' '$(PREFIX)/$(BUILD)/bin/$(TARGET)-gcc' |
|
|
|
ln -sf '$(MXE_CCACHE_DIR)/bin/ccache' '$(PREFIX)/$(BUILD)/bin/$(TARGET)-g++' |
|
|
|
|
|
|
|
# setup cmake toolchain to allow runtime override |
|
|
|
# CMAKE_CXX_COMPILER_LAUNCHER shows original cc and isn't clear in logs etc. |
|
|
|
mkdir -p '$(CMAKE_TOOLCHAIN_DIR)' |
|
|
|
(echo 'option(MXE_USE_CCACHE "Enable ccache by default" ON)'; \ |
|
|
|
echo 'if(MXE_USE_CCACHE)'; \ |
|
|
|
echo ' set(CMAKE_C_COMPILER $(PREFIX)/$(BUILD)/bin/$(TARGET)-gcc)'; \ |
|
|
|
echo ' set(CMAKE_CXX_COMPILER $(PREFIX)/$(BUILD)/bin/$(TARGET)-g++)'; \ |
|
|
|
echo 'endif()'; \ |
|
|
|
) > '$(CMAKE_TOOLCHAIN_DIR)/$(PKG).cmake' |
|
|
|
endef |
|
|
|
else |
|
|
|
define $(PKG)_BUILD_$(BUILD) |
|
|
|
# remove symlinks |
|
|
|
rm -fv '$(PREFIX)/$(BUILD)/bin/$(BUILD_CC)' '$(PREFIX)/$(BUILD)/bin/$(BUILD_CXX)' |
|
|
|
endef |
|
|
|
|
|
|
|
define $(PKG)_BUILD |
|
|
|
# remove symlinks and cmake toolchain |
|
|
|
rm -fv '$(PREFIX)/$(BUILD)/bin/$(TARGET)-'* |
|
|
|
rm -fv '$(CMAKE_TOOLCHAIN_DIR)/$(PKG).cmake' |
|
|
|
endef |
|
|
|
endif |