aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
AgeCommit message (Collapse)Author
2021-02-22Add x86_64 compute levels as additional system typesDaniël de Kok
When performing distributed builds of machine learning packages, it would be nice if builders without the required SIMD instructions can be excluded as build nodes. Since x86_64 has accumulated a large number of different instruction set extensions, listing all possible extensions would be unwieldy. AMD, Intel, Red Hat, and SUSE have recently defined four different microarchitecture levels that are now part of the x86-64 psABI supplement and will be used in glibc 2.33: https://gitlab.com/x86-psABIs/x86-64-ABI https://lwn.net/Articles/844831/ This change uses libcpuid to detect CPU features and then uses them to add the supported x86_64 levels to the additional system types. For example on a Ryzen 3700X: $ ~/aps/bin/nix -vv --version | grep "Additional system" Additional system types: i686-linux, x86_64-v1-linux, x86_64-v2-linux, x86_64-v3-linux
2021-01-06Make sodium a required dependencyEelco Dolstra
2020-12-25Update URL where bzip2 can be obtainedSevan Janiyan
2020-12-04Fix compatibility with newer AWS SDKsStéphan Kochen
Tested against AWS SDK 1.8.99. Fixes #3201.
2020-10-15Make a better -lz hackJohn Ericson
Per the comments, the underlying issue is https://github.com/libarchive/libarchive/issues/1446, knowing this allows the hack to be much more targetted.
2020-07-23Use mdbookEelco Dolstra
2020-05-28Merge remote-tracking branch 'origin/master' into flakesEelco Dolstra
2020-05-08configure: Look for gtestEelco Dolstra
2019-12-20Merge remote-tracking branch 'origin/master' into flakesEelco Dolstra
2019-12-19Merge branch 'libarchive' of https://github.com/yorickvP/nixEelco Dolstra
2019-12-16Merge remote-tracking branch 'origin/master' into flakesEelco Dolstra
2019-12-13Initial gzip supportTom Bereknyei
Closes #3256
2019-12-09downgrade required libarchive version (ubuntu 16.04)Yorick van Pelt
2019-12-07libarchive proof of conceptYorick van Pelt
2019-12-04Merge remote-tracking branch 'origin/master' into flakesEelco Dolstra
2019-12-02Merge branch 'pkg-config-static' of https://github.com/matthewbauer/nixEelco Dolstra
2019-11-26Clean up the configure scriptEelco Dolstra
2019-11-07Merge remote-tracking branch 'origin/master' into flakesEelco Dolstra
2019-11-07Revert "autoconf: Allow overriding CFLAGS/CXXFLAGS from outside."Eelco Dolstra
This reverts commit 717e821b99797845e1bef47d862f8cb0fb69cfc9. It's much more convenient to do 'make OPTIMIZE=0'.
2019-11-07Precompile headersEelco Dolstra
This cuts 'make install -j6' on my laptop from 170s to 134s.
2019-11-06Merge remote-tracking branch 'origin/master' into flakesEelco Dolstra
2019-11-06Make --enable-gc the defaultEelco Dolstra
2019-11-01Pass --static flag to pkg-config when necessaryMatthew Bauer
2019-10-21Merge remote-tracking branch 'origin/master' into flakesEelco Dolstra
2019-10-01Use more robust test for libatomicsMatthew Bauer
Taken from Mesa configure script: https://github.com/mesa3d/mesa/blob/17.2/configure.ac#L405-L427
2019-10-01Add libatomic for 32-bit ARMMatthew Bauer
Fixes #3113
2019-07-06Merge remote-tracking branch 'origin/master' into flakesEelco Dolstra
2019-07-05Revert 82b7f0e840983879a510245903ff7c917276f65d, ↵Eelco Dolstra
cd8bc06e8786018ddb16cea4cb10971b63d0efd2, c3db9e6f8fd06d691be04cdd95a6bb21a400481d This breaks the tarball job: https://hydra.nixos.org/build/95714570
2019-07-03autoconf: Implement release tarball detection. Fixes #257.Niklas Hambüchen
This should finally allow us to address all cases of build errors due to differences between release tarballs and building from git. See also https://github.com/NixOS/nix/issues/506#issuecomment-507312587
2019-07-03autoconf: Add comment on use of `false`.Niklas Hambüchen
This is to avoid confusion as in commit a0d29040f79b365598fe75d01f72d29ab538206b.
2019-07-03autoconf: Check if --nonet works. Fixes #967 #506.Niklas Hambüchen
Also give a helpful error message on what package the user likely has to install to make it work.
2019-07-03Get BOOST_LDFLAGS from autoconf, fix Ubuntu 16.04 build.Niklas Hambüchen
Our use of boost::coroutine2 depends on -lboost_context, which in turn depends on `-lboost_thread`, which in turn depends on `-lboost_system`. I suspect that this builds on nix only because of low-level hacks like NIX_LDFLAGS. This commit passes the proper linker flags, thus fixing bootstrap builds on non-nix distributions like Ubuntu 16.04. With these changes, I can build Nix on Ubuntu 16.04 using: ./bootstrap.sh ./configure --prefix=$HOME/editline-prefix \ --disable-doc-gen \ CXX=g++-7 \ --with-boost=$HOME/boost-prefix \ EDITLINE_CFLAGS=-I$HOME/editline-prefix/include \ EDITLINE_LIBS=-leditline \ LDFLAGS=-L$HOME/editline-prefix/lib make where * g++-7 comes from gcc-7 from https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test, * editline 1.14 from https://github.com/troglobit/editline/releases/tag/1.14.0 was installed into `$HOME/editline-prefix` (because Ubuntu 16.04's `editline` is too old to have the function nix uses), * boost 1.66 from https://www.boost.org/doc/libs/1_66_0/more/getting_started/unix-variants.html was installed into $HOME/boost-prefix (because Ubuntu 16.04 only has 1.58)
2019-07-03autoconf: Allow overriding CFLAGS/CXXFLAGS from outside.Niklas Hambüchen
As is normal for autoconf-based projects. For example, it is a common use case to do ./configure CXXFLAGS=-O0 This did not work for nix until now, because the `CXXFLAGS=` declaration would unconditionally erase what the user had specified. The custom `OPTIMIZE` flag is removed, but the default `-O3` is retained; autoconf would default to `-g -O2` by default otherwise as documented on: https://www.gnu.org/software/autoconf/manual/autoconf-2.60/html_node/C-Compiler.html https://www.gnu.org/software/autoconf/manual/autoconf-2.60/html_node/C_002b_002b-Compiler.html
2019-07-03autoconf: Fix AC_STRUCT_DIRENT_D_TYPE being used before AC_PROG_CC.Niklas Hambüchen
That was incorrect, because checking the dirent type already requires a working compiler. It had the effect that setting e.g. `: ${CFLAGS=""}` before `AC_PROG_CC` as per `AC_PROG_CC`'s documentation would have no effect, because `AC_STRUCT_DIRENT_D_TYPE` would automatically set CFLASGS. (In a followup commit `: ${CFLAGS=""}` will be used, so it's important to get this working first.)
2019-07-03autoconf: Fix C++17 detection not working on Ubuntu 16.04.Niklas Hambüchen
And probably many other distributions. Until now, ./configure would fail silently printing a warning ./configure: line 4621: AX_CXX_COMPILE_STDCXX_17: command not found and then continuing, later failing with a C++ #error saying that some C++11 feature isn't supported (it didn't even get to the C++17 features). This is because older distributions don't come with the `AX_CXX_COMPILE_STDCXX_17` m4 macro. This commit vendors that macro accordingly. Now ./configure complains correctly: configure: error: *** A compiler with support for C++17 language features is required. On Ubuntu 16.04, ./configure completes if a newer compiler is used, e.g. with gcc-7 from https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test using: ./bootstrap.sh ./configure CXX=g++-7 --disable-doc-gen --with-boost=$(nix-build --no-link '<nixpkgs>' -A boost.dev)
2019-07-03autoconf: Work around editline not being found on Ubuntu 16.04.Niklas Hambüchen
And probably other Linux distributions with long-term support releases. Also update manual stating what version is needed; I checked that 1.14 is the oldest version with which current nix compiles, and added autoconf feature checks for some functions added in that release that nix uses.
2019-07-03autoconf: Detect boost, require version, set CXXFLAGS.Niklas Hambüchen
This turns previous compiler errors complaining about missing files into proper ./configure time errors telling the user which version of boost is required.
2019-07-03autoconf: Change quotes in description.Niklas Hambüchen
The unbalanced single-quotes cause many editor syntax highlighters to interpret the rest of the file as a string literal, making it easier to make syntax mistakes in absence of proper highlighting.
2019-05-07Add basic flake testsEelco Dolstra
2019-03-25configure.ac: update for new version file locationWill Dietz
2019-03-10require c++ 17Guillaume Maudoux
This fixes warnings about "structured binding declaration" requiring "-std=c++1z".
2019-02-13Support --disable-shared flag.Matthew Bauer
This tells Nix to not build the shared libraries.
2019-01-10Revert "Remove some bashisms from configure.ac"Eelco Dolstra
This reverts commit e8b0efdcc9d6329b299937790360cac8b9b256c9.
2019-01-10Revert "Escape square brackets in configure.ac"Eelco Dolstra
This reverts commit 80f464d9d72839841422f75e78ce725365cc3d71.
2019-01-09Escape square brackets in configure.acMateusz Piotrowski
This patch attempts to solve the regression introduced in e8b0efdc (#2607).
2019-01-07Merge pull request #2607 from 0mp/configure.ac-fixEelco Dolstra
Remove some bashisms from configure.ac
2019-01-07Don't look for a "pv" program, or mention it in the manual sourceJohn Ericson
The manual reference was commented out, and the sole reference to this program other than the configure script. Removed both.
2019-01-05brotli is only used as a library nowJohn Ericson
2019-01-05Remove dead code computing `dynlib_suffix` from comfigure.acJohn Ericson
2018-12-30Remove some bashisms from configure.acMateusz Piotrowski
"configure.ac" is used to generate "configure", which is supposed to be run with /bin/sh (as suggested by the shebang line of "configure"). As a result it is a good idea to remove any /bin/sh-incompatible syntax from configure.ac. Otherwise, systems that do not use Bash as their /bin/sh are unable to run "configure" due to syntax errors.