ct-ng.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Sep 23 14:48:10 2008 +0000 (2008-09-23)
changeset 872 fd4bf138f08f
parent 544 6b15ef33e8f2
child 931 6ce613108f43
permissions -rw-r--r--
Bart De VOS pointed out that removing absolute paths from the libc linker scripts is plainly wrong.
It dates from dawn ages of the original crosstool code, and is not well explained. At that time, binutils might not understand the sysroot stuff, and it was necessary to remove absolute paths in that case.

/trunk/scripts/build/libc/glibc.sh | 14 2 12 0 ++------------
1 file changed, 2 insertions(+), 12 deletions(-)
     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 # Some distributions (eg. Ubuntu) thought it wise to point /bin/sh to
    10 # a truly POSIX-conforming shell, ash in this case. This is not so good
    11 # as we, smart (haha!) developers (as smart we ourselves think we are),
    12 # got used to bashisms, and are enclined to easiness... So force use of
    13 # bash. (Note: this is ugly, but ./configure checks for it).
    14 export SHELL=/bin/bash
    15 
    16 # This is where ct-ng is.
    17 # Don't bother to change it other than with a new ./configure!
    18 CT_NG:=@@CT_BINDIR@@/ct-ng
    19 
    20 export CT_TOP_DIR:=$(shell pwd)
    21 export CT_LIB_DIR:=@@CT_LIBDIR@@
    22 export CT_DOC_DIR:=@@CT_DOCDIR@@
    23 
    24 # This is crosstool-NG version string
    25 export CT_VERSION:=@@CT_VERSION@@
    26 
    27 export CT_STOP:=$(STOP)
    28 export CT_RESTART:=$(RESTART)
    29 
    30 .FORCE:
    31 .PHONY: $(PHONY)
    32 PHONY += all
    33 all: help
    34 
    35 HOST_CC := gcc -funsigned-char
    36 
    37 # Help system
    38 help:: help-head help-config help-samples help-build help-clean help-distrib help-env help-tail
    39 
    40 help-head:: version
    41 	@echo  'See below for a list of available actions, listed by category:'
    42 
    43 help-config::
    44 	@echo
    45 	@echo  'Configuration actions:'
    46 
    47 help-samples::
    48 	@echo
    49 	@echo  'Preconfigured toolchains:'
    50 
    51 help-build::
    52 	@echo
    53 	@echo  'Build actions (#: force number of // jobs):'
    54 
    55 help-clean::
    56 	@echo
    57 	@echo  'Clean actions:'
    58 
    59 help-distrib::
    60 	@echo
    61 	@echo  'Distribution actions:'
    62 
    63 help-env::
    64 	@echo
    65 	@echo  'Environement variables (see @@CT_DOCDIR@@/overview.txt):'
    66 
    67 help-tail::
    68 	@echo
    69 	@echo  'Execute "$(CT_NG) config" or "$(CT_NG) menuconfig" to configure crosstool-NG'
    70 	@echo  'Execute "$(CT_NG) build" to build your toolchain'
    71 	@echo  'Execute "$(CT_NG) version" to see the version'
    72 	@echo  'See "man 1 ct-ng" for some help as well'
    73 
    74 # End help system
    75 
    76 help-build::
    77 	@echo  '  build[.#]          - Build the toolchain'
    78 
    79 help-clean::
    80 	@echo  '  clean              - Remove generated files'
    81 	@echo  '  distclean          - Remove generated files, configuration and build directories'
    82 
    83 include $(CT_LIB_DIR)/kconfig/kconfig.mk
    84 include $(CT_LIB_DIR)/steps.mk
    85 include $(CT_LIB_DIR)/samples/samples.mk
    86 include $(CT_LIB_DIR)/tools/tools.mk
    87 
    88 help-distrib::
    89 	@echo  '  tarball            - Build a tarball of the configured toolchain'
    90 
    91 help-env::
    92 	@echo  '  STOP               - Stop the build just after this step'
    93 	@echo  '  RESTART            - Restart the build just before this step'
    94 
    95 .config:
    96 	@echo  'You must run either one of "$(CT_NG) config" or "$(CT_NG) menuconfig" first'
    97 	@false
    98 
    99 # Actual build
   100 build: .config
   101 	@$(CT_LIB_DIR)/scripts/crosstool.sh
   102 
   103 build.%:
   104 	@$(CT_NG) $(shell echo "$(@)" |sed -r -e 's|^([^.]+)\.([[:digit:]]+)$$|\1 CT_JOBS=\2|;')
   105 
   106 PHONY += tarball
   107 #tarball:
   108 #	@$(CT_LIB_DIR)/scripts/tarball.sh
   109 tarball:
   110 	@echo 'Tarbal creation disabled for now... Sorry.'
   111 	@true
   112 
   113 PHONY += version
   114 version:
   115 	@echo 'This is crosstool-NG version $(CT_VERSION)'
   116 	@echo
   117 	@echo 'Copyright (C) 2008  Yann E. MORIN <yann.morin.1998@anciens.enib.fr>'
   118 	@echo 'This is free software; see the source for copying conditions.'
   119 	@echo 'There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A'
   120 	@echo 'PARTICULAR PURPOSE.'
   121 
   122 PHONY += clean
   123 clean::
   124 	@rm -f $(CT_TOP_DIR)/.config.*
   125 
   126 PHONY += distclean
   127 distclean:: clean
   128 	@rm -f $(CT_TOP_DIR)/.config* $(CT_TOP_DIR)/..config.tmp
   129 	@rm -f $(CT_TOP_DIR)/log.*
   130 	@[ ! -d "$(CT_TOP_DIR)/targets" ] || chmod -R u+w "$(CT_TOP_DIR)/targets"
   131 	@rm -rf "$(CT_TOP_DIR)/targets"