Eu não sei quase nada sobre Ruby. Eu, no entanto, sei uma quantidade justa sobre a compilação sistemas. Eu vou sair em um membro aqui e sugerir que você encontrou um bug genuíno no sistema de compilação do Ruby .
Aqui está o meu raciocínio:
-
Eu obtenho o mesmo resultado que você faz, completamente diferente sistemas (mesmo Cygwin / Windows 7), ambos com o reit git você especifica e as fontes estoque Ruby 1.9
-
O motivo pelo qual você vê
found: /usr/bin/dot
no seuconfigure.log
é porque realmente encontrou no caminho. isso é fácil de ver no scriptconfigure
gerado, especialmente se você modificar seu primeira linha para#!/bin/sh -x
para obter a saída de depuração do shell:+ test -z /bin + for ac_exec_ext in ''\'''\''' '$ac_executable_extensions' + test -f /bin/dot + test -x /bin/dot + ac_cv_prog_DOT= + printf '%s\n' 'configure:6424: found /bin/dot' + break 2 + IFS='
-
O motivo pelo qual você vê
result: no
é porque, como você pode ver snippet acima,ac_cv_prog_DOT
foi definido como string vazia e as seguintes linhas no configure simplesmente refletem esse valor ausente:+ DOT= + test -n '' + printf '%s\n' 'configure:6438: result: no' + printf '%s\n' no no
-
O motivo que foi definido como string vazia é (e este é o ponto crucial da questão) que
configure.in
especificou cadeia vazia na linha 371:AC_CHECK_PROG(DOT, dot) AC_CHECK_PROG(DOXYGEN, doxygen)
Acredito que seja uma invocação de bugs da macro AC_CHECK_PROG, que os documentos GNU Autoconf especific levam três
― Macro: AC_CHECK_PROG (variable, prog-to-check-for, value-if-found, [value-if-not-found], [path = ‘$PATH’], [reject]) Check whether program prog-to-check-for exists in path. If it is found, set variable to value-if-found, otherwise to value-if-not-found, if given. Always pass over reject (an absolute file name) even if it is the first found in the search path; in that case, set variable using the absolute file name of the prog-to-check-for found that is not reject. If variable was already set, do nothing. Calls AC_SUBST for variable. The result of this test can be overridden by setting the variable variable or the cache variable ac_cv_prog_variable.
Não há valor padrão. Deixá-lo efetivamente significa "se você encontrar ponto, defina DOT para string vazia"
-
Eu acredito que a razão pela qual esse erro foi cometido foi porque o definição original para essa linha usou uma macro diferente,
AC_CHECK_TOOL
, que leva apenas dois argumentos.Em como chegar a svn.ruby-lang.org em 11 de novembro de 2010
Épossívelqueissotenhasidoquebradoporumtempo,ealgunsOscomentáriosdoChangeLogparecemindicarqueelesestãotendoproblemacom
DOXYGEN
,porexemplo:FriMar2619:55:412010AkinoriMUSHA<[email protected]>*Makefile.in(DOXYGEN):DefineamissingvariableDOXYGEN.Buildhasbeenfailingwhendoxygen(1)isfoundbyconfigurebutthevariableisnotdefinedbythesystemandmake(1)doesnotallowanemptycommand.("@$(DOXYGEN)" was the cause)
Finalmente, é possível que eu tenha tudo errado. Mas tenho certeza que
configure
está encontrando essas ferramentas, e foi instruído a
defina as variáveis Makefile correspondentes para string vazia.
Curioso para ouvir o que os outros pensam desta análise.