2 # Makefile for crosstool-NG.
3 # Copyright 2006 Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
5 # Don't print directory as we descend into them
6 # Don't use built-in rules, we know what we're doing
7 MAKEFLAGS += --no-print-directory --no-builtin-rules
9 # Some distributions (eg. Ubuntu) thought it wise to point /bin/sh to
10 # a truly POSIX-conforming shell, ash in this case. This is not so good
11 # as we, smart (haha!) developers (as smart we ourselves think we are),
12 # got used to bashisms, and are enclined to easiness... So force use of
13 # bash. (Note: this is ugly, but ./configure checks for it).
14 export SHELL=/bin/bash
16 # This is where ct-ng is.
17 # Don't bother to change it other than with a new ./configure!
18 CT_NG:=@@CT_BINDIR@@/ct-ng
20 export CT_TOP_DIR:=$(shell pwd)
21 export CT_LIB_DIR:=@@CT_LIBDIR@@
22 export CT_DOC_DIR:=@@CT_DOCDIR@@
24 # This is crosstool-NG version string
25 export CT_VERSION:=@@CT_VERSION@@
27 export CT_STOP:=$(STOP)
28 export CT_RESTART:=$(RESTART)
34 ifeq ($(strip $(V)),0)
38 ifeq ($(strip $(V)),1)
52 help:: help-head help-config help-samples help-build help-clean help-distrib help-env help-tail
55 @echo 'See below for a list of available actions, listed by category:'
59 @echo 'Configuration actions:'
63 @echo 'Preconfigured toolchains:'
67 @echo 'Build actions (#: force number of // jobs):'
71 @echo 'Clean actions:'
75 @echo 'Distribution actions:'
79 @echo 'Environement variables (see @@CT_DOCDIR@@/overview.txt):'
83 @echo 'Use action "config" or "menuconfig" to configure crosstool-NG'
84 @echo 'Use action "build" to build your toolchain'
85 @echo 'Use action "version" to see the version'
86 @echo 'See "man 1 ct-ng" for some help as well'
89 @echo ' build[.#] - Build the toolchain'
92 @echo ' clean - Remove generated files'
93 @echo ' distclean - Remove generated files, configuration and build directories'
95 include $(CT_LIB_DIR)/config/config.mk
96 include $(CT_LIB_DIR)/kconfig/kconfig.mk
97 include $(CT_LIB_DIR)/steps.mk
98 include $(CT_LIB_DIR)/samples/samples.mk
99 include $(CT_LIB_DIR)/tools/tools.mk
102 @echo ' tarball - Build a tarball of the configured toolchain'
105 @echo ' STOP - Stop the build just after this step'
106 @echo ' RESTART - Restart the build just before this step'
111 @echo ' There is no existing .config file!'
116 $(SILENT)$(CT_LIB_DIR)/scripts/crosstool.sh
119 $(SILENT)$(CT_NG) $(shell echo "$(@)" |sed -r -e 's|^([^.]+)\.([[:digit:]]+)$$|\1 CT_JOBS=\2|;')
123 # @$(CT_LIB_DIR)/scripts/tarball.sh
125 @echo 'Tarball creation disabled for now... Sorry.'
130 @echo 'This is crosstool-NG version $(CT_VERSION)'
132 @echo 'Copyright (C) 2008 Yann E. MORIN <yann.morin.1998@anciens.enib.fr>'
133 @echo 'This is free software; see the source for copying conditions.'
134 @echo 'There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A'
135 @echo 'PARTICULAR PURPOSE.'
140 $(SILENT)rm -f .config.*
144 @$(ECHO) " CLEAN .config log"
145 $(SILENT)rm -f .config* ..config.tmp
147 @$(ECHO) " CLEAN targets"
148 $(SILENT)chmod -R u+w targets >/dev/null 2>&1 || true
149 $(SILENT)rm -rf targets