====== Quick autotools ======
====== Start from Zero ======
* Read first page
1. Prepare project source:
mkdir src
cp -r ../src/* src
2. Autoscan and generate configure.scan
3. Rename configure.scan to configure.ac
rm autoscan.log
mv configure.scan configure.ac
4. Edit Makefile.am
Root Makefile.am
cat ./Makefile.am
# $Id$
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = src tests tools examples
src/Makefile.am
cd src
# update SRCS
find . -name *.cpp
find . -name *.h
vim Makefile.am
cat Makefile.am
# $Id$
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = src tests tools examples
[dang@localhost libdaiutil]$ ls
examples Makefile.am src svn_update_ext_src.sh tests tools
[dang@localhost libdaiutil]$ cat src/Makefile.am
# $Id$
#AM_CFLAGS = @LIBNFC_CFLAGS@
#AM_LDFLAGS = @LIBNFC_LIBS@ -lrt
daiutil_HEADERS = \
./include/util/Monitoring.h \
./include/util/Modbus.h \
./include/util/MemDebug.h \
./include/util/DaiLogger.h \
./include/util/Uid.h \
./include/util/SnepTransmitter.h \
./include/util/Timer.h \
./include/util/Uart.h \
./include/util/Exception.h \
./include/util/Snep.h \
./include/util/SnepSM.h \
./include/util/StateMachine.h \
./include/util/Event.h \
./include/util/Thread.h \
./include/util/Config.h \
./include/util/RfidSnepLibNfc.h \
./include/util/Snmp.h \
./include/util/Gpio.h
daiutil = $(includedir)/util
lib_LTLIBRARIES = libdaiutil.la
libdaiutil_la_SOURCES = \
./util/Monitoring.cpp \
./util/Uid.cpp \
./util/Timer.cpp \
./util/DaiLogger.cpp \
./util/Config.cpp \
./util/Thread.cpp \
./util/Snmp.cpp \
./util/StateMachine.cpp \
./util/Modbus.cpp \
./util/SnepTransmitter.cpp \
./util/SnepSM.cpp \
./util/Uart.cpp \
./util/Snep.cpp \
./util/MemDebug.cpp \
./util/Gpio.cpp \
./util/RfidSnepLibNfc.cpp \
./util/Event.cpp \
./util/Exception.cpp
if WITH_DEBUG
#libnfc_llcp_la_SOURCES += llcp_log.c
endif
#EXTRA_DIST = \
===== Level 2 Headline =====
5. autoscan, mv configure.scan configure.ac
6. $ aclocal $ autoheader
7. libtoolize --force --copy
As the result:
libtoolize: Remember to add `LT_INIT' to configure.ac.
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
8. $ automake --add-missing --copy --foreign
AM_INIT_AUTOMAKE >> configure.ac
aclocal --> aclocal.m4, define Macros
autoconf now understands configure.ac
AC_CONFIG_SRCDIR(src)
AM_INIT_AUTOMAKE([foreign -Wall -Werror])
AM_INIT_AUTOMAKE([subdir-objects])
...
$ autoconf
...
$ ./configure
...
$ make
...
$ make DESTDIR=`pwd`/inst/ install
====== Eclipse autotools ======
Enabling autotools:
* autotools support wiht linuxtools: http://download.eclipse.org/technology/linuxtools/update
* http://tronprog.blogspot.de/2009/06/tutorial-using-autotools-with-eclipse.html
Using CDT autotools:
* enable maintainance mode
* properties -> autotools -> configure settings -> advanced -> enable...
* ccache gcc
*
* import or create project from folder.
* convert to autotools project.