ct-ng.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed Jan 13 20:46:01 2010 +0100 (2010-01-13)
changeset 1732 6b2ae7804c6f
parent 1618 7f52e1cca71e
child 1876 a6a4beab3125
permissions -rw-r--r--
debug/gdb: staticaly link to ncurses for the native gdb

Staticaly link the native gdb (the one that runs on the target,
not the cross one that runs on the host) to ncurses.
     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 # GREP_OPTIONS=--color=always will break the generated .in files
    36 # We do not need any GREP_OPTIONS anyway, so set it to empty.
    37 export GREP_OPTIONS=
    38 
    39 # Make the restart/stop steps availabe to scripts/crostool-NG.sh
    40 export CT_STOP:=$(STOP)
    41 export CT_RESTART:=$(RESTART)
    42 
    43 SILENT=@
    44 ECHO=echo
    45 ifeq ($(strip $(origin V)),command line)
    46   ifeq ($(strip $(V)),0)
    47     SILENT=@
    48     ECHO=:
    49   else
    50     ifeq ($(strip $(V)),1)
    51       SILENT=
    52       ECHO=:
    53     else
    54       ifeq ($(strip $(V)),2)
    55         SILENT=
    56         ECHO=echo
    57       endif # V == 2
    58     endif # V== 1
    59   endif # V == 0
    60 endif # origin V
    61 export V SILENT ECHO
    62 
    63 all: help
    64 
    65 .PHONY: $(PHONY)
    66 PHONY += all
    67 FORCE:
    68 
    69 # Help system
    70 help:: help-head help-config help-samples help-build help-clean help-distrib help-env help-tail
    71 
    72 help-head:: version
    73 	@echo  'See below for a list of available actions, listed by category:'
    74 
    75 help-config::
    76 	@echo
    77 	@echo  'Configuration actions:'
    78 
    79 help-samples::
    80 	@echo
    81 	@echo  'Preconfigured toolchains (#: force number of // jobs):'
    82 
    83 help-build::
    84 	@echo
    85 	@echo  'Build actions (#: force number of // jobs):'
    86 
    87 help-clean::
    88 	@echo
    89 	@echo  'Clean actions:'
    90 
    91 help-distrib::
    92 	@echo
    93 	@echo  'Distribution actions:'
    94 
    95 help-env::
    96 	@echo
    97 	@echo  'Environement variables (see @@CT_DOCDIR@@/overview.txt):'
    98 
    99 help-tail::
   100 	@echo
   101 	@echo  'Use action "config" or "menuconfig" to configure crosstool-NG'
   102 	@echo  'Use action "build" to build your toolchain'
   103 	@echo  'Use action "version" to see the version'
   104 	@echo  'See "man 1 ct-ng" for some help as well'
   105 
   106 help-build::
   107 	@echo  '  build[.#]          - Build the currently configured toolchain'
   108 
   109 help-clean::
   110 	@echo  '  clean              - Remove generated files'
   111 	@echo  '  distclean          - Remove generated files, configuration and build directories'
   112 
   113 include $(CT_LIB_DIR)/config/config.mk
   114 include $(CT_LIB_DIR)/kconfig/kconfig.mk
   115 include $(CT_LIB_DIR)/steps.mk
   116 include $(CT_LIB_DIR)/samples/samples.mk
   117 include $(CT_LIB_DIR)/scripts/scripts.mk
   118 
   119 help-config::
   120 	@echo  '  show-tuple         - Print the tuple of the currently configured toolchain'
   121 
   122 help-distrib::
   123 	@echo  '  tarball            - Build a tarball of the configured toolchain'
   124 
   125 help-env::
   126 
   127 # End help system
   128 
   129 .config:
   130 	@echo "There is no existing .config file!"
   131 	@echo "You need to either run 'menuconfig',"
   132 	@echo "or configure an existing sample."
   133 	@false
   134 
   135 show-tuple: .config
   136 	$(SILENT)$(bash) $(CT_LIB_DIR)/scripts/showTuple.sh
   137 
   138 # Actual build
   139 build: .config
   140 	$(SILENT)$(CT_LIB_DIR)/scripts/crosstool-NG.sh
   141 
   142 build.%:
   143 	$(SILENT)$(MAKE) -rf $(CT_NG) $(shell echo "$(@)" |$(sed) -r -e 's|^([^.]+)\.([[:digit:]]+)$$|\1 CT_JOBS=\2|;')
   144 
   145 PHONY += tarball
   146 #tarball:
   147 #	@$(CT_LIB_DIR)/scripts/tarball.sh
   148 tarball:
   149 	@echo 'Tarball creation disabled for now... Sorry.'
   150 	@true
   151 
   152 PHONY += version
   153 version:
   154 	@echo 'This is crosstool-NG version $(CT_VERSION)'
   155 	@echo
   156 	@echo 'Copyright (C) 2008  Yann E. MORIN <yann.morin.1998@anciens.enib.fr>'
   157 	@echo 'This is free software; see the source for copying conditions.'
   158 	@echo 'There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A'
   159 	@echo 'PARTICULAR PURPOSE.'
   160 	@echo
   161 
   162 PHONY += clean
   163 clean::
   164 	@$(ECHO) "  CLEAN log"
   165 	$(SILENT)rm -f log.* .config.* ..config*
   166 
   167 PHONY += distclean
   168 distclean:: clean
   169 	@$(ECHO) "  CLEAN .config"
   170 	$(SILENT)rm -f .config .config.* ..config*
   171 	@$(ECHO) "  CLEAN targets"
   172 	$(SILENT)chmod -R u+w targets >/dev/null 2>&1 || true
   173 	$(SILENT)rm -rf targets