author | "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> |
Wed Jul 11 15:31:51 2007 +0000 (2007-07-11) | |
changeset 232 | d9ccfd05846e |
parent 214 | b73a4d9a98ea |
child 261 | 4b8cba298bf3 |
permissions | -rw-r--r-- |
yann@182 | 1 |
#!@@CT_MAKE@@ -f |
yann@182 | 2 |
# Makefile for crosstool-NG. |
yann@182 | 3 |
# Copyright 2006 Yann E. MORIN <yann.morin.1998@anciens.enib.fr> |
yann@182 | 4 |
|
yann@182 | 5 |
# Don't print directory as we descend into them |
yann@182 | 6 |
MAKEFLAGS += --no-print-directory |
yann@182 | 7 |
|
yann@182 | 8 |
# Remember the name of the Makefile |
yann@182 | 9 |
CT_MAKEFILE := $(lastword $(MAKEFILE_LIST)) |
yann@182 | 10 |
CT_NG := $(shell echo '$(CT_MAKEFILE)' |sed -r -e 's,($(subst :,|,$(PATH)))/,,;') |
yann@182 | 11 |
|
yann@182 | 12 |
export CT_TOP_DIR:=$(shell pwd) |
yann@182 | 13 |
export CT_LIB_DIR:=@@CT_LIBDIR@@ |
yann@182 | 14 |
export CT_DOC_DIR:=@@CT_DOCDIR@@ |
yann@182 | 15 |
|
yann@197 | 16 |
# This is crosstool-NG version string |
yann@182 | 17 |
export CT_VERSION=$(shell cat $(CT_LIB_DIR)/version) |
yann@182 | 18 |
|
yann@182 | 19 |
export CT_STOP=$(STOP) |
yann@182 | 20 |
export CT_RESTART=$(RESTART) |
yann@182 | 21 |
|
yann@182 | 22 |
.PHONY: $(PHONY) |
yann@182 | 23 |
PHONY += all |
yann@197 | 24 |
all: help |
yann@182 | 25 |
|
yann@182 | 26 |
HOST_CC = gcc -funsigned-char |
yann@182 | 27 |
|
yann@182 | 28 |
# Help system |
yann@229 | 29 |
help:: help-head help-config help-samples help-build help-clean help-distrib help-env help-tail |
yann@182 | 30 |
|
yann@182 | 31 |
help-head:: |
yann@197 | 32 |
@echo 'Available actions:' |
yann@182 | 33 |
|
yann@182 | 34 |
help-config:: |
yann@182 | 35 |
@echo |
yann@197 | 36 |
@echo 'Configuration actions:' |
yann@182 | 37 |
|
yann@182 | 38 |
help-samples:: |
yann@182 | 39 |
@echo |
yann@229 | 40 |
@echo 'Preconfigured toolchains:' |
yann@182 | 41 |
|
yann@182 | 42 |
help-build:: |
yann@182 | 43 |
@echo |
yann@197 | 44 |
@echo 'Build actions:' |
yann@182 | 45 |
|
yann@229 | 46 |
help-clean:: |
yann@229 | 47 |
@echo |
yann@229 | 48 |
@echo 'Clean actions:' |
yann@229 | 49 |
|
yann@182 | 50 |
help-distrib:: |
yann@182 | 51 |
@echo |
yann@197 | 52 |
@echo 'Distribution actions:' |
yann@182 | 53 |
|
yann@182 | 54 |
help-env:: |
yann@182 | 55 |
@echo |
yann@182 | 56 |
@echo 'Environement variables (see @@CT_DOCDIR@@/overview.txt):' |
yann@182 | 57 |
|
yann@182 | 58 |
help-tail:: |
yann@182 | 59 |
@echo |
yann@197 | 60 |
@echo 'Execute "$(CT_NG) config" or "$(CT_NG) menuconfig" to configure crosstool-NG' |
yann@197 | 61 |
@echo 'Execute "$(CT_NG) build" to build your toolchain' |
yann@185 | 62 |
@echo 'See "man 1 ct-ng" for some help as well' |
yann@182 | 63 |
|
yann@182 | 64 |
# End help system |
yann@182 | 65 |
|
yann@182 | 66 |
help-build:: |
yann@197 | 67 |
@echo ' build - Build the toolchain' |
yann@229 | 68 |
|
yann@229 | 69 |
help-clean:: |
yann@182 | 70 |
@echo ' clean - Remove generated files' |
yann@182 | 71 |
@echo ' distclean - Remove generated files, configuration and build directories' |
yann@182 | 72 |
|
yann@182 | 73 |
include $(CT_LIB_DIR)/kconfig/Makefile |
yann@182 | 74 |
include $(CT_LIB_DIR)/samples/Makefile |
yann@182 | 75 |
include $(CT_LIB_DIR)/tools/Makefile |
yann@182 | 76 |
include $(CT_LIB_DIR)/Makefile.steps |
yann@182 | 77 |
|
yann@182 | 78 |
help-distrib:: |
yann@182 | 79 |
@echo ' tarball - Build a tarball of the configured toolchain' |
yann@182 | 80 |
|
yann@182 | 81 |
help-env:: |
yann@182 | 82 |
@echo ' STOP - Stop the build just after this step' |
yann@182 | 83 |
@echo ' RESTART - Restart the build just before this step' |
yann@182 | 84 |
|
yann@182 | 85 |
.config: |
yann@182 | 86 |
@echo 'You must run either one of "$(CT_NG) config" or "$(CT_NG) menuconfig" first' |
yann@182 | 87 |
@false |
yann@182 | 88 |
|
yann@182 | 89 |
# Actual build |
yann@182 | 90 |
build:: .config |
yann@182 | 91 |
@$(CT_LIB_DIR)/scripts/crosstool.sh |
yann@182 | 92 |
|
yann@182 | 93 |
PHONY += tarball |
yann@214 | 94 |
#tarball: |
yann@214 | 95 |
# @$(CT_LIB_DIR)/scripts/tarball.sh |
yann@182 | 96 |
tarball: |
yann@214 | 97 |
@true |
yann@182 | 98 |
|
yann@182 | 99 |
PHONY += clean |
yann@182 | 100 |
clean:: |
yann@182 | 101 |
@rm -f $(CT_TOP_DIR)/.config.* |
yann@182 | 102 |
|
yann@182 | 103 |
PHONY += distclean |
yann@182 | 104 |
distclean:: clean |
yann@182 | 105 |
@rm -f $(CT_TOP_DIR)/.config* $(CT_TOP_DIR)/..config.tmp |
yann@182 | 106 |
@rm -f $(CT_TOP_DIR)/log.* |
yann@182 | 107 |
@[ ! -d "$(CT_TOP_DIR)/targets" ] || chmod -R u+w "$(CT_TOP_DIR)/targets" |
yann@182 | 108 |
@rm -rf "$(CT_TOP_DIR)/targets" |