У меня есть файл opam с линией:Указание префикса в opam файле
install: [make "install" "prefix=${prefix}$"]
мое намерение состоит в том, что-то вроде следующего (которые я проверил) будет выполняться opam install
:
make install prefix=/home/laheadle/.opam/4.02.0
В Makefile у меня есть:
install: js
cp ./tournabox.css ./tournabox.js $(prefix)/lib
Но я получаю ошибку:
#=== ERROR while installing tournabox.1.0 =====================================#
# opam-version 1.2.0
# os linux
# command make install prefix=${prefix}$
# path /home/laheadle/.opam/4.02.0/build/tournabox.1.0
# compiler 4.02.0
# exit-code 2
# env-file /home/laheadle/.opam/4.02.0/build/tournabox.1.0/tournabox-7593-d2c37b.env
# stdout-file /home/laheadle/.opam/4.02.0/build/tournabox.1.0/tournabox-7593-d2c37b.out
# stderr-file /home/laheadle/.opam/4.02.0/build/tournabox.1.0/tournabox-7593-d2c37b.err
### stdout ###
# ocamlbuild -cflag -annot -use-ocamlfind -pkgs js_of_ocaml.log,js_of_ocaml,js_of_ocaml.syntax -syntax camlp4o tournabox.byte
# js_of_ocaml +weak.js tournabox.byte
# lessc tournabox.less tournabox.css
# ocamlbuild -cflag -annot -use-ocamlfind -pkgs js_of_ocaml.log,js_of_ocaml,js_of_ocaml.syntax -syntax camlp4o tournabox.byte
### stderr ###
# make: *** Recursive variable `prefix' references itself (eventually). Stop.
Что я делаю неправильно?
Но я не понимаю, как то, что я написал, создает рекурсивную переменную. Не следует ли opam расширять $ {префикс} $ до чего-то нерекурсивного? –
Если вы ожидаете, что opam расширит переменную 'prefix', вы можете взглянуть на https://github.com/ocaml/opam/wiki/Packaging#user-content-opam-variables. – ericzma