quantumpotato
quantumpotato

Reputation: 9767

`make release_tests` fails after ./configure in fresh Erlang installation

I cloned, make, ./configure then make release_tests

There is a ./make/target.mk in the root otp directory but not in ./lib/common_test/test_server

root@marble-pyramid-1:~/download/otp_src_20.0# make release_tests
if test -f lib/common_test/test_server/Makefile; then \
        (cd lib/common_test/test_server; make TESTROOT="/root/download/otp_src_20.0/release/tests" \
        PATH=/root/download/otp_src_20.0/bin/:/root/download/otp_src_20.0/bootstrap/bin:"${PATH}" release_tests) || exit $?; \
    fi
make[1]: Entering directory `/root/download/otp_src_20.0/lib/common_test/test_server
Makefile:21: /make/target.mk: No such file or directory
Makefile:26: /make/x86_64-unknown-linux-gnu/otp.mk: No such file or directory
Makefile:85: /make/otp_release_targets.mk: No such file or directory
make[1]: *** No rule to make target `/make/otp_release_targets.mk'.  Stop.
make[1]: Leaving directory `/root/download/otp_src_20.0/lib/common_test/test_server'
make: *** [lib/common_test/test_server] Error 2

root@marble-pyramid-1:~/download/otp_src_20.0# ls lib/common_test/test_server/
config.guess  configure.in  install-sh             ts_benchmark.erl  ts_erl_config.erl   ts_install.erl  ts_run.erl
config.sub    conf_vars.in  Makefile               ts.config         ts.hrl              ts_lib.erl      ts.unix.config
configure     cross.cover   ts_autoconf_win32.erl  ts.erl            ts_install_cth.erl  ts_make.erl     ts.win32.config
root@marble-pyramid-1:~/download/otp_src_20.0# ls lib/common_test/test_server/make
ls: cannot access lib/common_test/test_server/make: No such file or directory

EDIT:

root@marble-pyramid-1:~/download/otp_src_20.0# ERL_TOP=$HOME/download/otp_src_20.0
root@marble-pyramid-1:~/download/otp_src_20.0# echo $ERL_TOP
/root/download/otp_src_20.0
root@marble-pyramid-1:~/download/otp_src_20.0# make release_test
make: *** No rule to make target `release_test'.  Stop.
root@marble-pyramid-1:~/download/otp_src_20.0# make release_tests
if test -f lib/common_test/test_server/Makefile; then \
        (cd lib/common_test/test_server; make TESTROOT="/root/download/otp_src_20.0/release/tests" \
        PATH=/root/download/otp_src_20.0/bin/:/root/download/otp_src_20.0/bootstrap/bin:"${PATH}" release_tests) || exit $?; \
    fi
make[1]: Entering directory `/root/download/otp_src_20.0/lib/common_test/test_server'
Makefile:21: /make/target.mk: No such file or directory
Makefile:26: /make/x86_64-unknown-linux-gnu/otp.mk: No such file or directory
Makefile:85: /make/otp_release_targets.mk: No such file or directory
make[1]: *** No rule to make target `/make/otp_release_targets.mk'.  Stop.
make[1]: Leaving directory `/root/download/otp_src_20.0/lib/common_test/test_server'
make: *** [lib/common_test/test_server] Error 2
root@marble-pyramid-1:~/download/otp_src_20.0#

Upvotes: 2

Views: 479

Answers (1)

Steve Vinoski
Steve Vinoski

Reputation: 20004

The question says the OP ran make, then ./configure, then make release_tests, but this is incorrect; one always runs configure before make.

Building the release_tests target succeeded using the following steps in bash on a Mac running macOS Sierra 10.12.6:

$ curl -LO http://erlang.org/download/otp_src_20.0.tar.gz
$ tar xf otp_src_20.0.tar.gz
$ cd otp_src_20.0
$ export ERL_TOP=$PWD
$ ./configure
$ make -j16
$ make release_test

I'm sure this would work on Linux or any other UNIX variant as well.

Upvotes: 5

Related Questions