# This is free software: you are free to do what the fuck you want to.
# There is NO WARRANTY, to the extent permitted by law.
+AUTOMAKE_OPTIONS = parallel-tests color-tests
ACLOCAL_AMFLAGS = -I m4 -I common/m4
EXTRA_DIST = m4/gnulib-cache.m4
MOSTLYCLEANFILES =
noinst_LTLIBRARIES =
-AM_CPPFLAGS = -I$(top_builddir)/lib -I$(top_srcdir)/lib
+AM_CPPFLAGS = -I$(top_builddir)/lib -I$(top_srcdir)/lib -I$(top_srcdir)/src
+AM_CFLAGS = $(LIBPNG_CFLAGS) $(GTK_CFLAGS)
dist_man_MANS = doc/man/lbxtool.1 doc/man/lbximg.1
dist_doc_DATA = doc/txt/moo2-data.txt
liblbx_la_SOURCES = src/lbx.c src/fops.c src/image.c src/pack.c src/error.c
liblbx_la_LDFLAGS = -export-symbols-regex '^lbx_'
-bin_PROGRAMS = lbxtool
-if BUILD_LBXIMG
-bin_PROGRAMS += lbximg
-endif
+bin_PROGRAMS = lbxtool lbximg
if BUILD_LBXGUI
bin_PROGRAMS += lbxgui
endif
-lbxtool_SOURCES = src/lbxtool.c
+lbxtool_SOURCES = src/lbxtool.c src/tools.c
lbxtool_LDADD = liblbx.la libgnu.la
$(lbxtool_OBJECTS): $(gnulib_headers)
-lbximg_SOURCES = src/lbximg.c
+lbximg_SOURCES = src/lbximg.c src/tools.c src/pnm.c
lbximg_LDADD = liblbx.la libgnu.la $(LIBPNG_LIBS)
-lbximg_CFLAGS = $(LIBPNG_CFLAGS)
$(lbximg_OBJECTS): $(gnulib_headers)
-nodist_lbxgui_SOURCES = src/gui/lbxgui_xml.c
-lbxgui_SOURCES = src/gui/lbxgui.c src/gui/render.c src/gui/render.h \
+if HAVE_LIBPNG
+lbximg_SOURCES += src/png.c
+endif
+
+nodist_lbxgui_SOURCES = src/gui/lbxgui.glade.c
+lbxgui_SOURCES = src/gui/lbxgui.c src/gui/lbxgui.h src/gui/image.c \
src/gui/bg.xbm
-lbxgui_LDADD = liblbx.la $(GTK_LIBS)
-lbxgui_CPPFLAGS = -I$(top_srcdir)/src
-lbxgui_CFLAGS = $(GTK_CFLAGS)
lbxgui_LDFLAGS = $(AM_LDFLAGS) -export-dynamic
+lbxgui_LDADD = liblbx.la $(GTK_LIBS)
+
+TEST_EXTENSIONS = .tap
+
+TAP_LOG_COMPILER = $(SHELL)
+TAP_LOG_DRIVER = AM_TAP_AWK='$(AWK)' \
+ $(SHELL) $(srcdir)/tests/util/tap-driver.sh
+
+TESTS = tests/empty-image.tap tests/pam-formats.tap tests/moo2-mainmenu.tap \
+ tests/moo2-logo.tap tests/moo2-starbg.tap tests/moo2-ships.tap \
+ tests/moo2-monster.tap
+
+mostlyclean-local: clean-testdirs
+clean-testdirs:
+ for dir in $(TESTS:.tap=.dir); do \
+ case $$dir in \
+ *.dir) rm -rf "$$dir" ;; \
+ esac; \
+ done
+.PHONY: clean-testdirs
-src/gui/lbxgui_xml.c: src/gui/lbxgui.glade
- $(AM_V_GEN) sed -e 's/"/\\"/g' \
- -e 's/.*/"&"/' \
- -e '1 s/^/char lbxgui_xml[] =\n/' \
- -e '$$ s/$$/;/' $? > $@
+.xml.c:
+ $(AM_V_GEN) printf '%s\n' $(*F) | sed -e 's/[^[:alnum:]]/_/g' \
+ -e 's/.*/const char &[] =/' > $@.tmp
+ $(AM_V_at) sed -e 's/\\/\\\\/g' \
+ -e 's/"/\\"/g' \
+ -e 's/.*/"&\\n"/' \
+ -e '$$ s/$$/;/' $< >> $@.tmp
+ $(AM_V_at) mv -f $@.tmp $@
-CLEANFILES += src/gui/lbxgui_xml.c
-EXTRA_DIST += src/gui/lbxgui.glade
+EXTRA_DIST += src/gui/lbxgui.glade.xml
+CLEANFILES += src/gui/lbxgui.glade.c
include lib/gnulib.mk