# 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