summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/companion_tools.in36
-rw-r--r--config/companion_tools/autoconf.in26
-rw-r--r--config/companion_tools/automake.in36
-rw-r--r--config/companion_tools/libtool.in21
-rw-r--r--config/companion_tools/m4.in26
-rw-r--r--config/companion_tools/make.in41
-rw-r--r--config/config.mk19
-rw-r--r--configure.ac14
-rwxr-xr-xscripts/addToolVersion.sh57
-rw-r--r--scripts/build/companion_tools/050-make.sh4
-rw-r--r--scripts/build/companion_tools/100-m4.sh2
-rw-r--r--scripts/build/companion_tools/200-autoconf.sh2
-rw-r--r--scripts/build/companion_tools/300-automake.sh2
-rw-r--r--scripts/build/companion_tools/400-libtool.sh2
14 files changed, 211 insertions, 77 deletions
diff --git a/config/companion_tools.in b/config/companion_tools.in
index f922388..ece3552 100644
--- a/config/companion_tools.in
+++ b/config/companion_tools.in
@@ -2,14 +2,9 @@
menu "Companion tools"
-# Tools that require make-3.81 to build should select this:
-config COMP_TOOLS_make_3_81_NEEDED
- bool
-
config COMP_TOOLS_FORCE_make_3_81
def_bool y
- depends on COMP_TOOLS_make_3_81_NEEDED
- depends on ! CONFIGURE_has_make381
+ depends on ! CONFIGURE_has_make_3_81_or_newer
select COMP_TOOLS
select COMP_TOOLS_make
@@ -20,7 +15,7 @@ config COMP_TOOLS
prompt "Build some companion tools"
help
Crosstool-NG relies on some external tools to be recent enough, namely:
- make = 3.81 (in some cases)
+ make >= 3.81
m4 >= 1.4.12
autoconf >= 2.63
automake >= 1.10.2
@@ -30,32 +25,7 @@ config COMP_TOOLS
but you are strongly encouraged to update your system instead!
if COMP_TOOLS
-
-config COMP_TOOLS_make
- bool
- prompt "make"
-
-config COMP_TOOLS_make_gmake
- bool
- prompt "Add gmake symlink to companion gnu/make"
- depends on COMP_TOOLS_make
-
-config COMP_TOOLS_m4
- bool
- prompt "m4"
-
-config COMP_TOOLS_autoconf
- bool
- prompt "autoconf"
-
-config COMP_TOOLS_automake
- bool
- prompt "automake"
-
-config COMP_TOOLS_libtool
- bool
- prompt "libtool"
-
+source "config.gen/companion_tools.in"
endif
endmenu
diff --git a/config/companion_tools/autoconf.in b/config/companion_tools/autoconf.in
new file mode 100644
index 0000000..3b33df6
--- /dev/null
+++ b/config/companion_tools/autoconf.in
@@ -0,0 +1,26 @@
+# Autoconf
+
+## help Autoconf
+
+choice
+ bool
+ prompt "Autoconf version"
+# Don't remove next line
+# CT_INSERT_VERSION_BELOW
+
+config AUTOCONF_V_2_69
+ bool
+ prompt "2.69"
+
+config AUTOCONF_V_2_65
+ bool
+ prompt "2.65"
+
+endchoice
+
+config AUTOCONF_VERSION
+ string
+# Don't remove next line
+# CT_INSERT_VERSION_STRING_BELOW
+ default "2.69" if AUTOCONF_V_2_69
+ default "2.65" if AUTOCONF_V_2_65
diff --git a/config/companion_tools/automake.in b/config/companion_tools/automake.in
new file mode 100644
index 0000000..500ae14
--- /dev/null
+++ b/config/companion_tools/automake.in
@@ -0,0 +1,36 @@
+# Automake
+
+## help Automake
+
+choice
+ bool
+ prompt "Automake version"
+# Don't remove next line
+# CT_INSERT_VERSION_BELOW
+
+config AUTOMAKE_V_1_15
+ bool
+ prompt "1.15"
+
+config AUTOMAKE_V_1_14
+ bool
+ prompt "1.14"
+
+config AUTOMAKE_V_1_11_6
+ bool
+ prompt "1.11.6"
+
+config AUTOMAKE_V_1_11_1
+ bool
+ prompt "1.11.1"
+
+endchoice
+
+config AUTOMAKE_VERSION
+ string
+# Don't remove next line
+# CT_INSERT_VERSION_STRING_BELOW
+ default "1.15" if AUTOMAKE_V_1_15
+ default "1.14" if AUTOMAKE_V_1_14
+ default "1.11.6" if AUTOMAKE_V_1_11_6
+ default "1.11.1" if AUTOMAKE_V_1_11_1
diff --git a/config/companion_tools/libtool.in b/config/companion_tools/libtool.in
new file mode 100644
index 0000000..62e6ee1
--- /dev/null
+++ b/config/companion_tools/libtool.in
@@ -0,0 +1,21 @@
+# Libtool
+
+## help Libtool
+
+choice
+ bool
+ prompt "Libtool version"
+# Don't remove next line
+# CT_INSERT_VERSION_BELOW
+
+config LIBTOOL_V_2_4_6
+ bool
+ prompt "2.4.6"
+
+endchoice
+
+config LIBTOOL_VERSION
+ string
+# Don't remove next line
+# CT_INSERT_VERSION_STRING_BELOW
+ default "2.4.6" if LIBTOOL_V_2_4_6
diff --git a/config/companion_tools/m4.in b/config/companion_tools/m4.in
new file mode 100644
index 0000000..b99a466
--- /dev/null
+++ b/config/companion_tools/m4.in
@@ -0,0 +1,26 @@
+# GNU m4
+
+## help GNU m4
+
+choice
+ bool
+ prompt "m4 version"
+# Don't remove next line
+# CT_INSERT_VERSION_BELOW
+
+config M4_V_1_4_17
+ bool
+ prompt "1.4.17"
+
+config M4_V_1_4_13
+ bool
+ prompt "1.4.13"
+
+endchoice
+
+config M4_VERSION
+ string
+# Don't remove next line
+# CT_INSERT_VERSION_STRING_BELOW
+ default "1.4.17" if M4_V_1_4_17
+ default "1.4.13" if M4_V_1_4_13
diff --git a/config/companion_tools/make.in b/config/companion_tools/make.in
new file mode 100644
index 0000000..0935cd8
--- /dev/null
+++ b/config/companion_tools/make.in
@@ -0,0 +1,41 @@
+# GNU make
+
+## help GNU make
+
+choice
+ bool
+ prompt "make version"
+# Don't remove next line
+# CT_INSERT_VERSION_BELOW
+
+config MAKE_V_4_2_1
+ bool
+ prompt "4.2.1"
+
+config MAKE_V_4_1
+ bool
+ prompt "4.1"
+
+config MAKE_V_4_0
+ bool
+ prompt "4.0"
+
+config MAKE_V_3_81
+ bool
+ prompt "3.81"
+
+endchoice
+
+config MAKE_GMAKE_SYMLINK
+ bool
+ prompt "Add gmake symlink to companion gnu/make"
+ depends on COMP_TOOLS_make
+
+config MAKE_VERSION
+ string
+# Don't remove next line
+# CT_INSERT_VERSION_STRING_BELOW
+ default "4.2.1" if MAKE_V_4_2_1
+ default "4.1" if MAKE_V_4_1
+ default "4.0" if MAKE_V_4_0
+ default "3.81" if MAKE_V_3_81
diff --git a/config/config.mk b/config/config.mk
index 669e157..670ecba 100644
--- a/config/config.mk
+++ b/config/config.mk
@@ -26,14 +26,16 @@ BINUTILS_CONFIG_FILES_2 = $(patsubst $(CT_LIB_DIR)/%,%,$(sort $(wildcard $(CT_LI
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
+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
@@ -67,6 +69,7 @@ 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
@@ -97,6 +100,10 @@ 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...
diff --git a/configure.ac b/configure.ac
index 8651015..492d315 100644
--- a/configure.ac
+++ b/configure.ac
@@ -241,19 +241,21 @@ AC_CACHE_CHECK([for GNU make >= 3.80], [ac_cv_path_MAKE],
AC_SUBST([MAKE], [$ac_cv_path_MAKE])
AC_PROG_MAKE_SET
-# Check for GNU make 3.81 exactly, otherwise
+# Check for GNU make 3.81 or newer, otherwise
# it will be built as a companion tool.
-AC_MSG_CHECKING([for make 3.81])
+AC_MSG_CHECKING([if make is 3.81 or newer])
AS_IF(
- [test "$MAKE_ver" = "GNU Make 3.81"],
- [make381="y"
+ [[MAKE_ver2=$(echo "$MAKE_ver" \
+ |$EGREP '^GNU Make (3.81|3.9[0-9]|[4-9])')
+ test -n "$MAKE_ver2"]],
+ [make_3_81_or_newer="y"
AC_MSG_RESULT([yes])
],
- [make381=
+ [make_3_81_or_newer=
AC_MSG_RESULT([no])
]
)
-ACX_SET_KCONFIG_OPTION([make381])
+ACX_SET_KCONFIG_OPTION([make_3_81_or_newer])
#----------------------------------------
# Check for libtool >= 1.5.26
diff --git a/scripts/addToolVersion.sh b/scripts/addToolVersion.sh
index 72baac0..643dcbb 100755
--- a/scripts/addToolVersion.sh
+++ b/scripts/addToolVersion.sh
@@ -143,6 +143,16 @@ addToolVersion() {
SedExpr1="${SedExpr1}\n select LIBC_UCLIBC_0_9_33_2_or_later"
fi
;;
+ uClibc-ng)
+ # uClibc-ng-1.0.15 changed threading configuration, no longer compatible
+ # with the rest of uClibc gang.
+ ver_M=$(getVersionField "${version}" . 1)
+ ver_m=$(getVersionField "${version}" . 2)
+ ver_p=$(getVersionField "${version}" . 3)
+ if [ ${ver_M} -eq 0 -a ${ver_m} -eq 9 -a ${ver_p} -eq 33 ]; then
+ SedExpr1="${SedExpr1}\n select LIBC_UCLIBC_NG_1_0_15_or_later"
+ fi
+ ;;
gdb)
# gdb-7.0 and above have special handling
ver_M=$(getVersionField "${version}" . 1)
@@ -175,27 +185,32 @@ fi
while [ $# -gt 0 ]; do
case "$1" in
# Tools:
- --gcc) EXP=; OBS=; cat=CC_GCC; tool=gcc; tool_prefix=cc; dot2suffix=;;
- --binutils) EXP=; OBS=; cat=BINUTILS; tool=binutils; tool_prefix=binutils; dot2suffix=;;
- --glibc) EXP=; OBS=; cat=LIBC_GLIBC; tool=glibc; tool_prefix=libc; dot2suffix=;;
- --uClibc) EXP=; OBS=; cat=LIBC_UCLIBC; tool=uClibc; tool_prefix=libc; dot2suffix=;;
- --uClibc-ng)EXP=; OBS=; cat=LIBC_UCLIBC_NG; tool=uClibc; tool_prefix=libc; dot2suffix=;;
- --newlib) EXP=; OBS=; cat=LIBC_NEWLIB; tool=newlib; tool_prefix=libc; dot2suffix=;;
- --mingw-w64)EXP=; OBS=; cat=WINAPI; tool=mingw; tool_prefix=libc; dot2suffix=;;
- --linux) EXP=; OBS=; cat=KERNEL; tool=linux; tool_prefix=kernel; dot2suffix=;;
- --gdb) EXP=; OBS=; cat=GDB; tool=gdb; tool_prefix=debug; dot2suffix=;;
- --dmalloc) EXP=; OBS=; cat=DMALLOC; tool=dmalloc; tool_prefix=debug; dot2suffix=;;
- --duma) EXP=; OBS=; cat=DUMA; tool=duma; tool_prefix=debug; dot2suffix=;;
- --strace) EXP=; OBS=; cat=STRACE; tool=strace; tool_prefix=debug; dot2suffix=;;
- --ltrace) EXP=; OBS=; cat=LTRACE; tool=ltrace; tool_prefix=debug; dot2suffix=;;
- --gmp) EXP=; OBS=; cat=GMP; tool=gmp; tool_prefix=companion_libs; dot2suffix=;;
- --mpfr) EXP=; OBS=; cat=MPFR; tool=mpfr; tool_prefix=companion_libs; dot2suffix=;;
- --isl) EXP=; OBS=; cat=ISL; tool=isl; tool_prefix=companion_libs; dot2suffix=;;
- --cloog) EXP=; OBS=; cat=CLOOG; tool=cloog; tool_prefix=companion_libs; dot2suffix=;;
- --mpc) EXP=; OBS=; cat=MPC; tool=mpc; tool_prefix=companion_libs; dot2suffix=;;
- --libelf) EXP=; OBS=; cat=LIBELF; tool=libelf; tool_prefix=companion_libs; dot2suffix=;;
- --expat) EXP=; OBS=; cat=EXPAT; tool=expat; tool_prefix=companion_libs; dot2suffix=;;
- --ncurses) EXP=; OBS=; cat=NCURSES; tool=ncurses; tool_prefix=companion_libs; dot2suffix=;;
+ --gcc) EXP=; OBS=; cat=CC_GCC; tool=gcc; tool_prefix=cc; dot2suffix=;;
+ --binutils) EXP=; OBS=; cat=BINUTILS; tool=binutils; tool_prefix=binutils; dot2suffix=;;
+ --glibc) EXP=; OBS=; cat=LIBC_GLIBC; tool=glibc; tool_prefix=libc; dot2suffix=;;
+ --uClibc) EXP=; OBS=; cat=LIBC_UCLIBC; tool=uClibc; tool_prefix=libc; dot2suffix=;;
+ --uClibc-ng)EXP=; OBS=; cat=LIBC_UCLIBC_NG; tool=uClibc; tool_prefix=libc; dot2suffix=;;
+ --newlib) EXP=; OBS=; cat=LIBC_NEWLIB; tool=newlib; tool_prefix=libc; dot2suffix=;;
+ --mingw-w64)EXP=; OBS=; cat=WINAPI; tool=mingw; tool_prefix=libc; dot2suffix=;;
+ --linux) EXP=; OBS=; cat=KERNEL; tool=linux; tool_prefix=kernel; dot2suffix=;;
+ --gdb) EXP=; OBS=; cat=GDB; tool=gdb; tool_prefix=debug; dot2suffix=;;
+ --dmalloc) EXP=; OBS=; cat=DMALLOC; tool=dmalloc; tool_prefix=debug; dot2suffix=;;
+ --duma) EXP=; OBS=; cat=DUMA; tool=duma; tool_prefix=debug; dot2suffix=;;
+ --strace) EXP=; OBS=; cat=STRACE; tool=strace; tool_prefix=debug; dot2suffix=;;
+ --ltrace) EXP=; OBS=; cat=LTRACE; tool=ltrace; tool_prefix=debug; dot2suffix=;;
+ --gmp) EXP=; OBS=; cat=GMP; tool=gmp; tool_prefix=companion_libs; dot2suffix=;;
+ --mpfr) EXP=; OBS=; cat=MPFR; tool=mpfr; tool_prefix=companion_libs; dot2suffix=;;
+ --isl) EXP=; OBS=; cat=ISL; tool=isl; tool_prefix=companion_libs; dot2suffix=;;
+ --cloog) EXP=; OBS=; cat=CLOOG; tool=cloog; tool_prefix=companion_libs; dot2suffix=;;
+ --mpc) EXP=; OBS=; cat=MPC; tool=mpc; tool_prefix=companion_libs; dot2suffix=;;
+ --libelf) EXP=; OBS=; cat=LIBELF; tool=libelf; tool_prefix=companion_libs; dot2suffix=;;
+ --expat) EXP=; OBS=; cat=EXPAT; tool=expat; tool_prefix=companion_libs; dot2suffix=;;
+ --ncurses) EXP=; OBS=; cat=NCURSES; tool=ncurses; tool_prefix=companion_libs; dot2suffix=;;
+ --make) EXP=; OBS=; cat=MAKE; tool=make; tool_prefix=companion_tools; dot2suffix=;;
+ --m4) EXP=; OBS=; cat=M4; tool=m4; tool_prefix=companion_tools; dot2suffix=;;
+ --autoconf) EXP=; OBS=; cat=AUTOCONF; tool=autoconf; tool_prefix=companion_tools; dot2suffix=;;
+ --automake) EXP=; OBS=; cat=AUTOMAKE; tool=automake; tool_prefix=companion_tools; dot2suffix=;;
+ --libtool) EXP=; OBS=; cat=LIBTOOL; tool=libtool; tool_prefix=companion_tools; dot2suffix=;;
# Tools options:
-x|--experimental|+s) EXP=1;;
diff --git a/scripts/build/companion_tools/050-make.sh b/scripts/build/companion_tools/050-make.sh
index 4247545..9458a25 100644
--- a/scripts/build/companion_tools/050-make.sh
+++ b/scripts/build/companion_tools/050-make.sh
@@ -1,7 +1,5 @@
# Build script for make
-CT_MAKE_VERSION=3.81
-
do_companion_tools_make_get() {
CT_GetFile "make-${CT_MAKE_VERSION}" \
{http,ftp,https}://ftp.gnu.org/gnu/make
@@ -22,7 +20,7 @@ do_companion_tools_make_build() {
--prefix="${CT_BUILDTOOLS_PREFIX_DIR}"
CT_DoExecLog ALL make
CT_DoExecLog ALL make install
- if [ "${CT_COMP_TOOLS_make_gmake}" = "y" ]; then
+ if [ "${CT_MAKE_GMAKE_SYMLINK}" = "y" ]; then
CT_DoExecLog ALL ln -sv make "${CT_BUILDTOOLS_PREFIX_DIR}/bin/gmake"
fi
CT_Popd
diff --git a/scripts/build/companion_tools/100-m4.sh b/scripts/build/companion_tools/100-m4.sh
index dd8380e..83ab815 100644
--- a/scripts/build/companion_tools/100-m4.sh
+++ b/scripts/build/companion_tools/100-m4.sh
@@ -1,7 +1,5 @@
# Build script for m4
-CT_M4_VERSION=1.4.13
-
do_companion_tools_m4_get() {
CT_GetFile "m4-${CT_M4_VERSION}" \
{http,ftp,https}://ftp.gnu.org/gnu/m4
diff --git a/scripts/build/companion_tools/200-autoconf.sh b/scripts/build/companion_tools/200-autoconf.sh
index 78e1b32..e6e5764 100644
--- a/scripts/build/companion_tools/200-autoconf.sh
+++ b/scripts/build/companion_tools/200-autoconf.sh
@@ -1,7 +1,5 @@
# Build script for autoconf
-CT_AUTOCONF_VERSION=2.65
-
do_companion_tools_autoconf_get() {
CT_GetFile "autoconf-${CT_AUTOCONF_VERSION}" \
{http,ftp,https}://ftp.gnu.org/gnu/autoconf
diff --git a/scripts/build/companion_tools/300-automake.sh b/scripts/build/companion_tools/300-automake.sh
index ae0c49b..52f62d2 100644
--- a/scripts/build/companion_tools/300-automake.sh
+++ b/scripts/build/companion_tools/300-automake.sh
@@ -1,7 +1,5 @@
# Build script for automake
-CT_AUTOMAKE_VERSION=1.11.1
-
do_companion_tools_automake_get() {
CT_GetFile "automake-${CT_AUTOMAKE_VERSION}" \
{http,ftp,https}://ftp.gnu.org/gnu/automake
diff --git a/scripts/build/companion_tools/400-libtool.sh b/scripts/build/companion_tools/400-libtool.sh
index 43d1f05..cfe0f63 100644
--- a/scripts/build/companion_tools/400-libtool.sh
+++ b/scripts/build/companion_tools/400-libtool.sh
@@ -1,7 +1,5 @@
# Build script for libtool
-CT_LIBTOOL_VERSION=2.4.6
-
do_companion_tools_libtool_get() {
CT_GetFile "libtool-${CT_LIBTOOL_VERSION}" \
{http,ftp,https}://ftp.gnu.org/gnu/libtool