beaver-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Beaver-devel] About autotools and portability


From: Tobias Heinzen
Subject: Re: [Beaver-devel] About autotools and portability
Date: Sun, 28 Dec 2008 14:54:43 +0100
User-agent: Thunderbird 2.0.0.18 (X11/20081124)

Higor Eurípedes wrote:
A friend of mine tried to compile Beaver under FreeBSD but didnt succeed
so i decided to use autotools with beaver to improve portability.

After 3 (stressing) days i got it working today under those platforms:

Ubuntu 8.10 (Intrepid Ibex)
Debian 5.0 (Lenny)
FreeBSD 7.1

I think its possible to compile beaver under cygwin too.

Here is the tarball i created :
http://enygmata.site88.net/patches/beaver0.4.0/beaver0.4.0.tar.gz

I ask you guys to test it before commit into the repository (if approved).
The sourcefiles (.c) might not be up to date.

Added files:

Makefile.am
autogen.sh
configure.in
src/Makefile.am
src/api/Makefile.am
plugins/mkmakefile.sh
build/                        (directory)
build/pkg.m4

Removed files:

Makefile
configure
src/Makefile
plugins/Makefile

bye!
hi all

first of all I wanted to wish you a merry Christmas (okay it's a little bit late :-))

thanks for the work Higor. well I personally do not like the autotools at all. that has different reasons:

1) the configure checks does a lot of checks which are completely useless and does not really help in ensuring that the build environment is correctly set up. for example it checks if "stdlib.h" and "string.h" is installed. but does not check for example for "stdio.h". and why check for these anyway. and i often had scripts that checked a lot, everything went fine and it didn't work after all.

then on the other hand, really important things not get checked. for example: I've got a 64bit system and for that system the flag "-fPIC" has to be used otherwise beaver will not work properly. why does autotools does not get that? is this configurable? especially nowadays a lot of systems are 64bit so why not check it?

2) it makes developping a lot harder. if there are warnings or errors, they are hard to find in all that stuff that get's scrolled. well it looks cool, but it doesn't really help me in developping. and where in the hell to I set the debug level? (well that probably is a bug of me :-) I think I'm just to stupid to find it, but then again, why hide it in those god awful configuration files?) and no: using "make install-strip" to remove the debugging level is just not the right way to do it, because all the optimizations are not done.

the fact that you had 3 days speaks for itself. I had a lot less time for creating the configure script.

3) the autotools compile a lot into the programs that were never used. why is the program 65kB bigger and has a 2MB bigger memory footprint? especially for our project where we want a small memory footprint this is not feasible. it's just not transparent enough. it does not really say what it does.

This is not a critic against you Higor. It's just that the autotools are old and completely useless in my opinion. There are sadly no alternatives and I never have seen a build system that does it all right. Nonetheless I've got some things to say about your changes:

a) I saw that you created a library out of the API. Well this is not needed and it won't work with the actual code anyway (especially when you then link the plugins against this library, and if you don't then there's no sense in using a library anyway). The plugin system is designed to not need any shared library. The way you use it now is just to create an archive file and then compile it into the main program, which would be the same thing as just compiling it all in the first place.

The second thing is, that the Makefile (which get's called from the other Makefiles) is not that easy to maintain, but it should be.

b) as I stated above, I do not like it, if it produces a lot of nonsense terminalscrolling text, which is useless in most of the time. I like how the kernel get's compiled and that's why I designed my Makefiles after that. Is this somehow possible to do with the autotools? To find warning and errors is really hard and makes my eyes hurt.

c) the plugins Makefile and mkmakefile.sh does not work for me. Also I do not like if you have to use autotools to write some plugin. In my system you only had to copy paste the Makefile and everything worked. Here nothing worked for me? Or did I just used it wrong?

I see, that if we want that beaver is portable we have to use some sort of configuration script. I had no problem in compiling beaver with my old machine (an ubuntu system) and with my new system (a gentoo system; okay on gentoo mostly everything works ^^). I would like to know what the problem was with freebsd? probably some paths were wrong?

Again, I want to stress out, that this is not a criticism against you, but I just really hate autotools. If you could work the things out I stated above than I would be happy.

Greets
Tobias




reply via email to

[Prev in Thread] Current Thread [Next in Thread]