Logo der Webseite

Makefile

Aber wie baut man das am einfachsten? Nach diversen Suchanfragen und lesen von Anleitungen bin ich jetzt schlauer.

Aus meinen Erkenntnissen ist das folgende Template entstanden das. Dieses Skript kann einfach in der Konsole (Linux) aufgerufen werden und schon ist ein einfaches "HelloWorld" Programm in C++ erzeugt.

mkdir src

cat > src/main.cpp <<EOL
#include <iostream>

int main(int argc, char **argv)
{
    std::cout << "Hello World!" << std::endl;
    return 0;
}
EOL

cat > Makefile.am <<EOL
SUBDIRS = src
EOL

cat > src/Makefile.am <<EOL
bin_PROGRAMS = helloworld
helloworld_SOURCES = main.cpp
EOL

autoscan
mv configure.scan configure.ac

sed 's!AC_CONFIG_SRCDIR!AM_INIT_AUTOMAKE([1.12 foreign no-define]) \
AC_CONFIG_SRCDIR!' configure.ac > configure.ac.tmp
mv configure.ac.tmp configure.ac

sed 's!config.h!src/config.h!' configure.ac > configure.ac.tmp
mv configure.ac.tmp configure.ac

aclocal
autoconf
autoheader

Und jetzt gibt es zwei Möglichkeiten. Wenn ein Projekt nur für den eigenen Rechner erzeugt werden soll, fehlt nur noch

automake --add-missing

Wenn das Projekt aber in einer Sourcecodeverwaltung abgelegt werden soll empfehle ich

automake

Nach dem "checkout" muss allerdings ein

autreconf -fvi    

aufgerufen werden.

Anschließend können wir noch ein wenig aufräumen

rm -Rf autom4te.cache
rm autoscan.log

Zu guter letzt ist noch die Datei "configure.ac" -> AC_INIT angepaßt werden. Und schon kann das Entwickeln los gehen.

Dieses Template ist für mein Projekt erstellt worden.

Bei weiteren Fragen bitte ich um eine kurze Email.


31st October 2013