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

时间:2017-09-21 14:00:59

标签: linux makefile erlang otp

我克隆了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#

1 个答案:

答案 0 :(得分:3)

问题是OP运行make,然后./configure,然后make release_tests,但这是不正确的;一个人总是在configure之前运行make

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

$ 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变体。