-# Copyright © 2011-2013, 2019-2023 Nick Bowler
+# Copyright © 2011-2013, 2019-2024 Nick Bowler
#
-# License WTFPL2: Do What The Fuck You Want To Public License, version 2.
-# This is free software: you are free to do what the fuck you want to.
+# License GPLv3+: GNU General Public License version 3 or any later version.
+# This is free software: you are free to change and redistribute it.
# There is NO WARRANTY, to the extent permitted by law.
ACLOCAL_AMFLAGS = -I m4 -I common/m4
EXTRA_LTLIBRARIES =
EXTRA_PROGRAMS =
+# Ensure .stamp rules are handled first
+SUFFIXES = .stamp
+
AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src \
-I$(top_builddir)/lib -I$(top_srcdir)/lib \
-I$(DX_BASEDIR)/src -I$(top_builddir)/t \
EXTRA_DIST = bootstrap $(DX_BASEDIR)/scripts/fix-gnulib.pl m4/gnulib-cache.m4 \
src/types.lst src/parse.y src/parse.stamp src/scan.l \
- src/scan.stamp COPYING.WTFPL2 README.md INSTALL
+ src/scan.stamp COPYING.WTFPL2 README.md INSTALL \
+ tests/data/manyspec.gz tests/data/manydecl.gz
dist_man_MANS = doc/cdecl99.1 doc/libcdecl.3
-noinst_HEADERS = conf_pre.h conf_post.h common/src/help.h common/src/tap.h \
- common/src/xtra.h src/cdecl.h src/intconv.h src/scan.h \
- src/parse.h src/version.h t/declgen.h t/test.h
+noinst_HEADERS = conf_pre.h conf_post.h common/src/getline.h \
+ common/src/help.h common/src/tap.h common/src/xtra.h \
+ src/cdecl.h src/intconv.h src/parse.h src/scan.h \
+ src/thread-posix.h src/thread-stdc.h src/thread-w32.h \
+ src/version.h t/declgen.h t/test.h
noinst_DATA = $(MOFILES)
nodist_include_HEADERS = src/config/cdecl.h
src/config/cdecl.h: config.h src/cdecl.h $(DX_BASEDIR)/scripts/bake-config.awk
- $(AM_V_at) $(AWK) -f $(DX_BASEDIR)/scripts/bake-config.awk \
+ $(AM_V_GEN) $(AWK) -f $(DX_BASEDIR)/scripts/bake-config.awk \
config.h $(srcdir)/src/cdecl.h >$@-t
$(AM_V_at) mv -f $@-t $@
EXTRA_DIST += $(DX_BASEDIR)/scripts/bake-config.awk
t_scantest_LDADD = src/scan.lo src/parse.lo src/keywords.lo $(TEST_LIBS)
$(t_scantest_OBJECTS): $(gnulib_headers) src/scan.h src/parse.h
+EXTRA_LTLIBRARIES += t/liberrtest.la
+t_liberrtest_la_SOURCES = src/error.c t/errmemwrap.c
+t_liberrtest_la_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_MALLOC_HOOK
+t_liberrtest_la_LDFLAGS = -no-undefined -avoid-version \
+ -bindir '$(bindir)' -rpath '$(libdir)'
+EXTRA_t_liberrtest_la_DEPENDENCIES = $(shared_gl_objects)
+t_liberrtest_la_LIBADD = src/output.lo $(EXTRA_t_liberrtest_la_DEPENDENCIES) \
+ $(LTLIBINTL) $(LIBTHREAD)
+t_liberrtest_la_SHORTNAME = t
+$(t_liberrtest_la_OBJECTS): $(gnulib_headers)
+
+check_PROGRAMS += t/errthread
+t_errthread_LDADD = t/liberrtest.la libtest.a $(LIBMULTITHREAD)
+$(t_errthread_OBJECTS): $(gnulib_headers) src/errmsg.h
+
src/error.lo: src/errmsg.h
src/keywords.lo: src/parse.h
src/output.lo: src/parse.h src/specstr.h
t/cdeclerr.$(OBJEXT): src/errmsg.h
check_PROGRAMS += t/cdeclerr
-t_cdeclerr_SOURCES = common/src/tap.c t/cdeclerr.c
+t_cdeclerr_SOURCES = t/cdeclerr.c
EXTRA_t_cdeclerr_DEPENDENCIES = src/error.lo src/output.lo $(shared_gl_objects)
-t_cdeclerr_LDADD = $(EXTRA_t_cdeclerr_DEPENDENCIES) $(LIBTHREAD)
+t_cdeclerr_LDADD = $(EXTRA_t_cdeclerr_DEPENDENCIES) \
+ libtest.a $(LTLIBINTL) $(LIBTHREAD)
$(t_cdeclerr_OBJECTS): $(gnulib_headers)
# Supporting rules for gettext.
atlocal: config.status
$(AM_V_GEN) $(AWK) </dev/null >$@.tmp \
'BEGIN{ for (i = 1; i < ARGC; i++) print ": \"$${" ARGV[i] "}\""; }' \
- 'AWK=$(AWK)' 'EXEEXT=$(EXEEXT)' 'check_PROGRAMS=$(check_PROGRAMS)'
+ 'AWK=$(AWK)' 'EXEEXT=$(EXEEXT)' 'check_PROGRAMS=$(check_PROGRAMS)' \
+ 'host_os=$(host_os)'
$(AM_V_at) mv -f $@.tmp $@
check_DATA = atlocal
CLEANFILES += atlocal