Installing Erlang part with asdf: automake: error: 'configure.ac' is required

Hi,

I tried different ways to handle asdf, but it always boils down to the subj error. Looks like some dependency is missing, but I’ve checked them. Everything looks OK.

~/.tool-versions:

elixir 1.16.0-otp-26
erlang 26.2.1

A typical console output:

+ asdf plugin add erlang https://github.com/asdf-vm/asdf-erlang.git
+ asdf plugin add elixir https://github.com/asdf-vm/asdf-elixir.git
+ cd /home/alexey
+ export 'KERL_CONFIGURE_OPTIONS=--disable-debug --without-javac'
+ KERL_CONFIGURE_OPTIONS='--disable-debug --without-javac'
+ asdf install
==> Checking whether specified Elixir release exists...
==> Downloading 1.16.0-otp-26 to /home/alexey/.asdf/downloads/elixir/1.16.0-otp-26/elixir-precompiled-1.16.0-otp-26.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 7027k  100 7027k    0     0  8610k      0 --:--:-- --:--:-- --:--:-- 8612k
==> Copying release into place
Downloading kerl...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 82830  100 82830    0     0   226k      0 --:--:-- --:--:-- --:--:--  226k
ERROR: 'asdf_26.2.1' is not a kerl-managed Erlang/OTP installation.
ERROR: no build named 'asdf_26.2.1'!
Downloading (from GitHub) Erlang/OTP 26.2.1 to /home/alexey/.asdf/downloads/erlang/26.2.1...
Extracting source code for normal build...
Building (normal) Erlang/OTP 26.2.1 (asdf_26.2.1); please wait...
Initializing (build) log file at /home/alexey/.asdf/plugins/erlang/kerl-home/builds/asdf_26.2.1/otp_build_26.2.1.log.
automake: error: 'configure.ac' is required
autoconf: error: no input file

Then the build predictably fails. What can I do?

Could you please confirm you tried this step: GitHub - asdf-vm/asdf-erlang: Erlang plugin for asdf version manager

This sounds like you are either missing one of the above or or need to update one of them.

I mention this because I’ve had an error like this once, cryptic (maybe the same one?) and it turned out that I had not done that step on the machine I was working with.

Hope this helps.

Could it be that $MAKE is set to automake instead of gmake or make in your shell?

1 Like

I’ve got zsh. echo $MAKE shows nothing at all.

That was my first thought. Should be OK. According to Google, a few have this trouble, and nobody has ever been answered :blush:

asdf-erlang, #318

Just checked in kerl and these lines:

automake: error: 'configure.ac' is required
autoconf: error: no input file

are just noise created when testing for tools availablity on arch Linux. So the other asdf issue you linked is not related as its main issue is that they are trying to compile Erlang 21 (which is ~6 years old and out of support for 3 years) using a too modern compiler.

If you post the build.log located at this location: /home/alexey/.asdf/plugins/erlang/kerl-home/builds/asdf_26.2.1/otp_build_26.2.1.log I may be able to help to figure out what is going on.

3 Likes

Thanks, it’s important to know that even so stark a message can be just noise.

The log is huge, so I post just some lines from the end. Meanwhile I switched to mise, but it all looks the same, and no wonder: the backend is still adsf.

/home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_build_26.2.1.log:

/home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:805:(.text+0x4294): undefined reference to `ei_x_new'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:806:(.text+0x429c): undefined reference to `ei_x_new_with_version'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:807:(.text+0x42a9): undefined reference to `ei_x_encode_tuple_header'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:808:(.text+0x42b8): undefined reference to `ei_x_encode_atom'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:820:(.text+0x430b): undefined reference to `ei_x_free'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:805:(.text+0x43da): undefined reference to `ei_x_new'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:806:(.text+0x43e2): undefined reference to `ei_x_new_with_version'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:807:(.text+0x43ef): undefined reference to `ei_x_encode_tuple_header'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:808:(.text+0x43fe): undefined reference to `ei_x_encode_atom'
/usr/bin/ld: ../priv/obj/x86_64-pc-linux-gnu/odbcserver.o: in function `encode_value_list_scroll':
/home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:1444:(.text+0x449f): undefined reference to `ei_x_encode_list_header'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:1447:(.text+0x44bc): undefined reference to `ei_x_encode_tuple_header'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:1459:(.text+0x454e): undefined reference to `ei_x_encode_empty_list'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:1450:(.text+0x4611): undefined reference to `ei_x_encode_list_header'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:1456:(.text+0x4624): undefined reference to `ei_x_encode_empty_list'
/usr/bin/ld: ../priv/obj/x86_64-pc-linux-gnu/odbcserver.o: in function `encode_column_dyn':
/home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:1506:(.text+0x586): undefined reference to `ei_x_encode_atom'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:1555:(.text+0x5b6): undefined reference to `ei_x_encode_atom'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:1530:(.text+0x5ed): undefined reference to `ei_x_encode_binary'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:1534:(.text+0x61b): undefined reference to `ei_x_encode_long'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:1548:(.text+0x68d): undefined reference to `ei_x_encode_binary'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:1542:(.text+0x6cd): undefined reference to `ei_x_encode_atom'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:1538:(.text+0x6fc): undefined reference to `ei_x_encode_double'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:1519:(.text+0x790): undefined reference to `ei_x_encode_ulong'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:1526:(.text+0x7b6): undefined reference to `ei_x_encode_string'
/usr/bin/ld: /home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src/odbcserver.c:1551:(.text+0x7db): undefined reference to `ei_x_encode_string'
collect2: error: ld returned 1 exit status
make[4]: *** [x86_64-pc-linux-gnu/Makefile:112: ../priv/bin/x86_64-pc-linux-gnu/odbcserver] Error 1
make[4]: Leaving directory '/home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src'
make[3]: *** [/home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/make/run_make.mk:35: opt] Error 2
make[3]: Leaving directory '/home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc/c_src'
make[2]: *** [/home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/make/otp_subdir.mk:29: opt] Error 2
make[2]: Leaving directory '/home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib/odbc'
make[1]: *** [/home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/make/otp_subdir.mk:29: opt] Error 2
make[1]: Leaving directory '/home/alexey/.cache/mise/erlang/kerl/builds/26.2.1/otp_src_26.2.1/lib'
make: *** [Makefile:518: libs] Error 2

Seems to be building of odbc that fail. I’d need to see the entire build log to know why (maybe you can attach the file?), but if you don’t need odbc, you can disable it by adding --without-odbc to KERL_CONFIGURE_OPTIONS.

3 Likes

I opened an issue on the kerl project, if you have the time, I’m sure they would appriciate help with figuring out what the problem with the printouts is.

1 Like

I’ve no idea how to attach the log: it isn’t accepted, even as an archive. Meanwhile, I tried the same on another box, and it worked. At least, build successful. So it’s just something broken or missing on the first one. The same Manjaro Linux.

Maybe you could suggest what to search in the log, so I can publish the relevant snippets?

UPD

It depends, of course, which issue is to be considered vital :blush:

Yes, it’s definitely odbc problem. If the dependency is missing, the build is successful.

1 Like

This is mostly Arch Linux specific issue #286. The final solution:

~/.zshenv:

export KERL_CONFIGURE_OPTIONS="--with-odbc=/var/lib/pacman/local/unixodbc-$(pacman -Q unixodbc | cut -d' ' -f2)"

Unfortunately, the theme heading becomes totally irrelevant. Editing doesn’t seem to be a good idea. Is there a way to handle the problem gracefully?

1 Like