summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJudd Vinet <judd@archlinux.org>2005-10-17 18:52:43 +0000
committerJudd Vinet <judd@archlinux.org>2005-10-17 18:52:43 +0000
commita1526a3e7dda31e236985ab465a5befa298eef26 (patch)
tree4087d7f60d49651ab9c4a2fa876be11935ac1bbd
parent8f191f3b332823906608453aac788b6ebc870e91 (diff)
added first part of the autoconf stuff - patch from Christian Hamar <krics@linuxforum.hu>
-rw-r--r--ChangeLog27
-rw-r--r--Makefile.am8
-rw-r--r--TODO.autoconf39
-rwxr-xr-xautoclean.sh30
-rwxr-xr-xautogen.sh8
-rw-r--r--config.h5
-rw-r--r--configure.in149
-rw-r--r--doc/Makefile.am26
-rw-r--r--lib/libalpm/Makefile40
-rw-r--r--lib/libalpm/Makefile.am31
-rw-r--r--lib/libalpm/alpm.h2
-rw-r--r--lib/libftp/Makefile62
-rw-r--r--lib/libftp/Makefile.am17
-rw-r--r--scripts/Makefile.am2
-rw-r--r--src/pacman/Makefile41
-rw-r--r--src/pacman/Makefile.am20
-rw-r--r--src/pacman/pacman.c2
-rw-r--r--src/util/Makefile.am11
18 files changed, 370 insertions, 150 deletions
diff --git a/ChangeLog b/ChangeLog
index c6b9e42d..3ce748b7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,32 @@
VERSION DESCRIPTION
-----------------------------------------------------------------------------
+ - fix for regex searches with -Ss (Miklos Vanja)
+2.9.7 - fixed the dupe listings of packages when dealing w/ groups
+ - patches from Miklos Vanja:
+ - add regexp search support for -Qs and -Ss
+ - fixed md5sums on x86_64
+ - add --sudosync to makepkg
+ - show syntax help if an invalid option is used
+ - added makepkg option to disable ccache support
+ - changed license field to operate as an array, not a string
+ - added more logic for file conflict checks - if one target
+ is a file and the other is a directory, then it's a conflict
+ - fixed the integrity check in pacman-optimize
+ - reverted NoUpgrade to old behaviour and instead, added the
+ NoExtract directive to pacman.conf, which prevents a file
+ from ever being extracted on to the system
+ eg, NoExtract = home/httpd/html/index.html
+2.9.6 - added a pacman-optimize script to try and defragment the DB
+ - modified NoUpgrade behaviour to avoid extracting files
+ that are missing from the filesystem -- this helps in
+ situations where the admin does not want the file there, eg,
+ remove index.html so index.php takes precedence
+ - fixed a bug where files would sometimes go missing if they
+ moved from one package to another
+ - add db_remove() which is responsible for clearing out stale
+ hash table entries when packages are removed
+ - added ccache support to makepkg
+ - patch from Aurelien Foret fixes a few memory leaks
2.9.5 - bugfix: missing files after re-ordering packages wrt
deps with --upgrade
- added "Repository" line to -Si output
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 00000000..44523442
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,8 @@
+SUBDIRS = lib/libftp lib/libalpm src/util src/pacman scripts doc
+
+EXTRA_DIST = \
+ ChangeLog \
+ COPYING \
+ README \
+ TODO \
+ TODO.autoconf
diff --git a/TODO.autoconf b/TODO.autoconf
new file mode 100644
index 00000000..9ab29652
--- /dev/null
+++ b/TODO.autoconf
@@ -0,0 +1,39 @@
+TODO for autoconf/automake:
+
+pacman's Makefile.am and configure.in
+=====================================
+
+- find out how can we prevent automake/autoconf to build pacman.static binary, if we
+ are configured using --disable-static flag. Now if builded with this option, then pacman.static
+ compile fails, because there will be no libalpm.a (just .so)
+
+global
+======
+
+- review autoclean.sh script. Maybe there is a more simple way to do this FULL clean.
+
+- Add i18n (gettext) support to configure.in and create the 'po' directory (half ready) -krix
+
+- Add doxygen support to configure.in to generate code documentation automatically
+
+- Add libarchive depends instead of libtar. libtar isn't developed, but libarchive is.
+ libarchive is a powerfuller thing than libtar and not much bigger. It supports many
+ archive formats, eg .tar.gz, .tar.bz2, zip, etc..
+
+- Many things :)) If you got idea or request, then implement it.
+
+libalpm and codechanges
+=======================
+
+- Add much more defines in configure.in via options or not. Like CACHEDIR, PKGEXT, etc.
+ Those will be available from config.h so not need a big codechange. But it is usefull.
+ The user can specify at the configure what cachedir or pkgext he/she want. And maybe better
+ for other distros (like frugalware :) ) which are using other PKGEXT or cachedir than default.
+
+- Review what needed to be in config.h and what not. Probably many #depends which are now hardcoded
+ into the sources.
+
+
+Christian Hamar alias krix <krics@linuxforum.hu>
+
+2005. oct. 13., wed, 22.38.32 CEST
diff --git a/autoclean.sh b/autoclean.sh
new file mode 100755
index 00000000..a3d16104
--- /dev/null
+++ b/autoclean.sh
@@ -0,0 +1,30 @@
+#!/bin/sh -xu
+
+make distclean
+rm -rf autom4te.cache
+rm -rf Makefile
+rm -rf Makefile.in
+rm -rf configure
+rm -rf config.*
+rm -rf stamp*
+rm -rf depcomp
+rm -rf install-sh
+rm -rf missing
+rm -rf src/pacman/Makefile
+rm -rf src/pacman/Makefile.in
+rm -rf src/util/Makefile
+rm -rf src/util/Makefile.in
+rm -rf lib/libftp/Makefile
+rm -rf lib/libftp/Makefile.in
+rm -rf lib/libalpm/Makefile.in
+rm -rf lib/libalpm/Makefile
+rm -rf aclocal.m4
+rm -rf ltmain.sh
+rm -rf doc/Makefile
+rm -rf doc/Makefile.in
+rm -rf doc/html/*
+rm -rf doc/*.8
+rm -rf compile
+rm -rf libtool
+rm -rf scripts/.deps/
+rm -rf scripts/Makefile.in
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 00000000..7d6a5ace
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,8 @@
+#!/bin/sh -exu
+
+#intltoolize -f -c
+libtoolize -f -c
+aclocal --force
+autoheader -f
+autoconf -f
+automake -a -c --gnu --foreign
diff --git a/config.h b/config.h
deleted file mode 100644
index e59a0e58..00000000
--- a/config.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#define ENABLE_NLS 1
-#define HAVE_LOCALE_H 1
-#define HAVE_SETLOCALE 1
-#define HAVE_STRVERSCMP 1
-#undef CYGWIN
diff --git a/configure.in b/configure.in
new file mode 100644
index 00000000..4c3e6ebd
--- /dev/null
+++ b/configure.in
@@ -0,0 +1,149 @@
+ENV_CFLAGS=$CFLAGS
+
+AC_PREREQ(2.59)
+AC_INIT([Pacman package manager], 0.9.5, [bugreport@somemail.org], pacman)
+AC_LANG(C)
+AM_CONFIG_HEADER(config.h)
+AC_CANONICAL_SYSTEM
+AM_INIT_AUTOMAKE
+
+dnl Define here the libalpm version number
+PM_MAJOR_VERSION=0
+PM_MINOR_VERSION=1
+PM_MICRO_VERSION=0
+PM_VERSION=$PM_MAJOR_VERSION.$PM_MINOR_VERSION.$PM_MICRO_VERSION$PM_MICRO_VERSION_SUFFIX
+dnl Needed for libtool to create proper shared lib version
+PM_VERSION_INFO=`expr $PM_MAJOR_VERSION + $PM_MINOR_VERSION`:$PM_MICRO_VERSION:$PM_MINOR_VERSION
+
+AC_SUBST(PM_MAJOR_VERSION)
+AC_SUBST(PM_MINOR_VERSION)
+AC_SUBST(PM_MICRO_VERSION)
+AC_SUBST(PM_VERSION)
+AC_SUBST(PM_VERSION_INFO)
+
+dnl Define here the pacman binary program version number
+PACMAN_VERSION=0.9.5
+AC_SUBST(PACMAN_VERSION)
+
+dnl Put out version numbers to config.h
+AC_DEFINE_UNQUOTED([PM_VERSION], ["$PM_VERSION"], [libalpm version number])
+AC_DEFINE_UNQUOTED([PACMAN_VERSION], ["$PACMAN_VERSION"], [pacman version number])
+
+AC_PROG_CC
+AC_HEADER_STDC
+AC_PROG_INSTALL
+AC_CHECK_FUNCS([strverscmp])
+AM_PROG_LIBTOOL
+
+dnl Help line for man2html
+AC_ARG_ENABLE(man2html,
+ AC_HELP_STRING([--enable-man2html], [Build html docs via man2html]),
+ [wantman2html=$enableval], [wantman2html=no])
+
+dnl Help line for more-warnings
+AC_ARG_ENABLE(more-warnings,
+ AC_HELP_STRING([--disable-more-warnings], [Minimum compiler warnings]),
+ [set_more_warnings="${enableval}"], [warnings_default=yes])
+
+dnl Help line for debug
+AC_ARG_ENABLE(debug,
+ AC_HELP_STRING([--disable-debug], [Disable debugging support]),
+ [debug=$enableval], [debug=yes])
+
+dnl Check for man2html binary
+AC_MSG_CHECKING(for support man2html)
+if test x$wantman2html = xyes ; then
+ AC_CHECK_PROGS([MAN2HTML], [man2html] [man2html prog])
+ AM_CONDITIONAL(HAS_MAN2HTML, test $MAN2HTML)
+ if test $MAN2HTML ; then
+ AC_DEFINE([HAS_MAN2HTML], [TRUE], [Enabled HTML generation from man via man2html])
+ AC_MSG_RESULT(yes)
+ else
+ AC_DEFINE([HAS_MAN2HTML], [FALSE], [Disabled HTML generation from man via man2html])
+ AC_MSG_RESULT(no, man2html missing)
+ fi
+else
+ AM_CONDITIONAL(HAS_MAN2HTML, test $MAN2HTML)
+ AC_DEFINE([HAS_MAN2HTML], [FALSE], [Not specified at configure line])
+ AC_MSG_RESULT(not requested by configure)
+fi
+
+dnl Enable or disable Warning FLAGS during compile
+AC_MSG_CHECKING(for more compiler warnings)
+if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
+ AC_MSG_RESULT(yes)
+ CFLAGS="-Wall -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \
+ -Wnested-externs -Wsign-compare"
+ for option in -Wno-sign-compare; do
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $option"
+ AC_MSG_CHECKING([whether gcc understands $option])
+ AC_TRY_COMPILE([], [],
+ has_option=yes,
+ has_option=no,)
+ if test $has_option = no; then
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ AC_MSG_RESULT($has_option)
+ unset has_option
+ unset SAVE_CFLAGS
+ done
+ unset option
+else
+ AC_MSG_RESULT(no)
+ unset CFLAGS
+fi
+
+dnl Enable or disable debug code (-g)
+AC_MSG_CHECKING(for debug mode request)
+if test x$debug = xyes ; then
+ AC_DEFINE([PACMAN_DEBUG], [TRUE], [Enable debugging support])
+ AM_CONDITIONAL(PACMAN_DEBUG, test x$debug = xyes)
+ CFLAGS="$CFLAGS -g"
+ AC_MSG_RESULT(yes)
+else
+ AC_DEFINE([PACMAN_DEBUG], [FALSE], [Disable debugging support])
+ if test -z "$ENV_CFLAGS"; then
+ ENV_CFLAGS="-O2"
+ fi
+ AC_MSG_RESULT(no)
+fi
+
+dnl Check for zlib
+AC_CHECK_LIB([z], [gzsetparams], [AC_CHECK_HEADER([zlib.h], [LIBZ='-lz'])])
+if test -n "$LIBZ"; then
+ LDFLAGS="$LDFLAGS $LIBZ"
+fi
+
+dnl Check for libtar
+AC_CHECK_LIB([tar], [tar_open], [AC_CHECK_HEADER([libtar.h], [LIBTAR='-ltar'])])
+if test -n "$LIBTAR"; then
+ CFLAGS="$CFLAGS"
+ LDFLAGS="$LDFLAGS $LIBTAR"
+fi
+
+CFLAGS="$CFLAGS $ENV_CFLAGS"
+
+dnl ==========================================================================
+
+AC_OUTPUT([
+lib/libalpm/Makefile
+lib/libftp/Makefile
+src/pacman/Makefile
+src/util/Makefile
+scripts/Makefile
+doc/Makefile
+Makefile
+])
+
+echo "
+pacman-$VERSION:
+
+ prefix: ${prefix}
+ source code location: ${srcdir}
+ compiler: ${CC}
+ compiler flags: ${CFLAGS}
+ libalpm version: ${PM_VERSION}
+
+ debug support: ${debug}
+"
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 00000000..5e9e159f
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,26 @@
+all: makepkg.8 pacman.8
+
+if HAS_MAN2HTML
+makepkg.8:
+ sed -e 's,#PACMAN_VERSION#,$(PACMAN_VERSION),g' < makepkg.8.in > makepkg.8
+ man2html makepkg.8 > html/makepkg.8.html
+else
+makepkg.8:
+ sed -e 's,#PACMAN_VERSION#,$(PACMAN_VERSION),g' < makepkg.8.in > makepkg.8
+endif
+
+if HAS_MAN2HTML
+pacman.8:
+ sed -e 's,#PACMAN_VERSION#,$(PACMAN_VERSION),g' < pacman.8.in > pacman.8
+ man2html pacman.8 > html/pacman.8.html
+else
+pacman.8:
+ sed -e 's,#PACMAN_VERSION#,$(PACMAN_VERSION),g' < pacman.8.in > pacman.8
+endif
+
+clean:
+ rm -rf *.8
+ rm -rf html/*
+
+man_MANS: pacman.8 makepkg.8
+EXTRA_DIST = $(man_MANS)
diff --git a/lib/libalpm/Makefile b/lib/libalpm/Makefile
deleted file mode 100644
index 1f021776..00000000
--- a/lib/libalpm/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-
-CXX=gcc
-CFLAGS=-g -Wall -pedantic -D_GNU_SOURCE -I. -I../..
-AR=ar rc
-RAN=ranlib
-
-OBJS=md5driver.o \
- md5.o \
- util.o \
- list.o \
- log.o \
- error.o \
- package.o \
- group.o \
- db.o \
- cache.o \
- conflict.o \
- deps.o \
- provide.o \
- rpmvercmp.o \
- backup.o \
- trans.o \
- add.o \
- remove.o \
- sync.o \
- handle.o \
- alpm.o
-
-all: libalpm.a
-
-%.o: %.c %.h
- $(CXX) -c $(CFLAGS) -o $@ $<
-
-libalpm.a: $(OBJS) alpm.h
- $(AR) $@ $(OBJS)
- $(RAN) $@
-
-clean:
- rm -f *.o *~ core
- rm -f libalpm.a
diff --git a/lib/libalpm/Makefile.am b/lib/libalpm/Makefile.am
new file mode 100644
index 00000000..57a8356b
--- /dev/null
+++ b/lib/libalpm/Makefile.am
@@ -0,0 +1,31 @@
+AUTOMAKE_OPTIONS = gnu
+DEFINES = -pedantic -D_GNU_SOURCE
+AM_CFLAGS = $(DEFINES)
+
+TARGETS = md5driver.c \
+ md5.c \
+ util.c \
+ list.c \
+ log.c \
+ error.c \
+ package.c \
+ group.c \
+ db.c \
+ cache.c \
+ conflict.c \
+ deps.c \
+ provide.c \
+ rpmvercmp.c \
+ backup.c \
+ trans.c \
+ add.c \
+ remove.c \
+ sync.c \
+ handle.c \
+ alpm.c
+
+lib_LTLIBRARIES = libalpm.la
+
+libalpm_la_SOURCES = $(TARGETS)
+
+libalpm_la_LDFLAGS = -no-undefined -version-info $(PM_VERSION_INFO)
diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h
index b12defee..5ba0e1d7 100644
--- a/lib/libalpm/alpm.h
+++ b/lib/libalpm/alpm.h
@@ -25,7 +25,7 @@
* Arch Linux Package Management library
*/
-#define PM_VERSION "0.1.0"
+/* #define PM_VERSION "0.1.0" */ /* Comes from autoconf's config.h */
#define PM_ROOT "/"
#define PM_DBPATH "var/lib/pacman"
diff --git a/lib/libftp/Makefile b/lib/libftp/Makefile
deleted file mode 100644
index bf17940c..00000000
--- a/lib/libftp/Makefile
+++ /dev/null
@@ -1,62 +0,0 @@
-#
-# This makefile contains modifications submitted by Richard Braakman
-# (dark@xs4all.nl) for the shared library generation.
-#
-
-# By default, ftplib uses PASV. If you need it to use PORT
-# instead, uncomment the next line
-DEFINES = -DFTPLIB_DEFMODE=FTPLIB_PORT
-
-SONAME = 3
-SOVERSION = $(SONAME).1
-
-TARGETS = libftp.a libftp.so
-OBJECTS = ftplib.o
-SOURCES = ftplib.c
-
-CFLAGS = -Wall $(DEBUG) -I. $(INCLUDES) $(DEFINES)
-LDFLAGS = -L.
-DEPFLAGS =
-
-#all : $(TARGETS)
-all : libftp.a
-
-clean :
- rm -f $(OBJECTS) core *.bak
- rm -rf unshared
-
-clobber : clean
- rm -f $(TARGETS) .depend
- rm -f libftp.so.*
-
-install : all
- install -m 644 libftp.so.$(SOVERSION) /usr/local/lib
- install -m 644 ftplib.h /usr/local/include
- (cd /usr/local/lib && \
- ln -sf libftp.so.$(SOVERSION) libftp.so.$(SONAME) && \
- ln -sf libftp.so.$(SONAME) libftp.so)
-
-depend :
- $(CC) $(CFLAGS) -M $(SOURCES) > .depend
-
-# build without -fPIC
-unshared/ftplib.o: ftplib.c ftplib.h
- -mkdir unshared
- $(CC) -c $(CFLAGS) -D_REENTRANT $< -o $@
-
-ftplib.o: ftplib.c ftplib.h
- $(CC) -c $(CFLAGS) -fPIC -D_REENTRANT $< -o $@
-
-libftp.a: unshared/ftplib.o
- ar -rcs $@ $<
-
-libftp.so.$(SOVERSION): ftplib.o
- $(CC) -shared -Wl,-soname,libftp.so.$(SONAME) -lc -o $@ $<
-
-libftp.so: libftp.so.$(SOVERSION)
- ln -sf $< libftp.so.$(SONAME)
- ln -sf $< $@
-
-ifeq (.depend,$(wildcard .depend))
-include .depend
-endif
diff --git a/lib/libftp/Makefile.am b/lib/libftp/Makefile.am
new file mode 100644
index 00000000..b53e4972
--- /dev/null
+++ b/lib/libftp/Makefile.am
@@ -0,0 +1,17 @@
+AUTOMAKE_OPTIONS = gnu
+DEFINES = -DFTPLIB_DEFMODE=FTPLIB_PORT -D_REENTRANT
+AM_CFLAGS = $(DEFINES)
+
+#SOMAJOR = 3
+#SOMINOR = 1
+#SOMICRO = 1
+#SOVER = `expr $(SOMAJOR) + $(SOMINOR)`:$(SOMICRO):$(SOMINOR)
+
+noinst_LTLIBRARIES = libftp.la
+#lib_LTLIBRARIES = libftp.la
+
+libftp_la_SOURCES = \
+ ftplib.h \
+ ftplib.c
+
+#libftp_la_LDFLAGS = -L. -version-info $(SOVER)
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
new file mode 100644
index 00000000..c73ff8f7
--- /dev/null
+++ b/scripts/Makefile.am
@@ -0,0 +1,2 @@
+AUTOMAKE_OPTIONS = std-options
+bin_SCRIPTS = gensync makepkg makeworld updatesync
diff --git a/src/pacman/Makefile b/src/pacman/Makefile
deleted file mode 100644
index a6b6cad2..00000000
--- a/src/pacman/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-
-CC=gcc
-CFLAGS=-g -Wall -D_GNU_SOURCE -I. -I../.. -I../../lib/libalpm -I../../lib/libftp
-LDFLAGS=-L../../lib/libalpm -lalpm -L../../lib/libftp -lftp -ltar -lz
-AR=ar rc
-RAN=ranlib
-
-OBJECTS=util.o \
- log.o \
- list.o \
- package.o \
- db.o \
- download.o \
- trans.o \
- add.o \
- remove.o \
- upgrade.o \
- query.o \
- sync.o \
- conf.o \
- pacman.o
-
-all: pacman
-
-%.o: %.c %.h
- $(CC) -c $(CFLAGS) -o $@ $<
-
-pacman: $(OBJECTS) ../../lib/libalpm/libalpm.a ../../lib/libftp/libftp.a
- $(CC) $(OBJECTS) -o $@ $(CFLAGS) $(LDFLAGS)
-# $(CC) $(OBJECTS) -o $@.static $(CFLAGS) $(LDFLAGS)
-
-clean:
- rm -f *.o *~ core
- rm -f pacman pacman.static convertdb vercmp
-
-install: pacman vercmp convertdb
- $(INSTALL) -D -m0755 pacman $(DESTDIR)$(BINDIR)/pacman
- $(INSTALL) -D -m0755 pacman.static $(DESTDIR)$(BINDIR)/pacman.static
- $(INSTALL) -D -m0755 vercmp $(DESTDIR)$(BINDIR)/vercmp
- $(INSTALL) -D -m0755 convertdb $(DESTDIR)$(BINDIR)/convertdb
-
diff --git a/src/pacman/Makefile.am b/src/pacman/Makefile.am
new file mode 100644
index 00000000..f8450b86
--- /dev/null
+++ b/src/pacman/Makefile.am
@@ -0,0 +1,20 @@
+bin_PROGRAMS = pacman pacman.static
+
+AM_CFLAGS = -D_GNU_SOURCE \
+ -I$(top_srcdir)/lib/libalpm \
+ -I$(top_srcdir)/lib/libftp
+
+pacman_SOURCES = util.c log.c list.c package.c db.c download.c trans.c add.c \
+ remove.c upgrade.c query.c sync.c conf.c pacman.c
+
+pacman_static_SOURCES = $(pacman_SOURCES)
+
+pacman_LDADD = \
+ $(top_srcdir)/lib/libalpm/libalpm.la \
+ $(top_srcdir)/lib/libftp/libftp.la
+
+pacman_static_LDADD = \
+ $(top_srcdir)/lib/libalpm/.libs/libalpm.a \
+ $(top_srcdir)/lib/libftp/.libs/libftp.a $(LDFLAGS)
+
+pacman_static_LDFLAGS = -all-static
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index 983d8402..00be4b83 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -591,7 +591,7 @@ void usage(int op, char *myname)
void version()
{
printf("\n");
- printf(" .--. Pacman v%s\n", PM_VERSION);
+ printf(" .--. Pacman v%s - libalpm v%s\n", PACMAN_VERSION, PM_VERSION);
printf("/ _.-' .-. .-. .-. Copyright (C) 2002-2005 Judd Vinet <jvinet@zeroflux.org>\n");
printf("\\ '-. '-' '-' '-' \n");
printf(" '--' This program may be freely redistributed under\n");
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
new file mode 100644
index 00000000..8fd81471
--- /dev/null
+++ b/src/util/Makefile.am
@@ -0,0 +1,11 @@
+bin_PROGRAMS = vercmp convertdb
+
+AM_CFLAGS = \
+ -I$(top_srcdir)/lib/libalpm \
+ -I$(top_srcdir)/src/pacman
+
+vercmp_SOURCES = vercmp.c
+convertdb_SOURCES = convertdb.c
+
+vercmp_LDADD = $(top_srcdir)/lib/libalpm/libalpm.la
+convertdb_LDADD = $(top_srcdir)/lib/libalpm/libalpm.la