steps.mk
author Johannes Stezenbach <js@sig21.net>
Thu Jul 29 19:47:16 2010 +0200 (2010-07-29)
changeset 2045 fdaa6c7f6dea
parent 1876 a6a4beab3125
child 2099 1bb063c8a0ca
permissions -rw-r--r--
cc/gcc: add option to compile against static libstdc++, for gcc-4.4 and newer

Idea and know-how taken from CodeSourcery build script.

Normal build:
$ ldd arm-unknown-linux-uclibcgnueabi-gcc
linux-gate.so.1 => (0xb77f3000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb76e8000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb75a1000)
libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb757a000)
/lib/ld-linux.so.2 (0xb77f4000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb755c000)

CC_STATIC_LIBSTDCXX=y:
$ ldd arm-unknown-linux-uclibcgnueabi-gcc
linux-gate.so.1 => (0xb7843000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb76e6000)
/lib/ld-linux.so.2 (0xb7844000)

I made CC_STATIC_LIBSTDCXX default=y since I think
it is always desirable.

Signed-off-by: Johannes Stezenbach <js@sig21.net>
     1 # Makefile for each steps
     2 # Copyright 2006 Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
     3 
     4 # ----------------------------------------------------------
     5 # This is the steps help entry
     6 
     7 help-build::
     8 	@echo  '  list-steps         - List all build steps'
     9 
    10 help-env::
    11 	@echo  '  STOP=step          - Stop the build just after this step (list with list-steps)'
    12 	@echo  '  RESTART=step       - Restart the build just before this step (list with list-steps)'
    13 
    14 # ----------------------------------------------------------
    15 # The steps list
    16 
    17 # Please keep the last line with a '\' and keep the following empy line:
    18 # it helps when diffing and merging.
    19 CT_STEPS := libc_check_config   \
    20             kernel_headers      \
    21             gmp                 \
    22             mpfr                \
    23             ppl                 \
    24             cloog               \
    25             mpc                 \
    26             libelf              \
    27             binutils            \
    28             elf2flt             \
    29             sstrip              \
    30             cc_core_pass_1      \
    31             libc_headers        \
    32             libc_start_files    \
    33             cc_core_pass_2      \
    34             libc                \
    35             cc                  \
    36             libc_finish         \
    37             gmp_target          \
    38             mpfr_target         \
    39             libelf_target       \
    40             binutils_target     \
    41             debug               \
    42             test_suite          \
    43             finish              \
    44 
    45 # Make the list available to sub-processes (scripts/crosstool-NG.sh needs it)
    46 export CT_STEPS
    47 
    48 # Print the steps list
    49 PHONY += list-steps
    50 list-steps:
    51 	@echo  'Available build steps, in order:'
    52 	@for step in $(CT_STEPS); do    \
    53 	     echo "  - $${step}";       \
    54 	 done
    55 	@echo  'Use "<step>" as action to execute only that step.'
    56 	@echo  'Use "+<step>" as action to execute up to that step.'
    57 	@echo  'Use "<step>+" as action to execute from that step onward.'
    58 
    59 # ----------------------------------------------------------
    60 # This part deals with executing steps
    61 
    62 $(CT_STEPS):
    63 	$(SILENT)$(MAKE) -rf $(CT_NG) V=$(V) RESTART=$@ STOP=$@ build
    64 
    65 $(patsubst %,+%,$(CT_STEPS)):
    66 	$(SILENT)$(MAKE) -rf $(CT_NG) V=$(V) STOP=$(patsubst +%,%,$@) build
    67 
    68 $(patsubst %,%+,$(CT_STEPS)):
    69 	$(SILENT)$(MAKE) -rf $(CT_NG) V=$(V) RESTART=$(patsubst %+,%,$@) build