CC ?= cc
MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

CFLAGS ?= -O2 -g -Wall
CPPFLAGS ?=

# sonLib itself depends on these libraries.  quicktree is required because
# libsonlib leaves the quicktree symbols unresolved (libquicktree is a
# static, non-PIC library).
SONLIB_LIBS = -lquicktree -ltokyocabinet -lz -lbz2 -lpthread -lm -lstdc++

.PHONY: all check clean

all: sonlib-example sonlib-example-static sonlib-cutest-example

sonlib-example: sonlib-example.c
	$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< -lsonlib $(SONLIB_LIBS)

sonlib-example-static: sonlib-example.c
	$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< \
		/usr/lib/$(MULTIARCH)/libsonlib.a $(SONLIB_LIBS)

sonlib-cutest-example: sonlib-cutest-example.c
	$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< -lsonlib -lcutest $(SONLIB_LIBS)

check: all
	./sonlib-example
	./sonlib-example-static
	./sonlib-cutest-example

clean:
	rm -f sonlib-example sonlib-example-static sonlib-cutest-example
