mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-19 12:57:53 +00:00
7bfa4139ad
Users tend to look for the build log in the current working directory, rather than in the toolchain's installation dir. While bundling the build log in the toolchain installation dir is nice for distribution and review, it can be easier to have the build log readily available in the working directory, as it is quicker to get to it. So, the build log stays in the working directory until the toolchain is completely and successfully built, and then a (compressed) copy is made. Reported-by: Trevor Woerner <twoerner@gmail.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
178 lines
4.6 KiB
Plaintext
178 lines
4.6 KiB
Plaintext
#!@@CT_make@@ -rf
|
|
# Makefile for crosstool-NG.
|
|
# Copyright 2006 Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
|
|
|
|
# Don't print directory as we descend into them
|
|
# Don't use built-in rules, we know what we're doing
|
|
MAKEFLAGS += --no-print-directory --no-builtin-rules
|
|
|
|
# Don't go parallel
|
|
.NOTPARALLEL:
|
|
|
|
# This is where ct-ng is:
|
|
export CT_NG:=$(lastword $(MAKEFILE_LIST))
|
|
# and this is where we're working in:
|
|
export CT_TOP_DIR:=$(shell pwd)
|
|
|
|
# Paths and values set by ./configure
|
|
# Don't bother to change it other than with a new ./configure!
|
|
export CT_LIB_DIR:=@@CT_LIBDIR@@
|
|
export CT_DOC_DIR:=@@CT_DOCDIR@@
|
|
|
|
# This is crosstool-NG version string
|
|
export CT_VERSION:=@@CT_VERSION@@
|
|
|
|
# Paths found by ./configure
|
|
include $(CT_LIB_DIR)/paths.mk
|
|
|
|
# Some distributions (eg. Ubuntu) thought it wise to point /bin/sh to
|
|
# a truly POSIX-conforming shell, ash in this case. This is not so good
|
|
# as we, smart (haha!) developers (as smart we ourselves think we are),
|
|
# got used to bashisms, and are enclined to easiness... So force use of
|
|
# bash.
|
|
export SHELL=$(bash)
|
|
|
|
# GREP_OPTIONS=--color=always will break the generated .in files
|
|
# We do not need any GREP_OPTIONS anyway, so set it to empty.
|
|
export GREP_OPTIONS=
|
|
|
|
# Make the restart/stop steps availabe to scripts/crostool-NG.sh
|
|
export CT_STOP:=$(STOP)
|
|
export CT_RESTART:=$(RESTART)
|
|
|
|
SILENT=@
|
|
ECHO=echo
|
|
ifeq ($(strip $(origin V)),command line)
|
|
ifeq ($(strip $(V)),0)
|
|
SILENT=@
|
|
ECHO=:
|
|
else
|
|
ifeq ($(strip $(V)),1)
|
|
SILENT=
|
|
ECHO=:
|
|
else
|
|
ifeq ($(strip $(V)),2)
|
|
SILENT=
|
|
ECHO=echo
|
|
endif # V == 2
|
|
endif # V== 1
|
|
endif # V == 0
|
|
endif # origin V
|
|
export V SILENT ECHO
|
|
|
|
all: help
|
|
|
|
.PHONY: $(PHONY)
|
|
PHONY += all
|
|
FORCE:
|
|
|
|
# Help system
|
|
help:: help-head help-config help-samples help-build help-clean help-distrib help-env help-tail
|
|
|
|
help-head:: version
|
|
@echo 'See below for a list of available actions, listed by category:'
|
|
|
|
help-config::
|
|
@echo
|
|
@echo 'Configuration actions:'
|
|
|
|
help-samples::
|
|
@echo
|
|
@echo 'Preconfigured toolchains (#: force number of // jobs):'
|
|
|
|
help-build::
|
|
@echo
|
|
@echo 'Build actions (#: force number of // jobs):'
|
|
|
|
help-clean::
|
|
@echo
|
|
@echo 'Clean actions:'
|
|
|
|
help-distrib::
|
|
@echo
|
|
@echo 'Distribution actions:'
|
|
|
|
help-env::
|
|
@echo
|
|
@echo 'Environement variables (see @@CT_DOCDIR@@/0 - Table of content.txt):'
|
|
|
|
help-tail::
|
|
@echo
|
|
@echo 'Use action "menuconfig" to configure your toolchain'
|
|
@echo 'Use action "build" to build your toolchain'
|
|
@echo 'Use action "version" to see the version'
|
|
@echo 'See "man 1 ct-ng" for some help as well'
|
|
|
|
help-build::
|
|
@echo ' build[.#] - Build the currently configured toolchain'
|
|
|
|
help-clean::
|
|
@echo ' clean - Remove generated files'
|
|
@echo ' distclean - Remove generated files, configuration and build directories'
|
|
|
|
include $(CT_LIB_DIR)/config/config.mk
|
|
include $(CT_LIB_DIR)/kconfig/kconfig.mk
|
|
include $(CT_LIB_DIR)/steps.mk
|
|
include $(CT_LIB_DIR)/samples/samples.mk
|
|
include $(CT_LIB_DIR)/scripts/scripts.mk
|
|
|
|
help-config::
|
|
@echo ' show-tuple - Print the tuple of the currently configured toolchain'
|
|
|
|
help-distrib::
|
|
@echo ' tarball - Build a tarball of the configured toolchain'
|
|
|
|
help-env::
|
|
@echo ' V=0|1|2 - 0 => show only human-readable messages (default)'
|
|
@echo ' 1 => show only the commands being executed'
|
|
@echo ' 2 => show both'
|
|
|
|
# End help system
|
|
|
|
.config:
|
|
@echo "There is no existing .config file!"
|
|
@echo "You need to either run 'menuconfig',"
|
|
@echo "or configure an existing sample."
|
|
@false
|
|
|
|
show-tuple: .config
|
|
$(SILENT)$(bash) $(CT_LIB_DIR)/scripts/showTuple.sh
|
|
|
|
# Actual build
|
|
build: .config
|
|
$(SILENT)$(CT_LIB_DIR)/scripts/crosstool-NG.sh
|
|
|
|
build.%:
|
|
$(SILENT)$(MAKE) -rf $(CT_NG) $(shell echo "$(@)" |$(sed) -r -e 's|^([^.]+)\.([[:digit:]]+)$$|\1 CT_JOBS=\2|;')
|
|
|
|
PHONY += tarball
|
|
#tarball:
|
|
# @$(CT_LIB_DIR)/scripts/tarball.sh
|
|
tarball:
|
|
@echo 'Tarball creation disabled for now... Sorry.'
|
|
@true
|
|
|
|
PHONY += version
|
|
version:
|
|
@echo 'This is crosstool-NG version $(CT_VERSION)'
|
|
@echo
|
|
@echo 'Copyright (C) 2008 Yann E. MORIN <yann.morin.1998@anciens.enib.fr>'
|
|
@echo 'This is free software; see the source for copying conditions.'
|
|
@echo 'There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A'
|
|
@echo 'PARTICULAR PURPOSE.'
|
|
@echo
|
|
|
|
PHONY += clean
|
|
clean::
|
|
@$(ECHO) " CLEAN log"
|
|
$(SILENT)rm -f build.log .config.* ..config*
|
|
|
|
PHONY += distclean
|
|
distclean:: clean
|
|
@$(ECHO) " CLEAN .config"
|
|
$(SILENT)rm -f .config .config.* ..config*
|
|
@$(ECHO) " CLEAN build dir"
|
|
$(SILENT)[ ! -d targets ] || chmod -R u+w targets
|
|
$(SILENT)[ ! -d .build ] || chmod -R u+w .build
|
|
$(SILENT)rm -rf targets .build
|