ct-ng.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Jun 11 21:47:19 2009 +0000 (2009-06-11)
branch1.4
changeset 1451 25d050084e98
parent 1144 e1bf6cd3a27c
child 1336 bc8b9381f637
permissions -rw-r--r--
populate: fix installing dynamic linker 'ld.so'

The dynamic linker, ld.so, needs the execute bit to be set.
Detect tht the library being installed is in fact ld.so and
install it with 0755 instead of 0644.

Fix detecting src == dst.

Use a simpler command to copy src -> dst.

Also change echo to printf, get rid of 'echo -n', which is
highly non-portable.


-------- diffstat follows --------
/trunk/scripts/populate.in | 76 43 33 0 +++++++++++++++++++++++++++++-----------------------
1 file changed, 43 insertions(+), 33 deletions(-)
(transplanted from d7ddcb75e0f703e2ba6d17169167356389224870)
     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