libcruft-util/Makefile.am

478 lines
10 KiB
Makefile
Raw Normal View History

2014-05-09 13:09:36 +10:00
###############################################################################
## Global build rules
2011-05-23 17:18:52 +10:00
ACLOCAL_AMFLAGS = -I m4
2016-04-05 11:11:19 +10:00
AM_CXXFLAGS = $(BOOST_CPPFLAGS)
AM_DEFAULT_SOURCE_EXT = .cpp
2011-05-23 17:18:52 +10:00
2014-05-09 13:09:36 +10:00
###############################################################################
## Source definitions
2015-06-01 16:19:24 +10:00
UTIL_FILES = \
adapter.hpp \
adapter.cpp \
alloc/fwd.hpp \
2015-11-13 17:17:37 +11:00
alloc/affix.cpp \
alloc/affix.hpp \
alloc/allocator.cpp \
alloc/allocator.hpp \
2015-11-30 15:10:04 +11:00
alloc/allocator.ipp \
2015-11-13 17:17:37 +11:00
alloc/arena.cpp \
alloc/arena.hpp \
alloc/arena.ipp \
alloc/dynamic.hpp \
2015-11-13 17:17:37 +11:00
alloc/fallback.cpp \
alloc/fallback.hpp \
alloc/linear.cpp \
alloc/linear.hpp \
alloc/malloc.cpp \
alloc/malloc.hpp \
alloc/null.cpp \
alloc/null.hpp \
alloc/stack.cpp \
alloc/stack.hpp \
ascii.hpp \
2015-06-01 16:19:24 +10:00
backtrace.hpp \
bezier.cpp \
bezier.hpp \
bitwise.cpp \
bitwise.hpp \
2015-11-17 16:19:27 +11:00
cast.hpp \
cmdopt.cpp \
cmdopt.hpp \
cmdopt.ipp \
2015-06-01 16:19:24 +10:00
colour.cpp \
colour.hpp \
colour.ipp \
coord/base.hpp \
coord.hpp \
coord/init.hpp \
coord/iostream.hpp \
2015-06-01 16:19:24 +10:00
coord/names.hpp \
coord/ops.hpp \
coord/store.hpp \
crypto/arc4.cpp \
crypto/arc4.hpp \
2016-06-20 18:04:41 +10:00
crypto/ice.cpp \
crypto/ice.hpp \
2015-06-01 16:19:24 +10:00
crypto/tea.cpp \
crypto/tea.hpp \
crypto/xtea.cpp \
crypto/xtea.hpp \
crypto/xxtea.cpp \
crypto/xxtea.hpp \
debug.cpp \
debug.hpp \
2015-11-30 15:10:04 +11:00
debug.ipp \
2015-06-01 16:19:24 +10:00
endian.cpp \
endian.hpp \
except.cpp \
except.hpp \
exe.cpp \
exe.hpp \
extent.cpp \
extent.hpp \
extent.ipp \
fixed.cpp \
fixed.hpp \
float.cpp \
float.hpp \
2015-07-21 01:37:45 +10:00
format.cpp \
format.hpp \
format.ipp \
2015-06-01 16:19:24 +10:00
fourcc.cpp \
fourcc.hpp \
geom/fwd.hpp \
geom/aabb.cpp \
geom/aabb.hpp \
2015-10-14 15:32:53 +11:00
geom/aabb.ipp \
geom/cylinder.cpp \
geom/cylinder.hpp \
geom/ellipse.cpp \
geom/ellipse.hpp \
geom/ellipse.ipp \
geom/iostream.cpp \
geom/iostream.hpp \
2015-10-14 15:32:53 +11:00
geom/ops.hpp \
geom/plane.cpp \
geom/plane.hpp \
geom/ray.cpp \
geom/ray.hpp \
2015-10-14 15:32:53 +11:00
geom/rect.cpp \
geom/rect.hpp \
geom/sample.hpp \
geom/sample.ipp \
geom/sphere.cpp \
geom/sphere.hpp \
2015-10-14 15:32:53 +11:00
geom/tri.cpp \
geom/tri.hpp \
2015-06-01 16:19:24 +10:00
guid.cpp \
guid.hpp \
hash.hpp \
2016-06-20 16:52:27 +10:00
hash/fwd.hpp \
hash/simple.hpp \
hash/simple.cpp \
2015-06-01 16:19:24 +10:00
hash/adler.cpp \
hash/adler.hpp \
hash/bsdsum.cpp \
hash/bsdsum.hpp \
hash/crc.cpp \
hash/crc.hpp \
hash/fasthash.cpp \
2015-09-29 17:40:02 +10:00
hash/fasthash.hpp \
hash/fletcher.cpp \
2015-06-01 16:19:24 +10:00
hash/fletcher.hpp \
2015-06-02 21:24:29 +10:00
hash/fnv1a.cpp \
hash/fnv1a.hpp \
2015-06-01 16:19:24 +10:00
hash/hmac.cpp \
hash/hmac.hpp \
hash/hotp.cpp \
hash/hotp.hpp \
2016-06-20 18:05:30 +10:00
hash/keccak.cpp \
hash/keccak.hpp \
2015-06-01 16:19:24 +10:00
hash/md2.cpp \
hash/md2.hpp \
hash/md4.cpp \
hash/md4.hpp \
hash/md5.cpp \
hash/md5.hpp \
2015-05-20 14:47:36 +10:00
hash/murmur/common.cpp \
hash/murmur/common.hpp \
2015-06-01 16:19:24 +10:00
hash/murmur.hpp \
2015-05-20 14:47:36 +10:00
hash/murmur/murmur1.cpp \
hash/murmur/murmur1.hpp \
hash/murmur/murmur2.cpp \
hash/murmur/murmur2.hpp \
hash/murmur/murmur3.cpp \
hash/murmur/murmur3.hpp \
2015-06-01 16:19:24 +10:00
hash/pbkdf1.cpp \
hash/pbkdf1.hpp \
hash/pbkdf2.cpp \
hash/pbkdf2.hpp \
hash/ripemd.cpp \
hash/ripemd.hpp \
hash/sha1.cpp \
hash/sha1.hpp \
hash/sha2.cpp \
hash/sha2.hpp \
hash/wang.hpp \
hash/wang.ipp \
2015-06-01 16:19:24 +10:00
introspection.cpp \
introspection.hpp \
io.cpp \
io.hpp \
io.ipp \
ip.cpp \
ip.hpp \
iterator.hpp \
json/fwd.hpp \
json/except.cpp \
json/except.hpp \
json/flat.cpp \
json/flat.hpp \
json/schema.cpp \
json/schema.hpp \
json/tree.cpp \
json/tree.hpp \
2015-08-10 15:45:56 +10:00
library.hpp \
2015-06-01 16:19:24 +10:00
log.cpp \
log.hpp \
log.ipp \
maths.cpp \
maths.hpp \
matrix.cpp \
matrix2.cpp \
matrix3.cpp \
matrix4.cpp \
2015-06-01 16:19:24 +10:00
matrix.hpp \
matrix.ipp \
memory/deleter.cpp \
memory/deleter.hpp \
2015-06-01 16:19:24 +10:00
nocopy.hpp \
pascal.cpp \
pascal.hpp \
platform.hpp \
point.cpp \
point.hpp \
point.ipp \
2015-11-17 17:21:14 +11:00
pointer.hpp \
2015-06-01 16:19:24 +10:00
polynomial.cpp \
polynomial.hpp \
polynomial.ipp \
pool.cpp \
pool.hpp \
pool.ipp \
preprocessor.hpp \
quaternion.cpp \
quaternion.hpp \
raii.hpp \
2016-02-03 12:13:03 +11:00
rand/lcg.cpp \
rand/lcg.hpp \
rand/xorshift.cpp \
rand/xorshift.hpp \
2016-06-30 18:15:05 +10:00
rand/mwc64x.cpp \
rand/mwc64x.hpp \
2015-06-01 16:19:24 +10:00
random.cpp \
random.hpp \
random.ipp \
range.cpp \
range.hpp \
range.ipp \
rational.cpp \
rational.hpp \
rational.ipp \
2015-06-01 16:19:24 +10:00
region.cpp \
region.hpp \
2015-09-21 15:33:58 +10:00
region.ipp \
roots/bisection.hpp \
2015-06-01 16:19:24 +10:00
si.cpp \
signal.cpp \
signal.hpp \
signal.ipp \
si.hpp \
stats.cpp \
stats.hpp \
stream.cpp \
stream.hpp \
string.cpp \
string.hpp \
stringid.cpp \
stringid.hpp \
strongdef.cpp \
strongdef.hpp \
2015-06-01 16:19:24 +10:00
tap.cpp \
tap.hpp \
tap.ipp \
2016-03-21 14:20:39 +11:00
term.cpp \
term.hpp \
2015-06-01 16:19:24 +10:00
time.cpp \
time.hpp \
time.ipp \
2015-06-01 16:19:24 +10:00
tuple.cpp \
tuple.hpp \
types/bits.hpp \
types/comparator.hpp \
types/comparator.ipp \
types.hpp \
types/string.cpp \
types/string.hpp \
types/traits.hpp \
uri.cpp \
uri.hpp \
variadic.cpp \
variadic.hpp \
variadic.ipp \
vector.cpp \
vector.hpp \
vector.ipp \
2015-06-01 16:19:24 +10:00
version.cpp \
version.hpp \
view.cpp \
view.ipp \
view.hpp \
$(BACKTRACE_FILES)
2011-05-23 17:18:52 +10:00
POSIX_FILES = \
2016-04-05 11:11:19 +10:00
net/address.cpp \
net/address.hpp \
net/except.cpp \
net/except.hpp \
net/socket.cpp \
net/socket.hpp \
net/types.cpp \
net/types.hpp \
memory/buffer/circular.cpp \
memory/buffer/circular.hpp \
memory/buffer/paged.cpp \
memory/buffer/paged.hpp \
memory/system.cpp \
memory/system.hpp \
debug_posix.cpp \
io_posix.cpp \
2015-07-23 14:13:09 +10:00
io_posix.hpp \
2016-06-28 14:15:19 +10:00
io_posix.ipp \
2015-08-10 15:45:56 +10:00
library_posix.hpp \
library_posix.cpp \
2015-08-10 15:46:13 +10:00
posix/dir.cpp \
posix/dir.hpp \
posix/dir.ipp \
2015-07-23 14:13:09 +10:00
time_posix.cpp
if PLATFORM_LINUX
UTIL_FILES += $(POSIX_FILES)
endif
if PLATFORM_FREEBSD
UTIL_FILES += $(POSIX_FILES)
2012-05-10 16:53:29 +10:00
endif
if PLATFORM_WIN32
UTIL_FILES += \
debug_win32.cpp \
2015-07-23 14:13:09 +10:00
io_win32.cpp \
2016-06-28 14:15:19 +10:00
io_win32.hpp \
io_win32.ipp \
2015-08-10 15:45:56 +10:00
library_win32.hpp \
library_win32.cpp \
2015-08-10 15:47:30 +10:00
time_win32.cpp \
win32/handle.cpp \
win32/handle.hpp \
2015-08-10 15:47:30 +10:00
win32/registry.hpp \
win32/registry.cpp
endif
# Select one of the available backtrace codepaths. We construct a list of
# candidates in their preferred order then used firstword to choose the best
# one.
#
# We need to use this two variable approach otherwise the final variable
# doesn't seem to be expanded at the appropriate time. Using ?= apparently
# suffers a similar problem.
__BACKTRACE_FILES=
2016-04-05 11:11:19 +10:00
if HAVE_EXECINFO
__BACKTRACE_FILES += backtrace_execinfo.cpp
endif
if HAVE_CAPTURESTACKBACKTRACE
__BACKTRACE_FILES += backtrace_stackwalk.cpp backtrace_win32.cpp
endif
BACKTRACE_FILES=$(firstword $(__BACKTRACE_FILES) backtrace_null.cpp)
2014-05-09 13:09:36 +10:00
###############################################################################
## Local build rules
CLEANFILES = json.cpp version.cpp ip.cpp uri.cpp
2015-02-09 17:43:24 +11:00
EXTRA_DIST = json/flat.cpp.rl version.cpp.rl ip.cpp.rl uri.cpp.rl
2011-05-23 17:18:52 +10:00
RAGELFLAGS = -F1
SUFFIXES = .cpp .cpp.rl
.cpp.rl.cpp:
$(RAGEL) $(RAGELFLAGS) -C $< -o $(builddir)/$@
2014-05-09 13:09:36 +10:00
###############################################################################
## Library definition
lib_LIBRARIES = libcruft-util.a
libcruft_util_a_SOURCES = $(UTIL_FILES)
libcruft_util_a_CXXFLAGS = $(AM_CXXFLAGS)
nobase_pkginclude_HEADERS = $(filter %.hpp %.ipp, $(UTIL_FILES))
pkgincludedir = $(includedir)/cruft/util
pkglibdir = $(libdir)/
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libcruft-util.pc
2012-04-12 14:12:25 +10:00
EXTRA_DIST += ${top_srcdir}/build-aux/wine-crlf.sh
2014-05-09 13:08:50 +10:00
###############################################################################
## Utility programs
2016-04-05 11:11:19 +10:00
LDADD = $(top_builddir)/libcruft-util.a $(BOOST_LDFLAGS) $(LIBS)
2014-05-09 12:58:33 +10:00
bin_PROGRAMS = \
tools/json-clean \
tools/json-validate \
2015-05-18 14:11:08 +10:00
tools/json-schema \
2016-02-24 15:07:03 +11:00
tools/hash
noinst_PROGRAMS = tools/scratch
##-----------------------------------------------------------------------------
## Tests
2016-04-05 11:11:19 +10:00
AM_CXXFLAGS += -I$(top_srcdir)
TEST_BIN = \
2015-11-24 16:52:47 +11:00
test/alloc/arena \
test/alloc/dynamic \
2015-11-13 17:17:37 +11:00
test/alloc/linear \
2016-06-24 13:08:19 +10:00
test/alloc/stack \
test/backtrace \
test/bezier \
test/bitwise \
test/cmdopt \
test/colour \
2015-09-21 15:27:36 +10:00
test/coord \
2015-05-06 21:20:17 +10:00
test/crypto/arc4 \
2016-06-20 18:04:41 +10:00
test/crypto/ice \
2015-05-06 23:49:45 +10:00
test/crypto/tea \
2015-05-07 00:18:01 +10:00
test/crypto/xtea \
2015-05-15 18:27:24 +10:00
test/crypto/xxtea \
2016-05-13 15:23:05 +10:00
test/exe \
test/extent \
test/fixed \
test/float \
2015-07-21 01:37:45 +10:00
test/format \
test/geom/aabb \
test/geom/ray \
2016-06-24 13:08:19 +10:00
test/hash/checksum \
2015-05-28 12:17:25 +10:00
test/hash/fasthash \
2016-06-24 13:08:19 +10:00
test/hash/hmac \
test/hash/hotp \
2016-06-20 18:05:30 +10:00
test/hash/keccak \
2016-06-24 13:08:19 +10:00
test/hash/md2 \
test/hash/md4 \
test/hash/md5 \
test/hash/murmur \
test/hash/ripemd \
test/hash/sha1 \
test/hash/sha2 \
test/hton \
test/introspection \
test/ip \
test/json_types \
test/maths \
test/matrix \
2016-06-24 13:08:19 +10:00
test/memory/deleter \
test/point \
test/polynomial \
test/pool \
2016-02-03 12:13:03 +11:00
test/rand/buckets \
test/random \
test/range \
2015-07-13 16:27:07 +10:00
test/rational \
test/region \
test/roots/bisection \
test/signal \
2016-03-17 18:13:19 +11:00
test/string \
test/stringid \
test/strongdef \
2015-04-20 17:16:18 +10:00
test/tuple \
test/uri \
2015-04-02 14:57:30 +11:00
test/vector \
test/version \
test/view
if !PLATFORM_WIN32
TEST_BIN += test/memory/buffer/paged test/memory/buffer/circular
endif
TEST_EXTENSIONS = .exe #.py .sh .exe
if PLATFORM_WIN32
test_hton_LDFLAGS = -lws2_32
endif
# ideally we'd use EXE_LOG_COMPILER, but automake doesn't easily use EXEEXT as
# part of the log targets so it's just easier to run everything through the
# wine filter.
LOG_COMPILER = ${top_srcdir}/build-aux/wine-crlf.sh
LOG_DRIVER = env ASAN_OPTIONS=$(ASAN_OPTIONS):allow_user_segv_handler=true AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/build-aux/tap-driver.sh
TESTS = $(TEST_BIN) test/json-parse.sh test/json-schema.py
check_PROGRAMS = $(TEST_BIN)
EXTRA_DIST += test/json test/json-parse.sh test/json-schema.py
2016-02-26 17:04:54 +11:00
.PHONY: doc
doc: $(top_builddir)/Doxyfile
doxygen $<