No, select different opimization features (simple example would be O2 for normal and O3 for Itanium or likewise). Simply make some #ifdef's or compiler flags choosable by the user. I can also reuse the Makefile and code when switching from Linux to FreeBSD, so there are always simple cases which solved easily, but I meant a rather general case here (just illustrated with some scenarios Windows users might understand )
I found a better point (not natively supported by MSVC and easier then different window widgets): Let the user choose which hardware renderers are compiled into the Irrlicht.dll
afecelis wrote:the linux makefile works pretty well. I think users should know the dependencies required by Irrlicht beforehand; but mostly a proper Opengl (X11, Xorg) installation and proper videocard drivers should do the job as the required libs and headers are included and used locally.
For me it works out of the box; as simple as typing "make" in a shell window.
Sure. But with autoconf/automake you can also type "make install/distclean/uninstall".
final note: And guys, please don't bump into old threads. This was a 2004 post!
And yet I did it again. Is someone done autoconf/automake files for Irrlich? And if not, is there still need for those (well, I'll answer myself: "Yes, there is.")?
It would be so cool to install libIrrlich(-dev) from normal Ubuntu repository and (I think) one step to that direction is the usage of those tools. Btw, has anyone contributed into such project and give us some insights about packaging piece of software?
There is no necessity for automake to make an rpm or deb package. So these are two unrelated topics. I won't try autoconf in the near future, however I'll check packaging when I have fixed other things. First thing will be an updated makefile.
Does the autoconf/automake solution allow cross-compilation?
One of the advantages of Irrlicht for me has always been its simple build system. I was able to easily modify the Irrlicht makefiles to allow cross-compilation, which I need for developing Windows executables on Linux.
I'm afraid that with an autoconf/automake system this capability/simplicity may be lost.
No, it's not lost. You have a --target= command line option (or something alike) which allows to use a different target platform.
BTW: I've finally updated the Makefiles to support the cross compiling! Anything missing for you?
If I recall correctly, I had problems cross-compiling a statically-linked app, which required additional Makefile tweaks (I posted about this earlier).
I think the Irrlicht makefile currently allows cross-compilation from Linux to a Windows DLL for dynamic linking, but does it currently allow cross-compilation from Linux to a Windows static library? And most importantly, does that static library actually link without errors when compiling a standalone single-EXE Irrlicht application? I think I had problems with unresolved symbols when linking statically which required some chicanery to solve.
And finally, can the autoconf/automake support both dynamic and static lib cross-compilation targets?
I did not yet add the win32 static version because I did not properly check for the necessary changes. But it will be possible sooner or later. And that also holds for the configure scripts then. It's just a question of defines and ifdefs in the code.