2014-12-30 3 views
0

У меня есть файл 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. 

Что я делаю неправильно?

ответ

1

OPAM использует %{prefix}%, не ${prefix}$.

Вы можете увидеть использование префикса в части документа d.

0

Это тзд ошибка кажется напечатана марка:

‘Recursive variable `xxx' references itself (eventually). Stop.’ This means you’ve defined a normal (recursive) make variable xxx that, when it’s expanded, will refer to itself (xxx). This is not allowed; either use simply-expanded variables (‘:=’ or ‘::=’) or use the append operator (‘+=’). See How to Use Variables.

https://www.gnu.org/software/make/manual/html_node/Error-Messages.html

+0

Но я не понимаю, как то, что я написал, создает рекурсивную переменную. Не следует ли opam расширять $ {префикс} $ до чего-то нерекурсивного? –

+0

Если вы ожидаете, что opam расширит переменную 'prefix', вы можете взглянуть на https://github.com/ocaml/opam/wiki/Packaging#user-content-opam-variables. – ericzma