mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-20 05:17:54 +00:00
Get rid of config.gen
Instead, prepare the files as a part of bootstrap and install them. This avoids rebuilding these files in each working directory; they don't change anyway as they are generated from the same installed source. Signed-off-by: Alexey Neyman <stilor@att.net>
This commit is contained in:
parent
2c0fb22641
commit
105e4b59b7
2
.gitignore
vendored
2
.gitignore
vendored
@ -9,7 +9,7 @@ config.status
|
|||||||
!ct-ng.in
|
!ct-ng.in
|
||||||
paths.*
|
paths.*
|
||||||
!paths.in
|
!paths.in
|
||||||
config.gen/
|
config/gen/
|
||||||
.config
|
.config
|
||||||
|
|
||||||
# Temporaries
|
# Temporaries
|
||||||
|
@ -4,4 +4,7 @@ set -e
|
|||||||
printf "Running autoconf...\n"
|
printf "Running autoconf...\n"
|
||||||
autoconf -Wall --force
|
autoconf -Wall --force
|
||||||
|
|
||||||
|
printf "Generating kconfig files...\n"
|
||||||
|
./maintainer/gen-kconfig.sh
|
||||||
|
|
||||||
printf "Done. You may now run:\n ./configure\n"
|
printf "Done. You may now run:\n ./configure\n"
|
||||||
|
@ -36,7 +36,7 @@ endchoice
|
|||||||
config BINUTILS
|
config BINUTILS
|
||||||
string
|
string
|
||||||
|
|
||||||
source "config.gen/binutils.in"
|
source "config/gen/binutils.in"
|
||||||
source "config.gen/binutils.in.2"
|
source "config/gen/binutils.in.2"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
@ -20,7 +20,7 @@ config CC_CORE_PASS_1_NEEDED
|
|||||||
config CC_CORE_PASS_2_NEEDED
|
config CC_CORE_PASS_2_NEEDED
|
||||||
bool
|
bool
|
||||||
|
|
||||||
source "config.gen/cc.in"
|
source "config/gen/cc.in"
|
||||||
|
|
||||||
config CC_SUPPORT_CXX
|
config CC_SUPPORT_CXX
|
||||||
bool
|
bool
|
||||||
|
@ -10,6 +10,6 @@ config COMP_TOOLS_FOR_HOST
|
|||||||
tools into the final toolchain (rather than just using them
|
tools into the final toolchain (rather than just using them
|
||||||
to build it).
|
to build it).
|
||||||
|
|
||||||
source "config.gen/companion_tools.in"
|
source "config/gen/companion_tools.in"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
# ===========================================================================
|
|
||||||
# crosstool-NG genererated config files
|
|
||||||
# These targets are used from top-level makefile
|
|
||||||
|
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
# List all config files, wether sourced or generated
|
# List all config files
|
||||||
|
|
||||||
# The top-level config file to be used be configurators
|
# The top-level config file to be used be configurators
|
||||||
# We need it to savedefconfig in scripts/saveSample.sh
|
# We need it to savedefconfig in scripts/saveSample.sh
|
||||||
@ -14,38 +10,6 @@ STATIC_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(shell find $(CT_LIB_DIR)/co
|
|||||||
# ... and how to access them:
|
# ... and how to access them:
|
||||||
$(STATIC_CONFIG_FILES): config
|
$(STATIC_CONFIG_FILES): config
|
||||||
|
|
||||||
# Build a list of per-component-type source config files
|
|
||||||
ARCH_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(sort $(wildcard $(CT_LIB_DIR)/config/arch/*.in)))
|
|
||||||
ARCH_CONFIG_FILES_2 = $(patsubst $(CT_LIB_DIR)/%,%,$(sort $(wildcard $(CT_LIB_DIR)/config/arch/*.in.2)))
|
|
||||||
KERNEL_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(sort $(wildcard $(CT_LIB_DIR)/config/kernel/*.in)))
|
|
||||||
KERNEL_CONFIG_FILES_2 = $(patsubst $(CT_LIB_DIR)/%,%,$(sort $(wildcard $(CT_LIB_DIR)/config/kernel/*.in.2)))
|
|
||||||
CC_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(sort $(wildcard $(CT_LIB_DIR)/config/cc/*.in)))
|
|
||||||
CC_CONFIG_FILES_2 = $(patsubst $(CT_LIB_DIR)/%,%,$(sort $(wildcard $(CT_LIB_DIR)/config/cc/*.in.2)))
|
|
||||||
BINUTILS_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(sort $(wildcard $(CT_LIB_DIR)/config/binutils/*.in)))
|
|
||||||
BINUTILS_CONFIG_FILES_2 = $(patsubst $(CT_LIB_DIR)/%,%,$(sort $(wildcard $(CT_LIB_DIR)/config/binutils/*.in.2)))
|
|
||||||
LIBC_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(sort $(wildcard $(CT_LIB_DIR)/config/libc/*.in)))
|
|
||||||
LIBC_CONFIG_FILES_2 = $(patsubst $(CT_LIB_DIR)/%,%,$(sort $(wildcard $(CT_LIB_DIR)/config/libc/*.in.2)))
|
|
||||||
DEBUG_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(sort $(wildcard $(CT_LIB_DIR)/config/debug/*.in)))
|
|
||||||
COMP_TOOLS_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(sort $(wildcard $(CT_LIB_DIR)/config/companion_tools/*.in)))
|
|
||||||
|
|
||||||
# Build the list of generated config files
|
|
||||||
GEN_CONFIG_FILES = config.gen/arch.in \
|
|
||||||
config.gen/kernel.in \
|
|
||||||
config.gen/cc.in \
|
|
||||||
config.gen/binutils.in \
|
|
||||||
config.gen/libc.in \
|
|
||||||
config.gen/debug.in \
|
|
||||||
config.gen/companion_tools.in
|
|
||||||
# ... and how to access them:
|
|
||||||
# Generated files depends on the gen_in_frags script because it has the
|
|
||||||
# functions needed to build the genrated files, and thus they might need
|
|
||||||
# re-generation if it changes.
|
|
||||||
# They also depends on config.mk (this file) because it has the dependency
|
|
||||||
# rules, and thus they might need re-generation if the deps change.
|
|
||||||
$(GEN_CONFIG_FILES): config.gen \
|
|
||||||
$(CT_LIB_DIR)/scripts/gen_in_frags.sh \
|
|
||||||
$(CT_LIB_DIR)/config/config.mk
|
|
||||||
|
|
||||||
# Helper entry for the configurators
|
# Helper entry for the configurators
|
||||||
PHONY += config_files
|
PHONY += config_files
|
||||||
config_files: $(STATIC_CONFIG_FILES) $(GEN_CONFIG_FILES)
|
config_files: $(STATIC_CONFIG_FILES) $(GEN_CONFIG_FILES)
|
||||||
@ -55,60 +19,9 @@ config:
|
|||||||
@$(CT_ECHO) " LN config"
|
@$(CT_ECHO) " LN config"
|
||||||
$(SILENT)ln -s $(CT_LIB_DIR)/config config
|
$(SILENT)ln -s $(CT_LIB_DIR)/config config
|
||||||
|
|
||||||
# Where to store the generated config files into
|
|
||||||
config.gen:
|
|
||||||
@$(CT_ECHO) " MKDIR config.gen"
|
|
||||||
$(SILENT)mkdir -p config.gen
|
|
||||||
|
|
||||||
#-----------------------------------------------------------
|
|
||||||
# Build list of per-component-type items to easily build generated files
|
|
||||||
|
|
||||||
ARCHS = $(patsubst config/arch/%.in,%,$(ARCH_CONFIG_FILES))
|
|
||||||
KERNELS = $(patsubst config/kernel/%.in,%,$(KERNEL_CONFIG_FILES))
|
|
||||||
CCS = $(patsubst config/cc/%.in,%,$(CC_CONFIG_FILES))
|
|
||||||
BINUTILSS = $(patsubst config/binutils/%.in,%,$(BINUTILS_CONFIG_FILES))
|
|
||||||
LIBCS = $(patsubst config/libc/%.in,%,$(LIBC_CONFIG_FILES))
|
|
||||||
DEBUGS = $(patsubst config/debug/%.in,%,$(DEBUG_CONFIG_FILES))
|
|
||||||
COMP_TOOLS= $(patsubst config/companion_tools/%.in,%,$(COMP_TOOLS_CONFIG_FILES))
|
|
||||||
|
|
||||||
#-----------------------------------------------------------
|
|
||||||
# The rules for the generated config files
|
|
||||||
|
|
||||||
# WARNING! If a .in file disapears between two runs, that will NOT be detected!
|
|
||||||
|
|
||||||
config.gen/arch.in: $(ARCH_CONFIG_FILES) $(ARCH_CONFIG_FILES_2)
|
|
||||||
@$(CT_ECHO) ' IN $(@)'
|
|
||||||
$(SILENT)$(CT_LIB_DIR)/scripts/gen_in_frags.sh choice "$@" "Target Architecture" "ARCH" "config/arch" "Y" $(ARCHS)
|
|
||||||
|
|
||||||
config.gen/kernel.in: $(KERNEL_CONFIG_FILES) $(KERNEL_CONFIG_FILES_2)
|
|
||||||
@$(CT_ECHO) ' IN $(@)'
|
|
||||||
$(SILENT)$(CT_LIB_DIR)/scripts/gen_in_frags.sh choice "$@" "Target OS" "KERNEL" "config/kernel" "Y" $(KERNELS)
|
|
||||||
|
|
||||||
config.gen/cc.in: $(CC_CONFIG_FILES) $(CC_CONFIG_FILES_2)
|
|
||||||
@$(CT_ECHO) ' IN $(@)'
|
|
||||||
$(SILENT)$(CT_LIB_DIR)/scripts/gen_in_frags.sh choice "$@" "C compiler" "CC" "config/cc" "N" $(CCS)
|
|
||||||
|
|
||||||
config.gen/binutils.in: $(CC_BINUTILS_FILES) $(CC_BINUTILS_FILES_2)
|
|
||||||
@$(CT_ECHO) ' IN $(@)'
|
|
||||||
$(SILENT)$(CT_LIB_DIR)/scripts/gen_in_frags.sh choice "$@" "Binutils" "BINUTILS" "config/binutils" "N" $(BINUTILSS)
|
|
||||||
|
|
||||||
config.gen/libc.in: $(LIBC_CONFIG_FILES) $(LIBC_CONFIG_FILES_2)
|
|
||||||
@$(CT_ECHO) ' IN $(@)'
|
|
||||||
$(SILENT)$(CT_LIB_DIR)/scripts/gen_in_frags.sh choice "$@" "C library" "LIBC" "config/libc" "Y" $(LIBCS)
|
|
||||||
|
|
||||||
config.gen/debug.in: $(DEBUG_CONFIG_FILES)
|
|
||||||
@$(CT_ECHO) ' IN $(@)'
|
|
||||||
$(SILENT)$(CT_LIB_DIR)/scripts/gen_in_frags.sh menu "$@" "Debug facilities" "DEBUG" "config/debug" $(DEBUGS)
|
|
||||||
|
|
||||||
config.gen/companion_tools.in: $(COMP_TOOLS_CONFIG_FILES)
|
|
||||||
@$(CT_ECHO) ' IN $(@)'
|
|
||||||
$(SILENT)$(CT_LIB_DIR)/scripts/gen_in_frags.sh menu "$@" "Companion tools" "COMP_TOOLS" "config/companion_tools" $(COMP_TOOLS)
|
|
||||||
|
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
# Cleaning up the mess...
|
# Cleaning up the mess...
|
||||||
|
|
||||||
clean::
|
clean::
|
||||||
@$(CT_ECHO) " CLEAN config"
|
@$(CT_ECHO) " CLEAN config"
|
||||||
$(SILENT)rm -f config 2>/dev/null || true
|
$(SILENT)rm -f config 2>/dev/null || true
|
||||||
@$(CT_ECHO) " CLEAN config.gen"
|
|
||||||
$(SILENT)rm -rf config.gen
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
menu "Debug facilities"
|
menu "Debug facilities"
|
||||||
source "config.gen/debug.in"
|
source "config/gen/debug.in"
|
||||||
endmenu
|
endmenu
|
||||||
|
@ -22,7 +22,7 @@ config KERNEL
|
|||||||
config KERNEL_VERSION
|
config KERNEL_VERSION
|
||||||
string
|
string
|
||||||
|
|
||||||
source "config.gen/kernel.in"
|
source "config/gen/kernel.in"
|
||||||
|
|
||||||
comment "Common kernel options"
|
comment "Common kernel options"
|
||||||
|
|
||||||
@ -37,6 +37,6 @@ config SHARED_LIBS
|
|||||||
You might not want shared libraries if you're building for a target that
|
You might not want shared libraries if you're building for a target that
|
||||||
don't support it (maybe some nommu targets, for example, or bare metal).
|
don't support it (maybe some nommu targets, for example, or bare metal).
|
||||||
|
|
||||||
source "config.gen/kernel.in.2"
|
source "config/gen/kernel.in.2"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
@ -19,7 +19,7 @@ config LIBC_VERSION
|
|||||||
So if you want to be able to re-build your toolchain later, you will
|
So if you want to be able to re-build your toolchain later, you will
|
||||||
have to save your C library tarball by yourself.
|
have to save your C library tarball by yourself.
|
||||||
|
|
||||||
source "config.gen/libc.in"
|
source "config/gen/libc.in"
|
||||||
|
|
||||||
config LIBC_SUPPORT_THREADS_ANY
|
config LIBC_SUPPORT_THREADS_ANY
|
||||||
bool
|
bool
|
||||||
@ -123,7 +123,7 @@ config LIBC_XLDD
|
|||||||
for the native ldd. Please see the help, by running it
|
for the native ldd. Please see the help, by running it
|
||||||
with '--help' for more explanations.
|
with '--help' for more explanations.
|
||||||
|
|
||||||
source "config.gen/libc.in.2"
|
source "config/gen/libc.in.2"
|
||||||
|
|
||||||
endif # ! LIBC_none
|
endif # ! LIBC_none
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ menu "Target options"
|
|||||||
config ARCH
|
config ARCH
|
||||||
string
|
string
|
||||||
|
|
||||||
source "config.gen/arch.in"
|
source "config/gen/arch.in"
|
||||||
|
|
||||||
config ARCH_SUFFIX
|
config ARCH_SUFFIX
|
||||||
string
|
string
|
||||||
@ -392,6 +392,6 @@ config ARCH_FLOAT
|
|||||||
default "soft" if ARCH_FLOAT_SW
|
default "soft" if ARCH_FLOAT_SW
|
||||||
default "softfp" if ARCH_FLOAT_SOFTFP
|
default "softfp" if ARCH_FLOAT_SOFTFP
|
||||||
|
|
||||||
source "config.gen/arch.in.2"
|
source "config/gen/arch.in.2"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
@ -1,15 +1,21 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# This scripts generates either a choice or a menuconfig
|
# Accept overrides from command line if needed
|
||||||
# with the specified entries.
|
sed=${SED:-sed}
|
||||||
|
grep=${GREP:-grep}
|
||||||
|
|
||||||
|
# Generate either a choice or a menuconfig with the specified entries.
|
||||||
#
|
#
|
||||||
# Usage:
|
# Usage:
|
||||||
# generate a choice:
|
# generate a choice:
|
||||||
# gen_in_frags.sh choice <out-file> <label> <config-prefix> <base-dir> <conditionals> entry [entry...]
|
# gen_choice <out-file> <label> <config-prefix> <base-dir> \
|
||||||
|
# <conditionals> entry [entry...]
|
||||||
#
|
#
|
||||||
# generate a menuconfig:
|
# generate a menuconfig:
|
||||||
# gen_in_frags.sh menu <out-file> <label> <config-prefix> <base-dir> entry [entry...]
|
# gen_menu <out-file> <label> <config-prefix> <base-dir> \
|
||||||
|
# entry [entry...]
|
||||||
#
|
#
|
||||||
# where:
|
# where:
|
||||||
# out-file
|
# out-file
|
||||||
@ -41,7 +47,17 @@ set -e
|
|||||||
# linux cygwin mingw32 solaris...
|
# linux cygwin mingw32 solaris...
|
||||||
# ...
|
# ...
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
|
# Helper: find the base names of all *.in files in a given directory
|
||||||
|
get_components() {
|
||||||
|
local dir="${1}"
|
||||||
|
local f b
|
||||||
|
|
||||||
|
for f in ${dir}/*.in; do
|
||||||
|
b=${f#${dir}/}
|
||||||
|
echo ${b%.in}
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
# Generate a choice
|
# Generate a choice
|
||||||
# See above for usage
|
# See above for usage
|
||||||
@ -51,7 +67,6 @@ gen_choice() {
|
|||||||
local cfg_prefix="${3}"
|
local cfg_prefix="${3}"
|
||||||
local base_dir="${4}"
|
local base_dir="${4}"
|
||||||
local cond="${5}"
|
local cond="${5}"
|
||||||
shift 5
|
|
||||||
local file entry _entry
|
local file entry _entry
|
||||||
|
|
||||||
# Generate the part-1
|
# Generate the part-1
|
||||||
@ -63,7 +78,7 @@ gen_choice() {
|
|||||||
printf ' bool\n'
|
printf ' bool\n'
|
||||||
printf ' prompt "%s"\n' "${label}"
|
printf ' prompt "%s"\n' "${label}"
|
||||||
printf '\n'
|
printf '\n'
|
||||||
for entry in "${@}"; do
|
for entry in `get_components ${base_dir}`; do
|
||||||
file="${base_dir}/${entry}.in"
|
file="${base_dir}/${entry}.in"
|
||||||
_entry=$(printf '%s\n' "${entry}" |"${sed}" -r -s -e 's/[-.+]/_/g;')
|
_entry=$(printf '%s\n' "${entry}" |"${sed}" -r -s -e 's/[-.+]/_/g;')
|
||||||
printf 'config %s_%s\n' "${cfg_prefix}" "${_entry}"
|
printf 'config %s_%s\n' "${cfg_prefix}" "${_entry}"
|
||||||
@ -82,7 +97,7 @@ gen_choice() {
|
|||||||
done
|
done
|
||||||
printf 'endchoice\n'
|
printf 'endchoice\n'
|
||||||
|
|
||||||
for entry in "${@}"; do
|
for entry in `get_components ${base_dir}`; do
|
||||||
file="${base_dir}/${entry}.in"
|
file="${base_dir}/${entry}.in"
|
||||||
_entry=$(printf '%s\n' "${entry}" |"${sed}" -r -s -e 's/[-.+]/_/g;')
|
_entry=$(printf '%s\n' "${entry}" |"${sed}" -r -s -e 's/[-.+]/_/g;')
|
||||||
printf '\n'
|
printf '\n'
|
||||||
@ -105,7 +120,7 @@ gen_choice() {
|
|||||||
exec >"${out_file}.2"
|
exec >"${out_file}.2"
|
||||||
printf '# %s second part options\n' "${label}"
|
printf '# %s second part options\n' "${label}"
|
||||||
printf '# Generated file, do not edit!!!\n'
|
printf '# Generated file, do not edit!!!\n'
|
||||||
for entry in "${@}"; do
|
for entry in `get_components ${base_dir}`; do
|
||||||
file="${base_dir}/${entry}.in"
|
file="${base_dir}/${entry}.in"
|
||||||
_entry=$(printf '%s\n' "${entry}" |"${sed}" -r -s -e 's/[-.+]/_/g;')
|
_entry=$(printf '%s\n' "${entry}" |"${sed}" -r -s -e 's/[-.+]/_/g;')
|
||||||
if [ -f "${file}.2" ]; then
|
if [ -f "${file}.2" ]; then
|
||||||
@ -125,7 +140,6 @@ gen_menu() {
|
|||||||
local label="${2}"
|
local label="${2}"
|
||||||
local cfg_prefix="${3}"
|
local cfg_prefix="${3}"
|
||||||
local base_dir="${4}"
|
local base_dir="${4}"
|
||||||
shift 4
|
|
||||||
local file entry _entry
|
local file entry _entry
|
||||||
|
|
||||||
# Generate the menuconfig
|
# Generate the menuconfig
|
||||||
@ -133,7 +147,7 @@ gen_menu() {
|
|||||||
printf '# %s menu\n' "${label}"
|
printf '# %s menu\n' "${label}"
|
||||||
printf '# Generated file, do not edit!!!\n'
|
printf '# Generated file, do not edit!!!\n'
|
||||||
printf '\n'
|
printf '\n'
|
||||||
for entry in "${@}"; do
|
for entry in `get_components ${base_dir}`; do
|
||||||
file="${base_dir}/${entry}.in"
|
file="${base_dir}/${entry}.in"
|
||||||
_entry=$(printf '%s\n' "${entry}" |"${sed}" -r -s -e 's/[-.+]/_/g;')
|
_entry=$(printf '%s\n' "${entry}" |"${sed}" -r -s -e 's/[-.+]/_/g;')
|
||||||
printf 'menuconfig %s_%s\n' "${cfg_prefix}" "${_entry}"
|
printf 'menuconfig %s_%s\n' "${cfg_prefix}" "${_entry}"
|
||||||
@ -156,6 +170,11 @@ gen_menu() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
type="${1}"
|
mkdir -p config/gen
|
||||||
shift
|
gen_choice config/gen/arch.in "Target Architecture" "ARCH" "config/arch" "Y"
|
||||||
"gen_${type}" "${@}"
|
gen_choice config/gen/kernel.in "Target OS" "KERNEL" "config/kernel" "Y"
|
||||||
|
gen_choice config/gen/cc.in "Compiler" "CC" "config/cc" "N"
|
||||||
|
gen_choice config/gen/binutils.in "Binutils" "BINUTILS" "config/binutils" "N"
|
||||||
|
gen_choice config/gen/libc.in "C library" "LIBC" "config/libc" "Y"
|
||||||
|
gen_menu config/gen/debug.in "Debug facilities" "DEBUG" "config/debug"
|
||||||
|
gen_menu config/gen/companion_tools.in "Companion tools" "COMP_TOOLS" "config/companion_tools"
|
Loading…
Reference in New Issue
Block a user