diff options
author | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2007-07-01 19:04:20 +0000 |
---|---|---|
committer | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2007-07-01 19:04:20 +0000 |
commit | 26713d42100ebb0f949777060102b8fa20c22ffd (patch) | |
tree | c19e1e5ca3405de45e3465487ec1617fd579b532 /ct-ng.in | |
parent | c2abd16d69e6fb9514c91d81d25aa56a0633723c (diff) | |
download | crosstool-ng-26713d42100ebb0f949777060102b8fa20c22ffd.tar.gz crosstool-ng-26713d42100ebb0f949777060102b8fa20c22ffd.tar.bz2 crosstool-ng-26713d42100ebb0f949777060102b8fa20c22ffd.zip |
Merge the build system to trunk: ct-ng is now installable:
- ./configure --prefix=/some/place
- make
- make install
- export PATH="${PATH}:/some/place/bin"
- ct-ng <action>
Diffstat (limited to 'ct-ng.in')
-rw-r--r-- | ct-ng.in | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/ct-ng.in b/ct-ng.in new file mode 100644 index 00000000..11915d24 --- /dev/null +++ b/ct-ng.in @@ -0,0 +1,99 @@ +#!@@CT_MAKE@@ -f +# Makefile for crosstool-NG. +# Copyright 2006 Yann E. MORIN <yann.morin.1998@anciens.enib.fr> + +# Don't print directory as we descend into them +MAKEFLAGS += --no-print-directory + +# Remember the name of the Makefile +CT_MAKEFILE := $(lastword $(MAKEFILE_LIST)) +CT_NG := $(shell echo '$(CT_MAKEFILE)' |sed -r -e 's,($(subst :,|,$(PATH)))/,,;') + +export CT_TOP_DIR:=$(shell pwd) +export CT_LIB_DIR:=@@CT_LIBDIR@@ +export CT_DOC_DIR:=@@CT_DOCDIR@@ + +# This is crosstool-ng version string +export CT_VERSION=$(shell cat $(CT_LIB_DIR)/version) + +export CT_STOP=$(STOP) +export CT_RESTART=$(RESTART) + +.PHONY: $(PHONY) +PHONY += all +all: build + +HOST_CC = gcc -funsigned-char + +# Help system +help:: help-head help-config help-samples help-build help-distrib help-env help-tail + +help-head:: + @echo 'Available make rules:' + +help-config:: + @echo + @echo 'Configuration rules:' + +help-samples:: + @echo + @echo 'Preconfigured rules:' + +help-build:: + @echo + @echo 'Build rules:' + +help-distrib:: + @echo + @echo 'Distribution rules:' + +help-env:: + @echo + @echo 'Environement variables (see @@CT_DOCDIR@@/overview.txt):' + +help-tail:: + @echo + @echo 'Execute "$(CT_NG) config" or "$(CT_NG) menuconfig" to configure ct-ng' + @echo 'Execute "$(CT_NG)" or "$(CT_NG) all" to build all targets marked with [*]' + +# End help system + +help-build:: + @echo '* build - Build the toolchain' + @echo ' clean - Remove generated files' + @echo ' distclean - Remove generated files, configuration and build directories' + +include $(CT_LIB_DIR)/kconfig/Makefile +include $(CT_LIB_DIR)/samples/Makefile +include $(CT_LIB_DIR)/tools/Makefile +include $(CT_LIB_DIR)/Makefile.steps + +help-distrib:: + @echo ' tarball - Build a tarball of the configured toolchain' + +help-env:: + @echo ' STOP - Stop the build just after this step' + @echo ' RESTART - Restart the build just before this step' + +.config: + @echo 'You must run either one of "$(CT_NG) config" or "$(CT_NG) menuconfig" first' + @false + +# Actual build +build:: .config + @$(CT_LIB_DIR)/scripts/crosstool.sh + +PHONY += tarball +tarball: + @$(CT_LIB_DIR)/scripts/tarball.sh + +PHONY += clean +clean:: + @rm -f $(CT_TOP_DIR)/.config.* + +PHONY += distclean +distclean:: clean + @rm -f $(CT_TOP_DIR)/.config* $(CT_TOP_DIR)/..config.tmp + @rm -f $(CT_TOP_DIR)/log.* + @[ ! -d "$(CT_TOP_DIR)/targets" ] || chmod -R u+w "$(CT_TOP_DIR)/targets" + @rm -rf "$(CT_TOP_DIR)/targets" |