Use autotools
authorPhilipp Zabel <philipp.zabel@gmail.com>
Tue, 3 Nov 2009 10:39:48 +0000 (11:39 +0100)
committerPhilipp Zabel <philipp.zabel@gmail.com>
Tue, 3 Nov 2009 13:26:05 +0000 (14:26 +0100)
Because automake-1.10 contained in the Maemo 5 SDK still lacks vala support,
we ship with a local copy of vala.m4 and use a bit of Makefile.am magic to
get the vala sources built.

Makefile [deleted file]
Makefile.am [new file with mode: 0644]
autogen.sh [new file with mode: 0755]
configure.ac [new file with mode: 0644]
m4/vala.m4 [new file with mode: 0644]

diff --git a/Makefile b/Makefile
deleted file mode 100644 (file)
index 39d2bd6..0000000
--- a/Makefile
+++ /dev/null
@@ -1,58 +0,0 @@
-all: cinaest imdb-plaintext-downloader libimdb-plugin.so
-
-cinaest_SOURCES = \
-       src/main.vala \
-       src/movie.vala \
-       src/movie-list-menu.vala \
-       src/movie-list-store.vala \
-       src/movie-list-view.vala \
-       src/movie-list-window.vala \
-       src/plugin-interface.vala \
-       src/plugin-registrar.vala
-
-cinaest_VALAFLAGS = --thread --vapidir ./vapi \
-       --pkg hildon-1 --pkg libosso --pkg gmodule-2.0
-
-cinaest: ${cinaest_SOURCES}
-       valac -o $@ ${cinaest_VALAFLAGS} ${cinaest_SOURCES}
-
-imdb_plugin_SOURCES = \
-       src/imdb/imdb-sqlite.vala \
-       src/imdb/plaintext-downloader-interface.vala \
-       src/movie.vala \
-       src/plugin-interface.vala \
-       src/plugins/imdb-download-dialog.vala \
-       src/plugins/imdb-plugin.vala
-
-imdb_plugin_CSOURCES = \
-       src/imdb/imdb-sqlite.c \
-       src/plugins/imdb-download-dialog.c \
-       src/plugins/imdb-plugin.c
-
-imdb_plugin_VALAFLAGS = --vapidir ./vapi --pkg dbus-glib-1 --pkg hildon-1 --pkg sqlite3
-imdb_plugin_CFLAGS = -shared -fPIC `pkg-config --cflags dbus-glib-1 hildon-1 sqlite3`
-imdb_plugin_LDADD = `pkg-config --libs dbus-glib-1 hildon-1 sqlite3`
-
-libimdb-plugin.so: ${imdb_plugin_SOURCES}
-       valac -C ${imdb_plugin_VALAFLAGS} ${imdb_plugin_SOURCES}
-       gcc -o $@ ${imdb_plugin_CFLAGS} ${imdb_plugin_LDADD} ${imdb_plugin_CSOURCES}
-
-imdb_plaintext_downloader_SOURCES = \
-       src/imdb/gzip-input-stream.vala \
-       src/imdb/imdb-plaintext-downloader.vala \
-       src/imdb/plaintext-downloader-interface.vala \
-       src/imdb/imdb-sqlite.vala
-
-imdb_plaintext_downloader_VALAFLAGS = --vapidir ./vapi \
-       --pkg dbus-glib-1 --pkg gio-2.0 --pkg sqlite3 --pkg zlib -X -lz
-
-imdb-plaintext-downloader: ${imdb_plaintext_downloader_SOURCES}
-       valac ${imdb_plaintext_downloader_VALAFLAGS} -o $@ \
-             ${imdb_plaintext_downloader_SOURCES}
-
-.PHONY: all clean
-
-clean:
-       rm -f cinaest imdb-plaintext-downloader \
-             libimdb-plugin.so \
-             src/*.c src/imdb/*.c src/plugins/*.c
diff --git a/Makefile.am b/Makefile.am
new file mode 100644 (file)
index 0000000..d86716d
--- /dev/null
@@ -0,0 +1,94 @@
+# List extras to package
+EXTRA_DIST = \
+        autogen.sh
+
+# Sub directories
+SUBDIRS = po
+
+# Binary
+bin_PROGRAMS = \
+        cinaest
+
+libexec_PROGRAMS = \
+       imdb-plaintext-downloader
+
+pkglib_LTLIBRARIES = \
+       libimdb-plugin.la
+
+# Sources
+cinaest_SOURCES = \
+        src/main.c \
+        src/movie.c \
+        src/movie-list-menu.c \
+        src/movie-list-store.c \
+        src/movie-list-view.c \
+        src/movie-list-window.c \
+        src/plugin-interface.c \
+        src/plugin-registrar.c
+
+cinaest_VALASOURCES = \
+        src/main.vala \
+        src/movie.vala \
+        src/movie-list-menu.vala \
+        src/movie-list-store.vala \
+        src/movie-list-view.vala \
+        src/movie-list-window.vala \
+        src/plugin-interface.vala \
+        src/plugin-registrar.vala
+
+${cinaest_SOURCES}: ${cinaest_VALASOURCES}
+       ${VALAC} -C ${cinaest_VALASOURCES} ${cinaest_VALAFLAGS}
+
+cinaest_VALAFLAGS = --thread --vapidir ./vapi --pkg hildon-1 --pkg libosso --pkg gmodule-2.0
+cinaest_CFLAGS = ${HILDON_CFLAGS} ${OSSO_CFLAGS} ${GMODULE_CFLAGS}
+cinaest_LDADD = ${HILDON_LIBS} ${OSSO_LIBS} ${GMODULE_LIBS}
+
+libimdb_plugin_la_SOURCES = \
+        src/plugins/imdb-plugin.c \
+        src/imdb/imdb-sqlite.c \
+        src/movie.c \
+        src/plugin-interface.c \
+        src/plugins/imdb-download-dialog.c
+
+libimdb_plugin_la_VALASOURCES = \
+        src/plugins/imdb-plugin.vala \
+        src/imdb/imdb-sqlite.vala \
+        src/imdb/plaintext-downloader-interface.vala \
+        src/movie.vala \
+        src/plugin-interface.vala \
+        src/plugins/imdb-download-dialog.vala
+
+libimdb_plugin_la_VALAFLAGS = --vapidir ./vapi --pkg dbus-glib-1 --pkg hildon-1 --pkg sqlite3
+libimdb_plugin_la_CFLAGS = ${DBUS_CFLAGS} ${HILDON_CFLAGS} ${SQLITE3_CFLAGS}
+libimdb_plugin_la_LIBADD = ${DBUS_LIBS} ${HILDON_LIBS} ${SQLITE3_LIBS}
+libimdb_plugin_la_LDFLAGS = -module
+
+${libimdb_plugin_la_SOURCES}: ${libimdb_plugin_la_VALASOURCES}
+       ${VALAC} -C ${libimdb_plugin_la_VALASOURCES} ${libimdb_plugin_la_VALAFLAGS}
+
+imdb_plaintext_downloader_SOURCES = \
+        src/imdb/imdb-plaintext-downloader.c \
+        src/imdb/gzip-input-stream.c \
+        src/imdb/imdb-sqlite.c \
+        src/imdb/plaintext-downloader-interface.c
+
+imdb_plaintext_downloader_VALASOURCES = \
+        src/imdb/imdb-plaintext-downloader.vala \
+        src/imdb/gzip-input-stream.vala \
+        src/imdb/imdb-sqlite.vala \
+        src/imdb/plaintext-downloader-interface.vala
+
+imdb_plaintext_downloader_VALAFLAGS = --vapidir ./vapi \
+        --pkg dbus-glib-1 --pkg gio-2.0 --pkg sqlite3 --pkg zlib -X -lz
+imdb_plaintext_downloader_CFLAGS = ${DBUS_CFLAGS} ${GIO_CFLAGS} ${SQLITE3_CFLAGS}
+imdb_plaintext_downloader_LDADD = ${DBUS_LIBS} ${GIO_LIBS} ${SQLITE3_LIBS} -lz
+
+${imdb_plaintext_downloader_SOURCES}: ${imdb_plaintext_downloader_VALASOURCES}
+       ${VALAC} -C ${imdb_plaintext_downloader_VALASOURCES} ${imdb_plaintext_downloader_VALAFLAGS}
+
+BUILT_SOURCES = \
+       ${cinaest_SOURCES} \
+       ${libimdb_plugin_la_SOURCES} \
+       ${imdb_plaintext_downloader_SOURCES}
+
+CLEANFILES = ${BUILT_SOURCES}
diff --git a/autogen.sh b/autogen.sh
new file mode 100755 (executable)
index 0000000..9a74448
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+set -x
+libtoolize --copy --automake
+
+aclocal-1.10 -Im4
+autoconf
+autoheader
+automake-1.10 --copy --add-missing --foreign
+./configure --enable-maintainer-mode
diff --git a/configure.ac b/configure.ac
new file mode 100644 (file)
index 0000000..96f3ebd
--- /dev/null
@@ -0,0 +1,51 @@
+dnl Process this file with autoconf to produce a configure script.
+
+AC_INIT(src/main.vala)
+AC_CONFIG_HEADERS([config.h])
+
+PACKAGE=cinaest
+VERSION=0.0.1
+
+AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
+
+AC_PROG_CC
+AM_PROG_VALAC([0.7.7])
+AC_STDC_HEADERS
+AC_PROG_INSTALL
+AC_PROG_LIBTOOL
+
+CFLAGS="$CFLAGS -Wall -ansi -Wmissing-prototypes -Wmissing-declarations"
+
+PKG_CHECK_MODULES(GMODULE, gmodule-2.0 >= 2.20.3)
+AC_SUBST(GMODULE_LIBS)
+AC_SUBST(GMODULE_CFLAGS)
+
+PKG_CHECK_MODULES(HILDON, hildon-1 >= 2.2.0)
+AC_SUBST(HILDON_LIBS)
+AC_SUBST(HILDON_CFLAGS)
+
+PKG_CHECK_MODULES(OSSO, libosso >= 2.20)
+AC_SUBST(OSSO_LIBS)
+AC_SUBST(OSSO_CFLAGS)
+
+PKG_CHECK_MODULES(GIO, gio-2.0 >= 2.20.3)
+AC_SUBST(GIO_LIBS)
+AC_SUBST(GIO_CFLAGS)
+
+PKG_CHECK_MODULES(SQLITE3, sqlite3 >= 3.6.14)
+AC_SUBST(SQLITE3_LIBS)
+AC_SUBST(SQLITE3_CFLAGS)
+
+PKG_CHECK_MODULES(DBUS, dbus-glib-1 >= 0.78)
+AC_SUBST(DBUS_LIBS)
+AC_SUBST(DBUS_CFLAGS)
+
+PKG_CHECK_MODULES(OSSOSETTINGS, osso-af-settings >= 0.9.2)
+
+localedir=`$PKG_CONFIG osso-af-settings --variable=localedir`
+
+AC_SUBST(desktopentrydir)
+
+AC_OUTPUT([
+       Makefile
+])
diff --git a/m4/vala.m4 b/m4/vala.m4
new file mode 100644 (file)
index 0000000..d95734a
--- /dev/null
@@ -0,0 +1,29 @@
+# Autoconf support for the Vala compiler
+
+# Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# Check whether the Vala compiler exists in `PATH'. If it is found, the
+# variable VALAC is set. Optionally a minimum release number of the
+# compiler can be requested.
+#
+# AM_PROG_VALAC([MINIMUM-VERSION])
+# --------------------------------
+AC_DEFUN([AM_PROG_VALAC],
+[AC_PATH_PROG([VALAC], [valac], [])
+ AS_IF([test -z "$VALAC"],
+   [AC_MSG_WARN([No Vala compiler found.  You will not be able to compile .vala source files.])],
+   [AS_IF([test -n "$1"],
+      [AC_MSG_CHECKING([$VALAC is at least version $1])
+       am__vala_version=`$VALAC --version | sed 's/Vala  *//'`
+       AS_VERSION_COMPARE([$1], ["$am__vala_version"],
+         [AC_MSG_RESULT([yes])],
+         [AC_MSG_RESULT([yes])],
+         [AC_MSG_RESULT([no])
+          AC_MSG_ERROR([Vala $1 not found.])])])])
+])