Ticket #25 (new task)

Opened 3 years ago

Last modified 3 years ago

Use GNU autotools for building KTIGCC

Reported by: debrouxl Owned by:
Priority: critical Milestone: Version 1.00
Component: project Version: 0.96
Keywords: Cc:

Description

As discussed today on the ML (discussion starting at  http://box.godzil.net/pipermail/tigccpp/2008-November/000086.html ), using autoconf/automake for KTIGCC would be a good thing for automating the building & packaging process.

Change History

comment:1 Changed 3 years ago by godzil

I'm not really fan about autotools, why not using cmake instead ? (it's a serious question, not a troll or anything like this)

comment:2 Changed 3 years ago by debrouxl

On the ML, roms says that (translated from French):

Kevin and him have already looked at replacing autotools (translator's note: presumably for TIEmu and/or TILP) by e.g. cmake, qmake. They didn't change anything because the other tools aren't necessarily easier to use for a newcomer, and they would have had to discard the work done with autotools.

To him, both autotools and cmake have a rather steep learning curve: a lot of RTFM before doing something useful with them.

He likes autotools when they're written correctly and everything works, but he hates them when he realizes that he wants to do something that the autotools do not handle, which must be worked around.

Advantages of the autotools: it's almost a standard, lots of copy&paste from other projects is possible. Drawbacks: RTFM (translator's note: besides the limitations he talked about in the previous paragraph).

comment:3 follow-up: ↓ 4 Changed 3 years ago by debrouxl

For information (it may help eliminating some build systems):
Yesterday, at work, I attended short presentations about cmake, ctest (and a bit about cdash, the simple reporting server used by cmake+ctest). For users outside the network, I'm not sure whether the link works without logging in, so I'll test from home this week-end before (maybe) posting a link.

I had the impression that cmake files are easier to write than autotools files. That said, the presentation was just an introduction, so maybe it's harder for more advanced usages, I don't know.

The person who presented ctest (like with cmake, it was a short introduction) made it clear that it's less powerful when used without cmake, and that it has several limitations that annoy him a bit. It was also clear to me that ctest is less useful without cdash, i.e. even more installation work, so I don't think we'd want to go down the ctest/cdash path.

comment:4 in reply to: ↑ 3 ; follow-up: ↓ 7 Changed 3 years ago by godzil

Replying to debrouxl:

I had the impression that cmake files are easier to write than autotools files. That said, the presentation was just an introduction, so maybe it's harder for more advanced usages, I don't know.

It's not just an impression ;)

cmake need only (at least) one file to be written, where autotools need a lot. CMake add a nice text configuration page, a sort of make config for the linux kernel, like for changing temporarily, ie not in the CMakeFile some variables etc.

Even better, cmake can be adjusted to the "native" plateform generator :

godzil@mbp-win ~ $ ccmake
ccmake version 2.4-patch 7
Usage

[...]

Generators

The following generators are available on this platform:
  KDevelop3                   = Generates KDevelop 3 project files.
  Unix Makefiles              = Generates standard UNIX makefiles.
  Xcode                       = Generate XCode project files.

(from my MacBook? Pro, cmake is capable of generating standard makefile, XCode project files, and even KDevelop3 project files !)

comment:5 Changed 3 years ago by godzil

I have an old version since the 2.6 seems to be out now, but it's another good news, cmake 2.4 was unable to do easy cross compilation, but this should be adressed in the 2.6. It's a good thing I think.

comment:6 Changed 3 years ago by debrouxl

Yes, 2.6 has improved cross-compilation capabilities a lot.

comment:7 in reply to: ↑ 4 Changed 3 years ago by godzil

Replying to godzil:

Replying to debrouxl:

I had the impression that cmake files are easier to write than autotools files. That said, the presentation was just an introduction, so maybe it's harder for more advanced usages, I don't know.

It's not just an impression ;)

A simple example, for one of my other project (TI-NES) it take me about 1 hour to migrate from my old and buggy makefile to a CMake version, with a really little knowing about cmakefile construction, and made a build that is able to work either on Linux, Windows and Mac OS X. I really doubt that autotool is able to do this in such a short time of work.

(and the cmake version is more modulable than I do before with classic makefiles.)

Note: See TracTickets for help on using tickets.