Update autotools to Vala usage
This commit is contained in:
parent
de402cfa92
commit
2eb4828cdb
9
.gitignore
vendored
9
.gitignore
vendored
@ -27,7 +27,8 @@ Makefile.in
|
||||
.libs/
|
||||
/stamp-h1
|
||||
/gtk-doc.make
|
||||
/m4/
|
||||
/m4/*
|
||||
!/m4/valac.m4
|
||||
/GPATH
|
||||
/GRTAGS
|
||||
/GSYMS
|
||||
@ -54,3 +55,9 @@ Makefile.in
|
||||
/docs/reference/matrix-glib/matrix-glib.signals
|
||||
/docs/reference/matrix-glib/matrix-glib.types
|
||||
/docs/reference/matrix-glib/*.bak
|
||||
|
||||
# Vala related files
|
||||
/src/Matrix-0.0.vapi
|
||||
/src/vala-temp
|
||||
/src/vala-stamp
|
||||
/src/matrix-glib.h
|
37
configure.ac
37
configure.ac
@ -83,31 +83,27 @@ AC_SUBST([LT_CURRENT], matrix_glib_lt_current)
|
||||
AC_SUBST([LT_REVISION], matrix_glib_lt_revision)
|
||||
AC_SUBST([LT_AGE], matrix_glib_lt_age)
|
||||
|
||||
AC_SUBST([MATRIX_GLIB_MAJOR_MINOR_VERSION], matrix_glib_major_minor_version)
|
||||
|
||||
# This is used to identify a set of API compatible between versions
|
||||
# - If new versions are compatible with the actual one, just leave
|
||||
# this untouched
|
||||
# - If new version breaks API change it in order to allow parallel
|
||||
# installations with old versions. Change name of pc files to use
|
||||
# a new API, too
|
||||
AC_SUBST([API_VERSION], matrix_glib_api_version)
|
||||
|
||||
AC_SUBST([MATRIX_GLIB_VERSION], matrix_glib_base_version)
|
||||
|
||||
### Dependencies
|
||||
|
||||
GLIB_REQUIRED=2.38.0
|
||||
GLIB_REQUIRED=2.40.0
|
||||
VALA_REQUIRED=0.30.0
|
||||
LIBVALA_REQUIRED=0.30
|
||||
GIO_REQUIRED=2.22
|
||||
SOUP_REQUIRED=2.44.2
|
||||
JSON_REQUIRED=0.16.2
|
||||
|
||||
# Check GLib
|
||||
PKG_CHECK_MODULES([GLIB],
|
||||
[glib-2.0 >= $GLIB_REQUIRED])
|
||||
[glib-2.0 >= $GLIB_REQUIRED
|
||||
gobject-2.0 >= $GLIB_REQUIRED])
|
||||
|
||||
# Check GObject
|
||||
PKG_CHECK_MODULES([GOBJECT],
|
||||
[gobject-2.0 >= $GLIB_REQUIRED])
|
||||
# Check for vala
|
||||
VALAC_CHECK
|
||||
|
||||
# Check for GIO
|
||||
PKG_CHECK_MODULES([GIO], [gio-2.0 >= $GIO_REQUIRED])
|
||||
|
||||
# Check for libSoup
|
||||
PKG_CHECK_MODULES([SOUP], [libsoup-2.4 >= $SOUP_REQUIRED])
|
||||
@ -139,8 +135,14 @@ fi
|
||||
AC_SUBST([MATRIX_GLIB_MAJOR_VERSION], matrix_glib_major_version)
|
||||
AC_SUBST([MATRIX_GLIB_MINOR_VERSION], matrix_glib_minor_version)
|
||||
AC_SUBST([MATRIX_GLIB_MICRO_VERSION], matrix_glib_micro_version)
|
||||
|
||||
# This is used to identify a set of API compatible between versions
|
||||
# - If new versions are compatible with the actual one, just leave
|
||||
# this untouched
|
||||
# - If new version breaks API change it in order to allow parallel
|
||||
# installations with old versions. Change name of pc files to use
|
||||
# a new API, too
|
||||
AC_SUBST([MATRIX_GLIB_API_VERSION], matrix_glib_api_version)
|
||||
AC_SUBST([MATRIX_GLIB_API_VERSION_U], [AS_TR_SH(matrix_glib_api_version)])
|
||||
|
||||
m4_ifdef([GTK_DOC_CHECK], [
|
||||
GTK_DOC_CHECK([1.20], [--flavour no-tmpl])
|
||||
@ -151,9 +153,6 @@ AM_CONDITIONAL([ENABLE_GTK_DOC], false)
|
||||
AC_PATH_PROG([GLIB_MKENUMS], [glib-mkenums])
|
||||
AC_PATH_PROG([GLIB_GENMARSHAL], [glib-genmarshal])
|
||||
|
||||
LIBMATRIX_GLIB_LIBS='$(top_builddir)/src/libmatrix-glib-$(MATRIX_GLIB_API_VERSION).la'
|
||||
AC_SUBST(LIBMATRIX_GLIB_LIBS)
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
src/Makefile
|
||||
|
@ -79,7 +79,9 @@ expand_content_files=
|
||||
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
|
||||
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
|
||||
GTKDOC_CFLAGS=
|
||||
GTKDOC_LIBS=$(LIBMATRIX_GLIB_LIBS) $(NULL)
|
||||
GTKDOC_LIBS = \
|
||||
$(top_builddir)/src/libmatrix-glib-$(MATRIX_GLIB_API_VERSION).la \
|
||||
$(NULL)
|
||||
|
||||
# This includes the standard gtk-doc make rules, copied by gtkdocize.
|
||||
include $(top_srcdir)/gtk-doc.make
|
||||
|
76
m4/valac.m4
Normal file
76
m4/valac.m4
Normal file
@ -0,0 +1,76 @@
|
||||
dnl vapigen.m4
|
||||
dnl
|
||||
dnl Copyright 2014 Daniel Espinosa
|
||||
dnl
|
||||
dnl This library is free software; you can redistribute it and/or
|
||||
dnl modify it under the terms of the GNU Lesser General Public
|
||||
dnl License as published by the Free Software Foundation; either
|
||||
dnl version 2.1 of the License, or (at your option) any later version.
|
||||
dnl
|
||||
dnl This library is distributed in the hope that it will be useful,
|
||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
dnl Lesser General Public License for more details.
|
||||
dnl
|
||||
dnl You should have received a copy of the GNU Lesser General Public
|
||||
dnl License along with this library; if not, write to the Free Software
|
||||
dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
# VALAC_CHECK([VERSION], [API_VERSION])
|
||||
# --------------------------------------
|
||||
# Check valac existence and version.
|
||||
m4_define([_VALAC_CHECK_INTERNAL],
|
||||
[
|
||||
AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
AS_IF([ test "x$2" = "x" ], [
|
||||
AM_PROG_VALAC($1)
|
||||
AS_IF([ test "x$VALAC" = "xno"], [
|
||||
check_prog=no
|
||||
AC_MSG_ERROR([valac is not installed])
|
||||
], [
|
||||
check_prog=yes
|
||||
VALAC_VERSION=`$VALAC --api-version`
|
||||
VAPIDIR=$datadir/vala-$VALAC_VERSION/vapi
|
||||
VAPIDIR_UNVERSIONED=$datadir/vala-$VALAC_VERSION/vapi
|
||||
])
|
||||
], [
|
||||
AS_IF([ test "x$1" = "x"], [
|
||||
vala_pkg="libvala-$2"
|
||||
], [
|
||||
vala_pkg="libvala-$2 >= $1"
|
||||
])
|
||||
AC_MSG_CHECKING([for $vala_pkg])
|
||||
PKG_CHECK_EXISTS([ $vala_pkg ], [
|
||||
vala_pkg_found=yes
|
||||
VAPIGEN=`$PKG_CONFIG --variable=vapigen libvala-$2`
|
||||
VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir libvala-$2`/vala/Makefile.vapigen
|
||||
VAPIDIR=`$PKG_CONFIG --variable=vapidir libvala-$2`
|
||||
GEN_INTROSPECT=`$PKG_CONFIG --variable=gen_introspect libvala-$2`
|
||||
vala_datadir=`$PKG_CONFIG --variable=datadir libvala-$2`
|
||||
VAPIDIR_UNVERSIONED=$vala_datadir/vala/vapi
|
||||
VALA_GEN_INTROSPECT=`$PKG_CONFIG --variable=vala_gen_introspect libvala-$2`
|
||||
], [
|
||||
vala_pkg_found=no
|
||||
AC_MSG_ERROR([no package libvala-$2 is installed])
|
||||
])
|
||||
AC_MSG_RESULT([$vala_pkg_found])
|
||||
])
|
||||
AC_SUBST([VAPIGEN])
|
||||
AC_SUBST([VAPIGEN_VAPIDIR])
|
||||
AC_SUBST([VAPIDIR])
|
||||
AC_SUBST([VAPIDIR_UNVERSIONED])
|
||||
AC_SUBST([VAPIGEN_MAKEFILE])
|
||||
AC_SUBST([GEN_INTROSPECT])
|
||||
AC_SUBST([VALA_GEN_INTROSPECT])
|
||||
AC_SUBST([VALAC_VERSION])
|
||||
])
|
||||
|
||||
dnl Check VAPIGEN
|
||||
# VALAC_CHECK([VERSION], [API_VERSION], [DEFAULT])
|
||||
# --------------------------------------
|
||||
# Check vapigen existence and version.
|
||||
AC_DEFUN([VALAC_CHECK],
|
||||
[
|
||||
_VALAC_CHECK_INTERNAL($1,$2,$3)
|
||||
]
|
||||
)
|
@ -1,13 +1,69 @@
|
||||
include $(top_srcdir)/vala-globals.mk
|
||||
|
||||
AM_CPPFLAGS = -DG_LOG_DOMAIN=\"Matrix-GLib\"
|
||||
|
||||
# Empty variables for elements to be added later
|
||||
CLEANFILES =
|
||||
BUILT_SOURCES =
|
||||
EXTRA_DIST =
|
||||
AM_VALAFLAGS =
|
||||
|
||||
# Name of the public header file
|
||||
PUBLIC_HEADER = matrix-glib.h
|
||||
|
||||
# Libraries to create
|
||||
lib_LTLIBRARIES = libmatrix-glib-0.0.la
|
||||
|
||||
# Vala source files
|
||||
libmatrix_glib_0_0_la_VALA_SOURCES = \
|
||||
$(NULL)
|
||||
|
||||
AM_CPPFLAGS += \
|
||||
-include $(CONFIG_HEADER) \
|
||||
-I$(top_srcdir) \
|
||||
-g \
|
||||
-Wall \
|
||||
$(GLIB_CFLAGS) \
|
||||
$(GOBJECT_CFLAGS) \
|
||||
$(SOUP_CFLAGS) \
|
||||
$(JSON_CFLAGS) \
|
||||
$(VALA_CFLAGS) \
|
||||
$(NULL)
|
||||
|
||||
AM_VALAFLAGS += \
|
||||
--library=Matrix-$(MATRIX_GLIB_API_VERSION) \
|
||||
$(VALA_PKG_LIST) \
|
||||
--vapi=Matrix-$(MATRIX_GLIB_API_VERSION).vapi \
|
||||
-H $(PUBLIC_HEADER) \
|
||||
-C \
|
||||
--use-header \
|
||||
--gir=Matrix-$(MATRIX_GLIB_API_VERSION).gir \
|
||||
$(NULL)
|
||||
|
||||
vala-stamp: $(libmatrix_glib_0_0_la_VALA_SOURCES)
|
||||
@rm -f vala-temp
|
||||
@touch vala-temp
|
||||
$(AM_V_GEN) $(VALAC) $(AM_VALAFLAGS) $^
|
||||
@mv -f vala-temp $@
|
||||
|
||||
CLEANFILES += \
|
||||
$(PUBLIC_HEADER) \
|
||||
$(libmatrix_glib_0_0_la_VALA_SOURCES:.vala=.c) \
|
||||
$(NULL)
|
||||
|
||||
$(libmatrix_glib_0_0_la_VALA_SOURCES:.vala=.c): vala-stamp
|
||||
@if test -f $@; then :; else \
|
||||
trap 'rm -rf vala-lock vala-stamp' 1 2 13 15; \
|
||||
if mkdir vala-lock 2> /dev/null; then \
|
||||
rm -f vala-stamp; \
|
||||
$(MAKE) $(AM_MAKEFLAGS) vala-stamp; \
|
||||
rmdir vala-lock; \
|
||||
else \
|
||||
while test -d vala-lock; do sleep 1; done; \
|
||||
test -f vala-stamp; exit $$?; \
|
||||
fi \
|
||||
fi
|
||||
|
||||
# Binaries to create
|
||||
bin_PROGRAMS = test-api-client
|
||||
|
||||
@ -32,6 +88,7 @@ matrix_enum_headers = \
|
||||
libmatrix_glib_0_0_la_SOURCES = \
|
||||
$(INST_H_BUILT_FILES) \
|
||||
matrix-marshalers.c \
|
||||
$(libmatrix_glib_0_0_la_VALA_SOURCES:.vala=.c) \
|
||||
matrix-version.c \
|
||||
matrix-types.c \
|
||||
matrix-api.c \
|
||||
@ -60,6 +117,8 @@ libmatrix_glib_0_0_la_LIBADD = \
|
||||
libmatrix_glib_0_0_la_LDFLAGS = \
|
||||
-version-info "$(LT_CURRENT)":"$(LT_REVISION)":"$(LT_AGE)"
|
||||
|
||||
$(PUBLIC_HEADER): vala-stamp
|
||||
|
||||
BUILT_SOURCES += \
|
||||
matrix-enumtypes.c \
|
||||
matrix-enumtypes.h \
|
||||
@ -68,7 +127,7 @@ BUILT_SOURCES += \
|
||||
$(NULL)
|
||||
|
||||
test_api_client_SOURCES = test-api-client.c
|
||||
test_api_client_CFLAGS = $(libmatrix_glib_0_0_la_CFLAGS)
|
||||
test_api_client_CFLAGS = $(libmatrix_glib_0_0_la_CFLAGS) $(AM_CFLAGS)
|
||||
test_api_client_LDADD = \
|
||||
$(libmatrix_glib_0_0_la_LIBADD) \
|
||||
libmatrix-glib-$(MATRIX_GLIB_API_VERSION).la \
|
||||
@ -152,6 +211,7 @@ typelibs_DATA = Matrix-$(MATRIX_GLIB_API_VERSION).typelib
|
||||
|
||||
headerdir = $(includedir)/matrix-glib-$(MATRIX_GLIB_API_VERSION)
|
||||
header_DATA = \
|
||||
$(PUBLIC_HEADER) \
|
||||
$(INST_H_SRC_FILES) \
|
||||
$(INST_H_BUILT_FILES) \
|
||||
$(NULL)
|
||||
|
3
src/Matrix-0.0.deps
Normal file
3
src/Matrix-0.0.deps
Normal file
@ -0,0 +1,3 @@
|
||||
gio-2.0
|
||||
Json-1.0
|
||||
libsoup-2.4
|
5
vala-globals.mk
Normal file
5
vala-globals.mk
Normal file
@ -0,0 +1,5 @@
|
||||
VALA_PKG_LIST = \
|
||||
--pkg=gio-2.0 \
|
||||
--pkg=Json-1.0 \
|
||||
--pkg=libsoup-2.4 \
|
||||
$(NULL)
|
Loading…
Reference in New Issue
Block a user