yann@289: #!@@CT_MAKE@@ -rf yann@182: # Makefile for crosstool-NG. yann@182: # Copyright 2006 Yann E. MORIN yann@182: yann@182: # Don't print directory as we descend into them yann@289: MAKEFLAGS += --no-print-directory --no-builtin-rules yann@182: yann@182: # Remember the name of the Makefile yann@182: CT_MAKEFILE := $(lastword $(MAKEFILE_LIST)) yann@182: CT_NG := $(shell echo '$(CT_MAKEFILE)' |sed -r -e 's,($(subst :,|,$(PATH)))/,,;') yann@182: yann@182: export CT_TOP_DIR:=$(shell pwd) yann@182: export CT_LIB_DIR:=@@CT_LIBDIR@@ yann@182: export CT_DOC_DIR:=@@CT_DOCDIR@@ yann@182: yann@197: # This is crosstool-NG version string yann@182: export CT_VERSION=$(shell cat $(CT_LIB_DIR)/version) yann@182: yann@182: export CT_STOP=$(STOP) yann@182: export CT_RESTART=$(RESTART) yann@182: yann@182: .PHONY: $(PHONY) yann@182: PHONY += all yann@197: all: help yann@182: yann@284: HOST_CC := gcc -funsigned-char yann@182: yann@182: # Help system yann@229: help:: help-head help-config help-samples help-build help-clean help-distrib help-env help-tail yann@182: yann@182: help-head:: yann@197: @echo 'Available actions:' yann@182: yann@182: help-config:: yann@182: @echo yann@197: @echo 'Configuration actions:' yann@182: yann@182: help-samples:: yann@182: @echo yann@229: @echo 'Preconfigured toolchains:' yann@182: yann@182: help-build:: yann@182: @echo yann@197: @echo 'Build actions:' yann@182: yann@229: help-clean:: yann@229: @echo yann@229: @echo 'Clean actions:' yann@229: yann@182: help-distrib:: yann@182: @echo yann@197: @echo 'Distribution actions:' yann@182: yann@182: help-env:: yann@182: @echo yann@182: @echo 'Environement variables (see @@CT_DOCDIR@@/overview.txt):' yann@182: yann@182: help-tail:: yann@182: @echo yann@197: @echo 'Execute "$(CT_NG) config" or "$(CT_NG) menuconfig" to configure crosstool-NG' yann@197: @echo 'Execute "$(CT_NG) build" to build your toolchain' yann@268: @echo 'Execute "$(CT_NG) version" to see the version' yann@185: @echo 'See "man 1 ct-ng" for some help as well' yann@182: yann@182: # End help system yann@182: yann@182: help-build:: yann@197: @echo ' build - Build the toolchain' yann@229: yann@229: help-clean:: yann@182: @echo ' clean - Remove generated files' yann@182: @echo ' distclean - Remove generated files, configuration and build directories' yann@182: yann@261: include $(CT_LIB_DIR)/kconfig/kconfig.mk yann@261: include $(CT_LIB_DIR)/samples/samples.mk yann@261: include $(CT_LIB_DIR)/tools/tools.mk yann@261: include $(CT_LIB_DIR)/steps.mk yann@182: yann@182: help-distrib:: yann@182: @echo ' tarball - Build a tarball of the configured toolchain' yann@182: yann@182: help-env:: yann@182: @echo ' STOP - Stop the build just after this step' yann@182: @echo ' RESTART - Restart the build just before this step' yann@182: yann@182: .config: yann@182: @echo 'You must run either one of "$(CT_NG) config" or "$(CT_NG) menuconfig" first' yann@182: @false yann@182: yann@182: # Actual build yann@182: build:: .config yann@182: @$(CT_LIB_DIR)/scripts/crosstool.sh yann@182: yann@182: PHONY += tarball yann@214: #tarball: yann@214: # @$(CT_LIB_DIR)/scripts/tarball.sh yann@182: tarball: yann@268: @echo 'Tarbal creation disabled for now... Sorry.' yann@214: @true yann@182: yann@268: PHONY += version yann@268: version: yann@273: @echo 'This is crosstool-NG version $(CT_VERSION)' yann@268: yann@182: PHONY += clean yann@182: clean:: yann@182: @rm -f $(CT_TOP_DIR)/.config.* yann@182: yann@182: PHONY += distclean yann@182: distclean:: clean yann@182: @rm -f $(CT_TOP_DIR)/.config* $(CT_TOP_DIR)/..config.tmp yann@182: @rm -f $(CT_TOP_DIR)/log.* yann@182: @[ ! -d "$(CT_TOP_DIR)/targets" ] || chmod -R u+w "$(CT_TOP_DIR)/targets" yann@182: @rm -rf "$(CT_TOP_DIR)/targets"