steps.mk
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Mar 29 00:15:32 2010 +0200 (2010-03-29)
changeset 1864 758d5137fe87
parent 1811 35cf5e2f110a
child 1876 a6a4beab3125
permissions -rw-r--r--
scripts/populate: optimise search loop

Curently, populate will iterate over all ELF (shared objects|executables)
to look for missing NEEDED DSOs, adding to the list at every iterations
of the search loop.

Instead of looking again at previously handled ELF files, recursively
resolve every ELf files.

Also, in case there are a whole lot of files (more than the shell can
accept as arguments list, or creating a command line longer than the
shell can cope with), use a temporary file with the list of files
to search for missing dependencies.
yann@136
     1
# Makefile for each steps
yann@136
     2
# Copyright 2006 Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
yann@136
     3
yann@1001
     4
# ----------------------------------------------------------
yann@1001
     5
# This is the steps help entry
yann@1001
     6
yann@1001
     7
help-build::
yann@1001
     8
	@echo  '  list-steps         - List all build steps'
yann@1001
     9
yann@1015
    10
help-env::
yann@1015
    11
	@echo  '  STOP               - Stop the build just after this step'
yann@1015
    12
	@echo  '  RESTART            - Restart the build just before this step'
yann@1015
    13
yann@1001
    14
# ----------------------------------------------------------
yann@1001
    15
# The steps list
yann@1001
    16
yann@1149
    17
# Please keep the last line with a '\' and keep the following empy line:
yann@1001
    18
# it helps when diffing and merging.
yann@461
    19
CT_STEPS := libc_check_config   \
yann@461
    20
            kernel_headers      \
yann@466
    21
            gmp                 \
yann@466
    22
            mpfr                \
yann@1324
    23
            ppl                 \
yann@1380
    24
            cloog               \
yann@1384
    25
            mpc                 \
yann@1811
    26
            libelf              \
yann@461
    27
            binutils            \
yann@1337
    28
            elf2flt             \
yann@1854
    29
            sstrip              \
yann@461
    30
            cc_core_pass_1      \
yann@461
    31
            libc_headers        \
yann@461
    32
            libc_start_files    \
yann@461
    33
            cc_core_pass_2      \
yann@461
    34
            libc                \
yann@461
    35
            cc                  \
yann@461
    36
            libc_finish         \
yann@602
    37
            gmp_target          \
yann@602
    38
            mpfr_target         \
yann@1811
    39
            libelf_target       \
yann@1034
    40
            binutils_target     \
yann@461
    41
            debug               \
yann@1149
    42
            finish              \
yann@461
    43
yann@1143
    44
# Make the list available to sub-processes (scripts/crosstool-NG.sh needs it)
yann@461
    45
export CT_STEPS
yann@181
    46
yann@1001
    47
# Print the steps list
yann@1001
    48
PHONY += list-steps
yann@1001
    49
list-steps:
yann@1001
    50
	@echo  'Available build steps, in order:'
yann@1001
    51
	@for step in $(CT_STEPS); do    \
yann@1001
    52
	     echo "  - $${step}";       \
yann@1001
    53
	 done
yann@1001
    54
	@echo  'Use "<step>" as action to execute only that step.'
yann@1001
    55
	@echo  'Use "+<step>" as action to execute up to that step.'
yann@1001
    56
	@echo  'Use "<step>+" as action to execute from that step onward.'
yann@1001
    57
yann@1001
    58
# ----------------------------------------------------------
yann@1001
    59
# This part deals with executing steps
yann@1001
    60
yann@181
    61
$(CT_STEPS):
yann@1010
    62
	$(SILENT)$(MAKE) -rf $(CT_NG) V=$(V) RESTART=$@ STOP=$@ build
yann@136
    63
yann@304
    64
$(patsubst %,+%,$(CT_STEPS)):
yann@1010
    65
	$(SILENT)$(MAKE) -rf $(CT_NG) V=$(V) STOP=$(patsubst +%,%,$@) build
yann@136
    66
yann@304
    67
$(patsubst %,%+,$(CT_STEPS)):
yann@1010
    68
	$(SILENT)$(MAKE) -rf $(CT_NG) V=$(V) RESTART=$(patsubst %+,%,$@) build