`make release_tests` 在 ./configure 之后在新的 Erlang 安装中失败

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

我克隆了,make./configure 然后 make release_tests

根otp目录中有./make/target.mk./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

编辑:

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#

问题说OP 运行 make,然后是./configure,然后是make release_tests,但这是不正确的;总是在 make.

之前运行 configure

在 Mac 运行 macOS Sierra 10.12.6 上使用 bash 中的以下步骤成功构建 release_tests 目标:

$ 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

我相信这也适用于 Linux 或任何其他 UNIX 变体。