PDA

View Full Version : make html no ClanLib/core.h



bvanevery
04-03-2013, 04:43 PM
This is ClanLib 3.0 SVN rev 9618.


Patching output file 2469/2469
symbol cache used 17913/65536 hits=6143700 misses=17913
lookup cache used 35578/65536 hits=376108 misses=36713
finished...
make -C ../Utilities/ReferenceDocs
make[3]: Entering directory `/home/bvanevery/devel/ClanLib-3.0/Documentation/Utilities/ReferenceDocs'
g++ `pkg-config --cflags clanCore-3.0` -pthread -c reference_docs.cpPatching output file 2469/2469
symbol cache used 17913/65536 hits=6143700 misses=17913
lookup cache used 35578/65536 hits=376108 misses=36713
finished...
make -C ../Utilities/ReferenceDocs
make[3]: Entering directory `/home/bvanevery/devel/ClanLib-3.0/Documentation/Utilities/ReferenceDocs'
g++ `pkg-config --cflags clanCore-3.0` -pthread -c reference_docs.cpp -o reference_docs.o
Package clanCore-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `clanCore-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'clanCore-3.0' found
In file included from reference_docs.cpp:2:0:
reference_docs.h:5:26: fatal error: ClanLib/core.h: No such file or directory
compilation terminated.
make[3]: *** [reference_docs.o] Error 1p -o reference_docs.o
Package clanCore-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `clanCore-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'clanCore-3.0' found
In file included from reference_docs.cpp:2:0:
reference_docs.h:5:26: fatal error: ClanLib/core.h: No such file or directory
compilation terminated.
make[3]: *** [reference_docs.o] Error 1

rombust
04-03-2013, 08:02 PM
For "make html" to work, you require to install ClanLib first. (sudo make install)

This is caused by our own "ReferenceDocs" utility.

We used to use Doxygen to output XML for "ReferenceDocs" to generate HTML in our unique format.

ClanLib 2.2 was the last time we used this utility for our web pages. ( http://clanlib.org/docs/clanlib-2.2/reference/modules.html )

Since then doxygen improved its HTML output ( http://clanlib.org/docs/clanlib-2.3/reference_doxygen/modules.html )

ClanLib 2.3 and 3.0 creates HTML in both formats.

IMHO, we should remove ReferenceDocs

bvanevery
04-03-2013, 08:49 PM
For "make html" to work, you require to install ClanLib first. (sudo make install)

Ah, that would explain why it worked fine for 2.3. I had already installed it. If you were doing a CMake or Premake style build on all platforms, I'd provide you with some minor logic to detect the prerequisites needed for "make html", rather than issuing the error. As it stands, with Automake I'll let sleeping dogs lie. Thanks for the info.

I now have 3.0 built and installed. However building the docs now fails in a new way:

Patching output file 2469/2469
symbol cache used 17913/65536 hits=6143700 misses=17913
lookup cache used 35578/65536 hits=376108 misses=36713
finished...
make -C ../Utilities/ReferenceDocs
make[3]: Entering directory `/home/bvanevery/devel/ClanLib-3.0/Documentation/Utilities/ReferenceDocs'
g++ `pkg-config --cflags clanCore-3.0` -pthread -c reference_docs.cpp -o reference_docs.o
In file included from reference_docs.h:10:0,
from reference_docs.cpp:2:
reference_class.h:10:2: error: ‘CL_String’ does not name a type
reference_class.h:19:2: error: ‘CL_String’ does not name a type
reference_class.h:20:2: error: ‘CL_String’ does not name a type
reference_class.h:25:2: error: ‘CL_String’ does not name a type
reference_class.h:34:2: error: ‘CL_String’ does not name a type
reference_class.h:35:14: error: ‘CL_String’ was not declared in this scope
reference_class.h:35:23: error: template argument 1 is invalid
reference_class.h:35:23: error: template argument 2 is invalid
reference_class.h:36:14: error: ‘CL_String’ was not declared in this scope
reference_class.h:36:23: error: template argument 1 is invalid
reference_class.h:36:23: error: template argument 2 is invalid
reference_class.h:37:2: error: ‘CL_String’ does not name a type
reference_class.h:38:2: error: ‘CL_String’ does not name a type
reference_class.h:39:2: error: ‘CL_String’ does not name a type
reference_class.h:40:2: error: ‘CL_String’ does not name a type
reference_class.h:41:2: error: ‘CL_String’ does not name a type
reference_class.h:45:12: error: ‘CL_DomElement’ has not been declared
reference_class.h:46:18: error: ‘CL_StringRef’ does not name a type
reference_class.h:46:32: error: ISO C++ forbids declaration of ‘filename’ with no type [-fpermissive]
reference_class.h:47:24: error: ‘CL_DomElement’ has not been declared
reference_class.h:50:2: error: ‘CL_String’ does not name a type
reference_class.h:51:25: error: ‘CL_DomElement’ has not been declared
reference_class.h:52:39: error: ‘CL_DomElement’ has not been declared
reference_class.h:53:45: error: ‘CL_String’ does not name a type
reference_class.h:53:56: error: ISO C++ forbids declaration of ‘section_name’ with no type [-fpermissive]
reference_class.h:53:79: error: ‘CL_String’ was not declared in this scope
reference_class.h:53:93: error: template argument 1 is invalid
reference_class.h:53:93: error: template argument 3 is invalid
reference_class.h:53:93: error: template argument 4 is invalid
reference_class.h:53:108: error: ‘CL_DomElement’ has not been declared
In file included from reference_docs.cpp:2:0:
reference_docs.h:15:9: error: ‘CL_String’ does not name a type
reference_docs.h:16:9: error: ‘CL_String’ does not name a type
reference_docs.h:17:9: error: ‘CL_String’ does not name a type
reference_docs.h:19:18: error: ‘CL_String’ was not declared in this scope
reference_docs.h:19:29: error: ‘CL_String’ was not declared in this scope
reference_docs.h:19:38: error: template argument 1 is invalid
reference_docs.h:19:38: error: template argument 2 is invalid
reference_docs.h:19:38: error: template argument 3 is invalid
reference_docs.h:19:38: error: template argument 4 is invalid
reference_docs.h:23:42: error: ‘CL_DomElement’ has not been declared
reference_docs.h:23:86: error: ‘CL_String’ was not declared in this scope
reference_docs.h:23:95: error: template argument 1 is invalid
reference_docs.h:23:95: error: template argument 2 is invalid
reference_docs.h:23:118: error: ‘CL_String’ was not declared in this scope
reference_docs.h:23:127: error: template argument 1 is invalid
reference_docs.h:23:127: error: template argument 2 is invalid
In file included from reference_docs.cpp:4:0:
reference_all_classes.h:11:18: error: ‘CL_StringRef’ does not name a type
reference_all_classes.h:11:32: error: ISO C++ forbids declaration of ‘filename’ with no type [-fpermissive]
In file included from reference_docs.cpp:5:0:
reference_grouped_classes.h:11:18: error: ‘CL_StringRef’ does not name a type
reference_grouped_classes.h:11:32: error: ISO C++ forbids declaration of ‘filename’ with no type [-fpermissive]
In file included from reference_docs.cpp:6:0:
reference_index.h:11:18: error: ‘CL_StringRef’ does not name a type
reference_index.h:11:32: error: ISO C++ forbids declaration of ‘filename’ with no type [-fpermissive]
reference_docs.cpp: In function ‘int main(int, char**)’:
reference_docs.cpp:10:2: error: ‘CL_SetupCore’ was not declared in this scope
reference_docs.cpp:10:15: error: expected ‘;’ before ‘setup_core’
reference_docs.cpp:11:2: error: ‘CL_ConsoleLogger’ was not declared in this scope
reference_docs.cpp:11:19: error: expected ‘;’ before ‘console_logger’
reference_docs.cpp:12:2: error: ‘console_logger’ was not declared in this scope
reference_docs.cpp:22:9: error: expected type-specifier before ‘CL_Exception’
reference_docs.cpp:22:22: error: expected ‘)’ before ‘err’
reference_docs.cpp:22:22: error: expected ‘{’ before ‘err’
reference_docs.cpp:22:22: error: ‘err’ was not declared in this scope
reference_docs.cpp:22:25: error: expected ‘;’ before ‘)’ token
reference_docs.cpp: At global scope:
reference_docs.cpp:30:10: error: ‘CL_String’ was not declared in this scope
reference_docs.cpp:30:21: error: ‘CL_String’ was not declared in this scope
reference_docs.cpp:30:30: error: template argument 1 is invalid
reference_docs.cpp:30:30: error: template argument 2 is invalid
reference_docs.cpp:30:30: error: template argument 3 is invalid
reference_docs.cpp:30:30: error: template argument 4 is invalid
reference_docs.cpp:30:60: error: invalid type in declaration before ‘;’ token
reference_docs.cpp:34:1: error: ‘CL_String’ does not name a type
reference_docs.cpp:60:1: error: ‘CL_String’ does not name a type
reference_docs.cpp:79:1: error: ‘CL_String’ does not name a type
reference_docs.cpp: In static member function ‘static void ReferenceDocs::find_references()’:
reference_docs.cpp:150:2: error: ‘CL_DirectoryScanner’ was not declared in this scope
reference_docs.cpp:150:22: error: expected ‘;’ before ‘scanner’
reference_docs.cpp:151:16: error: ‘scanner’ was not declared in this scope
reference_docs.cpp:157:3: error: ‘CL_String’ was not declared in this scope
reference_docs.cpp:157:13: error: expected ‘;’ before ‘filename’
reference_docs.cpp:158:3: error: ‘CL_File’ was not declared in this scope
reference_docs.cpp:158:11: error: expected ‘;’ before ‘file’
reference_docs.cpp:159:3: error: ‘CL_DomDocument’ was not declared in this scope
reference_docs.cpp:159:18: error: expected ‘;’ before ‘doc’
reference_docs.cpp:160:3: error: ‘CL_DomElement’ was not declared in this scope
reference_docs.cpp:160:17: error: expected ‘;’ before ‘doc_element’
reference_docs.cpp:161:7: error: ‘doc_element’ was not declared in this scope
reference_docs.cpp:164:3: error: ‘CL_DomNode’ was not declared in this scope
reference_docs.cpp:164:14: error: expected ‘;’ before ‘cur_node’
reference_docs.cpp:165:11: error: ‘cur_node’ was not declared in this scope
reference_docs.cpp:169:19: error: expected ‘;’ before ‘cur_element’
reference_docs.cpp:170:9: error: ‘cur_element’ was not declared in this scope
reference_docs.cpp: At global scope:
reference_docs.cpp:181:49: error: variable or field ‘find_compounddef_references’ declared void
reference_docs.cpp:181:49: error: ‘CL_DomElement’ was not declared in this scope
reference_docs.cpp:181:93: error: ‘CL_String’ was not declared in this scope
reference_docs.cpp:181:102: error: template argument 1 is invalid
reference_docs.cpp:181:102: error: template argument 2 is invalid
make[3]: *** [reference_docs.o] Error 1
make[3]: Leaving directory `/home/bvanevery/devel/ClanLib-3.0/Documentation/Utilities/ReferenceDocs'
make[2]: *** [html] Error 2
make[2]: Leaving directory `/home/bvanevery/devel/ClanLib-3.0/Documentation/Reference'
make[1]: *** [html-recursive] Error 1
make[1]: Leaving directory `/home/bvanevery/devel/ClanLib-3.0/Documentation'
make: *** [html-recursive] Error 1
bvanevery@nomad:~/devel/ClanLib-3.0$

sphair
04-04-2013, 01:46 PM
Rombust now removed the custom documentation generator, and building the html (using doxygen) should work again in 3.0.

make html

bvanevery
04-04-2013, 04:28 PM
3.0 docs built and installed!

rombust
04-04-2013, 07:20 PM
Assuming you have a new GPU, please can you try running: ClanLib-3.0/Examples/Display_Shaders/ShaderEffect (svn #9680) on Linux.

Using debian, I can't use the latest nvidia driver (from nvidia). It complains that I need to downgrade gcc to match the kernel. Unfortunately the 'non-free' nvidia debian driver package is out of date (made in 2010), and is only OpenGL 3.2. This new example requires OpenGL 3.3

[edit] This shader effect class is still work in progress. It's aim is to simplify certain parts of clanlib

bvanevery
04-04-2013, 07:58 PM
Er, how would I be building that? /home/bvanevery/devel/ClanLib-3.0/Examples/Display_Shaders and /home/bvanevery/devel/ClanLib-3.0/Examples/Display_Shaders/ShaderEffect have no Makefiles. I think I need to set ClanLib_Examples in configure.ac to something other than the empty string, then rerun automake somehow; will muddle through that in a minute. But this is a pretty strong argument that the Makefiles should at least exist, even if the examples and tests are not built by default. I think anyone else who hadn't already been all over this build issue would say, "Huh?"

Actually I will say "Huh?" too. ./autogen.sh didn't magically create any Makefiles in Display_Shaders or Display_Shaders/ShaderEffect. Which stands to reason since there are no Makefile.am's there. I'm thinking what build there was, has been deleted. Maybe I built this under 2.3.

rombust
04-04-2013, 08:22 PM
[Do an svn update]

All Examples and ClanLib-2.3 and ClanLib-3.0 contain makefiles inside their respective directory

They are not created, because they include "Examples/Makefile.conf" created from Examples/Makefile.conf.in (by automake and friends)

cd Examples/Display/Basic2D
make
./basic2d

I added the ShaderEffect makefile earlier today



Added:
ClanLib/Development/ClanLib-3.0/Examples/Display_Shaders/ShaderEffect/Makefile
Log:
Add ShaderEffect makefile

Added: ClanLib/Development/ClanLib-3.0/Examples/Display_Shaders/ShaderEffect/Makefile
================================================== =================
--- ClanLib/Development/ClanLib-3.0/Examples/Display_Shaders/ShaderEffect/Makefile (rev 0)
+++ ClanLib/Development/ClanLib-3.0/Examples/Display_Shaders/ShaderEffect/Makefile 2013-04-04 15:53:22 UTC (rev 9679)
@@ -0,0 +1,8 @@
+EXAMPLE_BIN=shader
+OBJF = precomp.o program.o
+LIBS=clanApp clanDisplay clanCore clanGL
+
+include ../../Makefile.conf
+
+# EOF #
+


Property changes on: ClanLib/Development/ClanLib-3.0/Examples/Display_Shaders/ShaderEffect/Makefile

bvanevery
04-04-2013, 08:59 PM
I updated and built ShaderEffect. It runs on my NVIDIA GeForce 8600M GT. I'm using NVIDIA driver 310.40 from a NVIDIA .run file, on Lubuntu 12.10. It looks like it runs at a reasonable framerate. It task switches poorly though. When I tried to switch to my web browser to type this up, my system became nearly unresponsive. Couldn't bring up the Lubuntu version of a task manager to kill the process. Eventually I got the calling console back and killed it with ^C. Task switching isn't a problem when going from the main window to the calling console for some reason. Perhaps if the main window is in foreground, there's no problem.

rombust
04-04-2013, 09:18 PM
The example is running at full speed, not giving away any cpu/gpu cycles to other applications.

Linux isn't excellent at sharing cpu/gpu cycles between applications. On debian and ubuntu, on my pc, it's the same with network bandwidth between applications. (Probably adjustable though)

Changing window.flip(0); to window.flip(1); should fix this. (Locks the main loop to to 60 times a second).

If not, a clan::System::sleep(100) may also help ( http://clanlib.org/wiki/MainDocs:Timing for more info)

bvanevery
04-04-2013, 09:51 PM
window.flip(1) does make the context switching behave better. It slows and impacts other stuff, for instance this is typing pretty slowly. But the context switching does work, I can get control back at will. I would suggest that window.flip(1) should be the setting in the demo. I'm not seeing a performance loss and a GeForce 8600M GT is almost as low spec for 3.x HW as one can get.