Urfoex wrote:Code: Select all
../module.mk:61: ../mingw/module.mk: No such file or directory
make: *** No rule to make target `../mingw/module.mk'. Stop.
This is a bug. mingw was left in by accident.
Then I removed the mingw from line 60 from claw/module.mk
This is the correct fix. As soon as StevenT gets the code straightened out I'll commit it.
Code: Select all
../claw_proto/claw_proto.cpp:1711:1: fatal error: opening dependency file claw_proto/claw_proto.d: No such file or directory
compilation terminated.
make: *** [claw_proto/claw_proto.o] Error 1
Bad error message on behalf of gcc and poor documentation on my behalf. The problem is that proper directory structure does not exist under binaries. Use "make bindirs" to create them. This should be added to the build instructions (README hint!) It would be possible to do this always on normal make but since it's unnecessary on the vast majority of builds I though it best to leave it as a separate step.
I like CMake. It makes it easier for me to create and build software.
For me it adds unnecessary complexity. But this is a community project and I can't stop you from adding CMake support. Just please don't break the existing system while you're at it.
Out-Of-Source builds
Supported by current system. Make directory somewhere, copy Makefile and example.mk there, copy example.mk to local.mk and change TOPDIR at the start of local.mk. (README hint!)
automatic configuration
Not much on this project to configure. And on more complex projects I prefer explicit configuration like the current example.mk/local.mk -thing. I absolutely hate autotools "oh you don't have this library let's just leave this thing out and maybe not even list missing things at the end". This behavior causes silent failures like this:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=518916 and is very bad.
different project files
What exactly do you mean by this?
usable on different systems and platforms, ...
"Do not try to write portable makefiles, use a portable make."
http://mad-scientist.net/make/rules.htmlGNU make has been ported to all important platforms. It's possible to cross-compile with it (see mingw subdir) and even to use MSVC as your compiler while running under Linux. BTW that thing is one of the most glorious hacks ever and I really need to post it somewhere.
I don't think that people would use it if it were that bad.
MS Windows. Apple. Nuff said.
I haven't used autotools for any own project but did 'sh autogen.sh' and following commands quite some time and most times it worked.
There's no-one on the entire planet who understands all of autotools. Vast majority of developers just copy-and-paste stuff and hope it works. I think CMake is better but just plain GNU make is best because you don't need another moving part.
I was not forced to get into some files to correct them to my needs.
If the original dev screwed up and left in some cruft you would have.
Booth utilities notified me when I had some missing dependencies.
The Makefiles of "Jack Claw" ... doesn't show me missing dependencies.
They don't always do that like in the example above. Granted, GNU make -based system does not even do that much. It might be possible to hack it in but I don't believe it's necessary. If something's missing you get a compiler error. And if it's a small part like audio libraries then the rest of the build can proceed while you hunt for the missing library.