Makefile.am   [plain text]


noinst_LTLIBRARIES = libdict.la
noinst_LIBRARIES = libdict_backend.a

dict_drivers = @dict_drivers@

AM_CPPFLAGS = \
	-I$(top_srcdir)/src/lib \
	-I$(top_srcdir)/src/lib-test \
	-I$(top_srcdir)/src/lib-sql \
	-I$(top_srcdir)/src/lib-settings \
	$(SQL_CFLAGS)

base_sources = \
	dict.c \
	dict-client.c \
	dict-file.c

libdict_la_SOURCES = \
	$(base_sources)

libdict_backend_a_SOURCES = \
	dict-db.c \
	dict-sql.c \
	dict-sql-settings.c

nodist_libdict_backend_a_SOURCES = \
	dict-drivers-register.c

headers = \
	dict.h \
	dict-client.h \
	dict-private.h \
	dict-sql.h \
	dict-sql-settings.h

pkginc_libdir=$(pkgincludedir)
pkginc_lib_HEADERS = $(headers)

dict-drivers-register.c: Makefile $(top_builddir)/config.h
	rm -f $@
	echo '/* this file automatically generated by Makefile */' >$@
	echo '#include "lib.h"' >>$@
	echo '#include "dict.h"' >>$@
	echo '#include "dict-sql.h"' >>$@
	for i in $(dict_drivers) null; do \
	  if [ "$${i}" != "null" ]; then \
	        echo "extern struct dict dict_driver_$${i};" >>$@ ; \
	  fi; \
	done
	echo 'void dict_drivers_register_all(void) {' >>$@
	echo 'dict_drivers_register_builtin();' >>$@
	echo 'dict_sql_register();' >>$@
	for i in $(dict_drivers) null; do \
	  if [ "$${i}" != "null" ]; then \
	        echo "dict_driver_register(&dict_driver_$${i});" >>$@ ; \
	  fi; \
	done
	echo '}' >>$@
	echo 'void dict_drivers_unregister_all(void) {' >>$@
	echo 'dict_drivers_unregister_builtin();' >>$@
	echo 'dict_sql_unregister();' >>$@
	for i in $(dict_drivers) null; do \
	  if [ "$${i}" != "null" ]; then \
	        echo "dict_driver_unregister(&dict_driver_$${i});" >>$@ ; \
	  fi; \
	done
	echo '}' >>$@

distclean-generic:
	rm -f Makefile dict-drivers-register.c

test_programs = \
	test-dict

noinst_PROGRAMS = $(test_programs)

test_libs = \
	../lib-test/libtest.la \
	../lib/liblib.la

test_dict_SOURCES = test-dict.c
test_dict_LDADD = dict.lo $(test_libs)
test_dict_DEPENDENCIES = dict.lo $(test_libs)

check: check-am check-test
check-test: all-am
	for bin in $(test_programs); do \
	  if ! $(RUN_TEST) ./$$bin; then exit 1; fi; \
	done