Commit Graph

76 Commits

Author SHA1 Message Date
Alexey Neyman
d14adeb1d9 Use git-version-gen to generate version info
Suggested-by: Chris Packham <judge.packham@gmail.com>
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-06-06 17:52:17 -07:00
Alexey Neyman
74979fb19b Add checking for *sum and unzip
Also improve logging (add an ability to log commands/files/environment variables
to config.log)

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-29 12:06:54 -07:00
Anton Maklakov
7efb493d37 Add compatibility with automake < 1.14
As we support CentOS, for example, we have a problem there

    automake: warnings are treated as errors
    kconfig/Makefile.am:26: warning: compiling 'lxdialog/checklist.c' in subdir requires 'AM_PROG_CC_C_O' in
    'configure.ac'
    autoreconf: automake failed with exit status: 1
2018-04-27 15:26:06 +08:00
Alexey Neyman
0d7822e796 Require libtool be present
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-15 14:29:37 -07:00
Alexey Neyman
7eb903667b Lintian warnings cleanup
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
b670aaf1ad Install bash completion into new location
/share/bash-completion/completions rather than /etc/bash_completion.d

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
970811a1c5 Conditionally install bash completion
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
bb6c97551f User manual installation
... when running from a release tarball.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
355f6f03fb Cannot ignore 'make install' with automake
Automake does not allow us to place the hooks before its generated actions,
and does not allow us to check MAKECMDGOALS, and does not support a mechanism
for disabling make install (such as noinst_SUBDIRS, requested a few times
on automake mailing list). The only way I could preserve the current behavior
is to have a GNUmakefile wrapper that will convert MAKECMDGOAL into a variable
unknown to automake - which seems too convoluted a solution for the problem
being solved.

Hence the approach is to not override anything for --enable-local. It is now
fully handled by selecting different values for CT_xxx_DIR in ct-ng.in; but
at the build-system level, all the variables remain the same. We just don't
support 'make install' in that case anymore; but the ct-ng in the working
copy can be used after a regular 'make' (or 'make all').

Help message for --enable-local updated accordingly.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
f45e29c5ca Restore --enable-local use
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
5b95b81ea9 Kill gperf vestiges
Generate paths.sh by configure, do away with paths.mk.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
9dc94f3662 Install "pure data" directories
... and update .gitignore. Survives 'make distcheck'.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
d9d4d09026 Enable mconf build
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
66821508f4 Fix install --strip-program check after merge
Also, fix the use of AC_CACHE_CHECK in stat format checker.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
7655fc2a3c Cleanup after rebase on master:
gperf detection macros no longer needed, gperf is not used anymore.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
9238b58721 WIP: autotoolization
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
576dcc3fee Remove special handling of dpkg-buildflags
Instead, just honor CFLAGS/CPPFLAGS/LDFLAGS as they're passed down from
configure. This brings the build process in compliance with the
recommended practices.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:02:33 -07:00
Alexey Neyman
d401afbdda Get rid of sub{lib,doc}dir
They don't make sense - using same ct-ng won't work with different versions,
so they cannot coexist in the same prefix.

Also localize other configure variables so that their usage is easier to track.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:02:33 -07:00
Alexey Neyman
1ce2eab963 Simplify the macro for checking stat flavor a bit
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:02:33 -07:00
Alexey Neyman
0bcb67fa52 Use autoconfig-archve/automake tests
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:02:33 -07:00
Alexey Neyman
896bc2d173 Split local helper macros into separate m4's
... which are then picked up via aclocal.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:02:33 -07:00
Alexey Neyman
1c329c33bf Ncurses fixes for 6.1
- Update to 20180129
- Throw in --disable-db-install if database is disabled; otherwise
  'make install' tries to run tic which is not built.
- Select appropriate strip utility for the host; otherwise non-x86
  architectures fail to install (unless --disable-stripping is also
  added)

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-01-29 22:47:26 -08:00
Alexey Neyman
2ebbd3e318 Merge pull request #784 from bmwiedemann/date
Allow for reproducible builds
2017-09-18 12:11:59 -07:00
Alexey Neyman
1da3cc59df Fix typo
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-09-03 12:11:23 -07:00
Bernhard M. Wiedemann
349be05ee5 Allow to override build date
in order to make builds reproducible.
See https://reproducible-builds.org/ for why this is good
and https://reproducible-builds.org/specs/source-date-epoch/
for the definition of this variable.

This date call is designed to work with both GNU date and BSD date.
2017-07-21 15:21:08 +02:00
Alexey Neyman
1b4e784a0b Fix debuild warnings/errors
- Update .gitignore, do not place .gitignore into directories installed
in bulk
- Remove executable permissions and shebangs from the scripts that are
supposed to be invoked only via ct-ng frontent; prepend them with $(bash).
Despite what showSamples.sh said, it already has some bashisms.
- Remove --with autotools-dev and override dh_update_autotools_config
to avoid having config.{sub,guess} clobbered with older versions
- Install bash completion where Debian (now) expects it
- Update man page to use .\" as the comment delimiter, instead of
undefined macro (."); also, minor text edits.
- Install kconfig.mk without execute permission.
- Remove shell wrappers from 170-localedef-fix-trampoline.patch, we
do not use that for applying patches
- Revoke execute permissions on 210-expat.sh
- Get flags from dpkg-buildflags if available

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-06-07 22:38:53 -07:00
Alexey Neyman
2c0fb22641 Generate config/configure.in directly
from configure rather than substitute it from Makefile. Eventually we
might want to get rid of configure.in completely, doing on-the-fly
checks at the time of `ct-ng build`, but that is left for another day.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-04-22 12:28:50 -07:00
Alexey Neyman
a61f1c5bc2 Check for ggrep/gegrep in configure
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-03-08 17:06:46 -08:00
Dan McGregor
6d1bcaa2f5 Use configure to find the processor count
configure.ac now finds how to count the CPUs in a system. Currently
the getconf method and sysctl methods are supported. Adding more is
easy enough.

Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
2017-03-01 22:22:13 -06:00
Alexey Neyman
439cab379e Require xz to be present
Some software starts to adopt xz-only distribution (strace,
gcc-linaro, ...). Better that than deal with cryptic errors like
"cannot find strace-.tar.bz2".

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-27 22:55:57 -08:00
Alexey Neyman
b3c23b7fdb Sed version may be reported differently
Either "GNU sed, version" or "gsed (GNU sed)".

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-27 09:33:03 -08:00
Alexey Neyman
2dae1cf816 Require GNU sed
After much struggling with macos (BSD) sed and even getting everything
work in crosstool-ng itself, I had to abandon that because some
components rely on GNU syntax. Specifically, GNU libc uses '/.../{H;g}'
(note absense of the separator after 'g').

So, revert the -r/-E detection and check for sed's being of GNU origin.
MacOS people, sorry, but you'd have to install GNU sed.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-26 20:42:32 -08:00
Alexey Neyman
59bab98b2d Revert "Determine whether -E/-r option selects extended regexp"
This reverts commit 7bcf18bfab.
2017-02-26 19:06:35 -08:00
Alexey Neyman
7bcf18bfab Determine whether -E/-r option selects extended regexp
... and then use the right option. See the note in scripts/functions
on where we should use ${foo} and where just 'foo'; this boils down to
whether we can expect the build tools override to be in effect (e.g. in
the actual build scripts) or not (i.e. outside of scripts/build).
While running in scripts/functions, or in scripts/crosstool-NG.sh the
build tools override directory (.build/tools/bin) may have not been
set up (yet, or at all).

Also, modify the installed scripts (populate, xldd) accordingly.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-13 22:47:40 -08:00
Alexey Neyman
f9bec4ed7c stat: determine whether it is BSD or GNU flavor
Seems like MacOS may have either in the path.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-12 22:02:28 -08:00
Alexey Neyman
35f89c4064 Detect both wget/curl and allow user to select the agent
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-12 22:02:23 -08:00
Alexey Neyman
df80f4e69d Check for C++ in configure
Recent GMP/GCC/GDB releases require c++.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-02 16:39:23 -08:00
Alexey Neyman
30c91131a1 Bump autoconf requirement to 2.65
Required by automake 1.15.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-29 21:39:44 -08:00
Alexey Neyman
7a94c81e5b Rework configure logic wrt GNU autotools
Rather than requiring them of a certain version, detect if they are present
(and have sufficient version) and select an appropriate companion tool
otherwise. The reason is that, for example, most recent gettext requires
automake 1.15, but the newest available CentOS has 1.13. Hence, the option
to "upgrade your system" does not apply, and the warning comment above
the companion tools is rather scary.

With this approach, it will work out of the box - either by using the host's
tools, or by building them as needed. Note that the user can still change
the setting in the config.

While there, propagate the new version checking macro to awk/bash/host binutils,
and switch from --with-foo=xxx to officially blessed FOO=xxx: the latter
does not require checking for bogus values (i.e., --with-foo, --without-foo)
and AC_PROG_* macros recognize the corresponding settings without further
modifications. For now, I kept --with-foo=, if only to complain and steer
people to the new way. To be cleaned up after a release.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-27 20:40:47 -08:00
Alexey Neyman
8dff7012be Check for git presence
... and make the optiont that fetch from Git repositories depend on
the git discovery.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-23 18:25:15 -08:00
Alexey Neyman
3bb2bcd2a3 Add a check for gperf function signature.
Loosely based on:
c9f7b4d356

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-12 23:00:34 -08:00
Alexey Neyman
87bfd55b3b Give companion tools some love.
Allow selection of make/m4/... version. Support imports of new versions
via addToolVersion.sh. Import newest versions of the companion tools.

One non-trivial change is the handling of make versions. Existing code
was not handling make companion tool as described (see the previous
commit). However, since most modern systems have make 4.x, that previous
commit made crosstool-ng always build make as a companion tool.

This traces back to the commit dd15c93 from 2014. That commit's log message
says that actually it was 3.81 which broke the build for certain component
(it was originally breaking eglibc, but I noticed it was breaking current
glibc on powerpc64), and introduced an option to force using 3.81 by
"components that really need it". It looks like in 2.5 years we haven't
seen any such components that really need make 3.81, and (given that make
has already had a few releases since 3.81) we're unlikely to see them
in the future.

Hence, the configure check is changed from "exactly 3.81" to "3.81 or newer".
In its current form, configure will accept make 3.80+, and will not require
make as a companion tool for 3.81+. We might want to bump the latter check
to even newer version given the claim from dd15c93. Killed
COMP_TOOLS_make_3_81_NEEDED.

Anyway, I retained 3.81 just in case; ditto for m4 1.14.3, autoconf 2.65
and automake 1.11.1.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-11-21 23:03:03 -08:00
Bryan Hundven
58617df80d configure: Don't write a.out on static compiler check
Because I don't pass `-o` to gcc, it makes an a.out file with gcc.
For clang it doesn't make the a.out, as that is not the default.

It doesn't hurt to output to /dev/null for both.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-03-03 09:51:32 -08:00
Bryan Hundven
c66d5c20cf configure: Check to see if gcc can static link
This is a semi-nasty-hack to see if gcc can static link.
Obviously on Mac OS X this is not possible, so we set
CT_CONFIGURE_has_static_link=y if it can.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-02-26 03:52:05 -08:00
Bryan Hundven
6c49a232a8 configure: Correctly search for tinfo for kconfig
I previously thought that tinfo could only be a link to libncurses in
modern ncurses installations. I was wrong.

Now we check for ncurses, then check for tinfo. If tinfo is a link to
ncurses, it is then not required to link against. But if libtinfo is
providing tgetent, and not libncurses, then we must add it to LIBS as
well.

Also, kconfig shouldn't hardcode -lncurses, it should use what is in
$(LIBS).

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-14 23:14:44 -08:00
Bryan Hundven
c9f3827b91 configure: fix search for gpatch for FreeBSD
We require GNU/patch, and when we install patch with `pkg`, crosstool-ng
still only finds the BSD/patch in /usr/bin/patch.

This commit fixes that and searches for gpatch first.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-14 23:03:52 -08:00
Bryan Hundven
ebb0df619e configure: Check for libtinfo.so
While usually distributed with ncurses, some distributions distribute
this library separately. Check to make sure it is installed.

This closes #241

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-14 14:29:11 -08:00
Bryan Hundven
e4bb360748 file modes: Set files to be non-executable
I was going to start doing some autoconf work, and noticed that
configure.in was executable. Then I noticed Makefile.in was executable.

o.O

So, I ran ```find . -type f -executable``` and found a bunch of files
that shouldn't be set executable.

This commit makes them normal files again.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-12 23:18:04 -08:00
Ray Donnelly
2cf7a83fde Cygwin: Link to libintl for gettext
Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
2015-11-13 02:17:43 +00:00
Ray Donnelly
ada8ae30a8 Add help2man as PROGS_REQ and to travis
libtool needs it.

Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
2015-11-13 02:17:43 +00:00