ct-ng.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Jan 29 22:09:55 2009 +0000 (2009-01-29)
changeset 1176 8508ec77df4c
parent 1144 e1bf6cd3a27c
child 1336 bc8b9381f637
permissions -rw-r--r--
If compiling the Java frontend, we'll require a native gcj, but only in this case.

/trunk/scripts/crosstool-NG.sh.in | 8 7 1 0 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
     1 #!@@CT_make@@ -rf
     2 # Makefile for crosstool-NG.
     3 # Copyright 2006 Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
     4 
     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
     8 
     9 # Don't go parallel
    10 .NOTPARALLEL:
    11 
    12 # This is where ct-ng is:
    13 export CT_NG:=$(lastword $(MAKEFILE_LIST))
    14 # and this is where we're working in:
    15 export CT_TOP_DIR:=$(shell pwd)
    16 
    17 # Paths and values set by ./configure
    18 # Don't bother to change it other than with a new ./configure!
    19 export CT_LIB_DIR:=@@CT_LIBDIR@@
    20 export CT_DOC_DIR:=@@CT_DOCDIR@@
    21 
    22 # This is crosstool-NG version string
    23 export CT_VERSION:=@@CT_VERSION@@
    24 
    25 # Paths found by ./configure
    26 include $(CT_LIB_DIR)/paths.mk
    27 
    28 # Some distributions (eg. Ubuntu) thought it wise to point /bin/sh to
    29 # a truly POSIX-conforming shell, ash in this case. This is not so good
    30 # as we, smart (haha!) developers (as smart we ourselves think we are),
    31 # got used to bashisms, and are enclined to easiness... So force use of
    32 # bash.
    33 export SHELL=$(bash)
    34 
    35 # Make the restart/stop steps availabe to scripts/crostool-NG.sh
    36 export CT_STOP:=$(STOP)
    37 export CT_RESTART:=$(RESTART)
    38 
    39 SILENT=@
    40 ECHO=echo
    41 ifeq ($(strip $(origin V)),command line)
    42   ifeq ($(strip $(V)),0)
    43     SILENT=@
    44     ECHO=:
    45   else
    46     ifeq ($(strip $(V)),1)
    47       SILENT=
    48       ECHO=:
    49     else
    50       ifeq ($(strip $(V)),2)
    51         SILENT=
    52         ECHO=echo
    53       endif # V == 2
    54     endif # V== 1
    55   endif # V == 0
    56 endif # origin V
    57 export V SILENT ECHO
    58 
    59 .FORCE: $(FORCE)
    60 .PHONY: $(PHONY)
    61 PHONY += all
    62 all: help
    63 
    64 # Help system
    65 help:: help-head help-config help-samples help-build help-clean help-distrib help-env help-tail
    66 
    67 help-head:: version
    68 	@echo  'See below for a list of available actions, listed by category:'
    69 
    70 help-config::
    71 	@echo
    72 	@echo  'Configuration actions:'
    73 
    74 help-samples::
    75 	@echo
    76 	@echo  'Preconfigured toolchains (#: force number of // jobs):'
    77 
    78 help-build::
    79 	@echo
    80 	@echo  'Build actions (#: force number of // jobs):'
    81 
    82 help-clean::
    83 	@echo
    84 	@echo  'Clean actions:'
    85 
    86 help-distrib::
    87 	@echo
    88 	@echo  'Distribution actions:'
    89 
    90 help-env::
    91 	@echo
    92 	@echo  'Environement variables (see @@CT_DOCDIR@@/overview.txt):'
    93 
    94 help-tail::
    95 	@echo
    96 	@echo  'Use action "config" or "menuconfig" to configure crosstool-NG'
    97 	@echo  'Use action "build" to build your toolchain'
    98 	@echo  'Use action "version" to see the version'
    99 	@echo  'See "man 1 ct-ng" for some help as well'
   100 
   101 help-build::
   102 	@echo  '  build[.#]          - Build the currently configured toolchain'
   103 
   104 help-clean::
   105 	@echo  '  clean              - Remove generated files'
   106 	@echo  '  distclean          - Remove generated files, configuration and build directories'
   107 
   108 include $(CT_LIB_DIR)/config/config.mk
   109 include $(CT_LIB_DIR)/kconfig/kconfig.mk
   110 include $(CT_LIB_DIR)/steps.mk
   111 include $(CT_LIB_DIR)/samples/samples.mk
   112 include $(CT_LIB_DIR)/scripts/scripts.mk
   113 
   114 help-distrib::
   115 	@echo  '  tarball            - Build a tarball of the configured toolchain'
   116 
   117 help-env::
   118 
   119 # End help system
   120 
   121 .config:
   122 	@echo ' There is no existing .config file!'
   123 	@false
   124 
   125 # Actual build
   126 build: .config
   127 	$(SILENT)$(CT_LIB_DIR)/scripts/crosstool-NG.sh
   128 
   129 build.%:
   130 	$(SILENT)$(MAKE) -rf $(CT_NG) $(shell echo "$(@)" |$(sed) -r -e 's|^([^.]+)\.([[:digit:]]+)$$|\1 CT_JOBS=\2|;')
   131 
   132 PHONY += tarball
   133 #tarball:
   134 #	@$(CT_LIB_DIR)/scripts/tarball.sh
   135 tarball:
   136 	@echo 'Tarball creation disabled for now... Sorry.'
   137 	@true
   138 
   139 PHONY += version
   140 version:
   141 	@echo 'This is crosstool-NG version $(CT_VERSION)'
   142 	@echo
   143 	@echo 'Copyright (C) 2008  Yann E. MORIN <yann.morin.1998@anciens.enib.fr>'
   144 	@echo 'This is free software; see the source for copying conditions.'
   145 	@echo 'There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A'
   146 	@echo 'PARTICULAR PURPOSE.'
   147 	@echo
   148 
   149 PHONY += clean
   150 clean::
   151 	@$(ECHO) "  CLEAN log"
   152 	$(SILENT)rm -f log.* .config.* ..config*
   153 
   154 PHONY += distclean
   155 distclean:: clean
   156 	@$(ECHO) "  CLEAN .config"
   157 	$(SILENT)rm -f .config .config.* ..config*
   158 	@$(ECHO) "  CLEAN targets"
   159 	$(SILENT)chmod -R u+w targets >/dev/null 2>&1 || true
   160 	$(SILENT)rm -rf targets