tags:

views:

99

answers:

4

I've stumbled on a make file "Makefile.am" and I tried to use "make -f Makefile.am" on it to no avail. What am I doing wrong?

A: 

see "man automake" or google for autotools. likely you'll want to run something like autogen.sh first.

chillitom
+4  A: 

It's an automake script/makefile. You can learn everything about automake, autoconf, libtool and such through the called autobook.

Basically, the steps would be to run automake, then autoconf, then configure, then make to build the software you have. These steps are neccessary to build the configure script, that automatically search for needed libraries and such on your system.

The process is not easy, unless your software also includes an already generated "configure" file. If so, the only thing you have to do (mostly) is to just run ./configure, then make, then make install to install the software to a default location. If you want to change configure options, you can also look at ./configure --help.

Diego Sevilla
thanks... very useful!
+1  A: 

You stumbled upon an automake file, which is used to create a Makefile from the source, in this case Makefile.am.

From http://developer.gnome.org/doc/GGAD/z70.html, they explain it as:

automake processes Makefile.am to produce a standards-compliant Makefile.in. automake does a lot of work for you: it keeps up with dependencies between source files, for example. It creates all the standard targets, such as install and clean. It also creates more complex targets: simply typing make dist creates a standard .tar.gz file if your Makefile.am is correct.

Basically, you should run 'automake' to make the Makefile, and you will probably run into the same situation with the configure script with 'autoconf'.

Automake: http://www.gnu.org/software/automake/ Wikipedia article on automake: http://en.wikipedia.org/wiki/Automake

wojo
+1  A: 

If you are trying to compile a 3rd party application from source, there is usually a 'configure' script located at the top of the source tree. If you run ./configure --help from that location, you'll get a list of options you can set. Usually, --prefix is the most common to use.

After running the script, you'll get standard Makefile's generated from the automake files. From there, you can just execute make normally.

Standard build steps for linux packages are:

./configure
make
make install
jheddings
the others suggested it was an "automake" file and not a "make" file...
that is true... the Makefile.am is an automake file, but running the `configure` script will generate standard make files from those.
jheddings