[Refdb-devel] CVS build problem: doc makefile uses incorrect wildcards
Status: Beta
Brought to you by:
mhoenicka
From: David N. <dav...@sw...> - 2005-12-10 03:54:43
|
Hi Markus, I'm using the inbuilt documentation building recently incorporated into refdb. Using the '--enable-docs' flag causes the build process to fail with the following feedback: --------------------------------------------------------------------------------------------- make[2]: Entering directory `/home/david/data/computing/projects/refdb/packages/refdb/custom/pkg/debianise/source/refdb-0.0-cvs-20051210/doc' make[2]: *** No rule to make target `citationlistx/*', needed by `all-am'. Stop. make[2]: Leaving directory `/home/david/data/computing/projects/refdb/packages/refdb/custom/pkg/debianise/source/refdb-0.0-cvs-20051210/doc' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/david/data/computing/projects/refdb/packages/refdb/custom/pkg/debianise/source/refdb-0.0-cvs-20051210' make: *** [build-stamp] Error 2 --------------------------------------------------------------------------------------------- This error appears to be in line 28: --------------------------------------------------------------------------------------------- citationlistx_DATA = citationlistx/* --------------------------------------------------------------------------------------------- This appears to be incorrect wildcard usage. Here is an extract from the GNU 'make' info document: --------------------------------------------------------------------------------------------- Wildcard expansion does not happen when you define a variable. Thus, if you write this: objects = *.o then the value of the variable `objects' is the actual string `*.o'. However, if you use the value of `objects' in a target, prerequisite or command, wildcard expansion will take place at that time. To set `objects' to the expansion, instead use: objects := $(wildcard *.o) --------------------------------------------------------------------------------------------- In this case the variable citationlistx_DATA is literally being set to 'citationlistx/*' with an unexpanded asterisk. If the variable declaration is changed to use the 'wildcard' function as instructed in the 'make' info page: --------------------------------------------------------------------------------------------- citationlistx_DATA = $(wildcard citationlistx/*) --------------------------------------------------------------------------------------------- then that variable is processed correctly. The build process then fails on the next variable with incorrect wildcard usage: --------------------------------------------------------------------------------------------- make[2]: Entering directory `/home/david/data/computing/projects/refdb/packages/refdb/custom/pkg/debianise/source/refdb-0.0-cvs-20051210/doc' SGML_CATALOG_FILES="" dtdparse --title "citationlistx XML DTD" --output citationlistx.xml --declaration ../declarations/xml.dcl --system-id "http://refdb.sourceforge.net/dtd/citationlistx.dtd" ../dtd/citationlistx.dtd Public ID: unknown System ID: http://refdb.sourceforge.net/dtd/citationlistx.dtd SGML declaration: ../declarations/xml.dcl Parse complete. Writing citationlistx.xml... Done. make[2]: *** No rule to make target `citationlistx/ele-desc/*', needed by `citationlistx/elements.html'. Stop. make[2]: Leaving directory `/home/david/data/computing/projects/refdb/packages/refdb/custom/pkg/debianise/source/refdb-0.0-cvs-20051210/doc' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/david/data/computing/projects/refdb/packages/refdb/custom/pkg/debianise/source/refdb-0.0-cvs-20051210' make: *** [build-stamp] Error 2 --------------------------------------------------------------------------------------------- Regards, David. |