author | "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> |
Sun Jul 08 21:27:18 2007 +0000 (2007-07-08) | |
changeset 219 | 82b295870fce |
parent 197 | 9383bf4a2e2e |
child 229 | 9c5809b7fd23 |
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@182 | 29 |
help:: help-head help-config help-samples help-build 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@197 | 40 |
@echo 'Preconfigured actions:' |
yann@182 | 41 |
|
yann@182 | 42 |
help-build:: |
yann@182 | 43 |
@echo |
yann@197 | 44 |
@echo 'Build actions:' |
yann@182 | 45 |
|
yann@182 | 46 |
help-distrib:: |
yann@182 | 47 |
@echo |
yann@197 | 48 |
@echo 'Distribution actions:' |
yann@182 | 49 |
|
yann@182 | 50 |
help-env:: |
yann@182 | 51 |
@echo |
yann@182 | 52 |
@echo 'Environement variables (see @@CT_DOCDIR@@/overview.txt):' |
yann@182 | 53 |
|
yann@182 | 54 |
help-tail:: |
yann@182 | 55 |
@echo |
yann@197 | 56 |
@echo 'Execute "$(CT_NG) config" or "$(CT_NG) menuconfig" to configure crosstool-NG' |
yann@197 | 57 |
@echo 'Execute "$(CT_NG) build" to build your toolchain' |
yann@185 | 58 |
@echo 'See "man 1 ct-ng" for some help as well' |
yann@182 | 59 |
|
yann@182 | 60 |
# End help system |
yann@182 | 61 |
|
yann@182 | 62 |
help-build:: |
yann@197 | 63 |
@echo ' build - Build the toolchain' |
yann@182 | 64 |
@echo ' clean - Remove generated files' |
yann@182 | 65 |
@echo ' distclean - Remove generated files, configuration and build directories' |
yann@182 | 66 |
|
yann@182 | 67 |
include $(CT_LIB_DIR)/kconfig/Makefile |
yann@182 | 68 |
include $(CT_LIB_DIR)/samples/Makefile |
yann@182 | 69 |
include $(CT_LIB_DIR)/tools/Makefile |
yann@182 | 70 |
include $(CT_LIB_DIR)/Makefile.steps |
yann@182 | 71 |
|
yann@182 | 72 |
help-distrib:: |
yann@182 | 73 |
@echo ' tarball - Build a tarball of the configured toolchain' |
yann@182 | 74 |
|
yann@182 | 75 |
help-env:: |
yann@182 | 76 |
@echo ' STOP - Stop the build just after this step' |
yann@182 | 77 |
@echo ' RESTART - Restart the build just before this step' |
yann@182 | 78 |
|
yann@182 | 79 |
.config: |
yann@182 | 80 |
@echo 'You must run either one of "$(CT_NG) config" or "$(CT_NG) menuconfig" first' |
yann@182 | 81 |
@false |
yann@182 | 82 |
|
yann@182 | 83 |
# Actual build |
yann@182 | 84 |
build:: .config |
yann@182 | 85 |
@$(CT_LIB_DIR)/scripts/crosstool.sh |
yann@182 | 86 |
|
yann@182 | 87 |
PHONY += tarball |
yann@214 | 88 |
#tarball: |
yann@214 | 89 |
# @$(CT_LIB_DIR)/scripts/tarball.sh |
yann@182 | 90 |
tarball: |
yann@214 | 91 |
@true |
yann@182 | 92 |
|
yann@182 | 93 |
PHONY += clean |
yann@182 | 94 |
clean:: |
yann@182 | 95 |
@rm -f $(CT_TOP_DIR)/.config.* |
yann@182 | 96 |
|
yann@182 | 97 |
PHONY += distclean |
yann@182 | 98 |
distclean:: clean |
yann@182 | 99 |
@rm -f $(CT_TOP_DIR)/.config* $(CT_TOP_DIR)/..config.tmp |
yann@182 | 100 |
@rm -f $(CT_TOP_DIR)/log.* |
yann@182 | 101 |
@[ ! -d "$(CT_TOP_DIR)/targets" ] || chmod -R u+w "$(CT_TOP_DIR)/targets" |
yann@182 | 102 |
@rm -rf "$(CT_TOP_DIR)/targets" |