Product SiteDocumentation Site

5.8. Review: What Just Happened?

Now that you've successfully transformed code into gold, step back and take a look at what's going on. The process you just walked through is virtually identical to a large number of FOSS projects, so you're likely to see it often.
Where do all of these complicated configuration files come from in the first place, and why?
The goal of good build tools is to allow the developer to describe the project as simply as possible. There's a lot of complexity, but it's important to isolate that complexity.
Developers of an Autotools-based project seek to describe the build process of the entire project in two files:
These descriptions start out simple, but as the project grows in complexity, the descriptions of the project naturally grow as well.
Given these configuration files, you ran through the Autotools suite. The purpose of the Autotools suite is to build a good configure script, which in turn builds a good Makefile, which in turn builds good executable binaries.
+--------------+
| configure.in |
| Makefile.am  |
+--------------+
       |
       | Run autogen.sh 
       | (a wrapper for the Autogen tools)
       v
+--------------+
|  configure   |
+--------------+
       |
       | ./configure
       | (repeat as necessary)
       |
       v
+--------------+
|   Makefile   |
+--------------+
       |
       | make
       |
       v
+--------------+
|   Lots of    |
| successfully |
|  compiled    |
|    code      |
+--------------+

One of the things you did not do was to run the make install command.

That would install Freeciv as an "official" binary that could be run by anyone on the system. Since this is a development version, keep it in your own working directory, where you can happily break it as much as you want.
Again: very few people know every detail about Autotools, or about any build tools. Experienced developers know as much as they need to know to get the job done, and they know where to look for help when they're stuck.