--- /dev/null
+CC = gcc
+CFLAGS = -O2 -Wall
+prefix =
+includedir = $(prefix)/include
+libdir = $(prefix)/lib
+CPPFLAGS = -I$(includedir)
+LDFLAGS = -L$(libdir) -Wl,-rpath,$(libdir)
+
+all: check-call check-callback
+
+test-call: test-call.c testcases.c
+ $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o test-call test-call.c -lffi
+
+test-callback: test-callback.c testcases.c
+ $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o test-callback test-callback.c -lffi
+
+check-call: test-call
+ ./test-call > test-call.out
+ LC_ALL=C uniq -u < test-call.out > failed-call
+ test '!' -s failed-call
+
+check-callback: test-callback
+ ./test-callback > test-callback.out
+ LC_ALL=C uniq -u < test-callback.out > failed-callback
+ test '!' -s failed-callback
+
+clean:
+ rm -f test-call test-callback test-call.out test-callback.out failed-call failed-callback