2019-03-26 10:02:30 +01:00
|
|
|
TESTS=$(sort $(basename $(wildcard *.c)))
|
2019-05-16 12:03:38 +02:00
|
|
|
TARGETS=native ia32 aarch64
|
|
|
|
|
|
|
|
|
|
# Suitable values of cross-compiler variables for Debian, having previously done:
|
|
|
|
|
#
|
|
|
|
|
# CC_IA32 = gcc -m32
|
|
|
|
|
# CC_AARCH64 = gcc-aarch64-linux-gnu
|
|
|
|
|
#
|
|
|
|
|
# The relevant packages that you need to run this:
|
|
|
|
|
#
|
2019-05-16 12:08:22 +02:00
|
|
|
# dpkg --add-architecture i386
|
|
|
|
|
# dpkg --add-architecture arm64
|
2019-05-16 12:03:38 +02:00
|
|
|
# apt-get update -qq
|
|
|
|
|
# apt-get install -y \
|
|
|
|
|
# libc6-dev:amd64 libc6-dev:i386 libc6-dev:arm64 \
|
|
|
|
|
# gcc gcc-multilib gcc-aarch64-linux-gnu make
|
|
|
|
|
#
|
2019-03-22 15:20:40 +01:00
|
|
|
CC = gcc
|
2019-05-16 12:03:38 +02:00
|
|
|
CC_IA32='guix environment --pure -s i686-linux --ad-hoc gcc-toolchain glibc -- gcc'
|
|
|
|
|
CC_AARCH64='guix environment --pure -s aarch64-linux --ad-hoc gcc-toolchain glibc -- gcc'
|
2019-03-22 15:20:40 +01:00
|
|
|
CFLAGS = -Wall -O0 -g
|
|
|
|
|
|
2019-04-05 16:07:01 +02:00
|
|
|
all: $(foreach TARGET,$(TARGETS),$(addprefix test-$(TARGET)-,$(TESTS)))
|
2019-03-22 15:20:40 +01:00
|
|
|
|
2019-04-05 16:07:01 +02:00
|
|
|
check: $(addprefix test-$(TARGET),$(TARGETS))
|
|
|
|
|
|
|
|
|
|
test-%: $(addprefix test-%-,$(TESTS))
|
2019-03-25 12:31:51 +01:00
|
|
|
@echo "Running unit tests..."
|
2019-04-05 16:07:01 +02:00
|
|
|
@set -e; for test in $?; do \
|
2019-03-25 12:31:51 +01:00
|
|
|
echo "Testing: $$test"; \
|
2019-04-05 16:07:01 +02:00
|
|
|
./$$test; \
|
2019-03-25 12:31:51 +01:00
|
|
|
done
|
|
|
|
|
@echo "Success."
|
|
|
|
|
|
2019-04-05 16:07:01 +02:00
|
|
|
.PHONY: test check
|
|
|
|
|
|
2019-04-05 16:24:21 +02:00
|
|
|
lightening-%.o: ../lightening.h ../lightening/*.c
|
|
|
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) -I.. -o $@ -c ../lightening/lightening.c
|
2019-03-22 15:20:40 +01:00
|
|
|
|
2019-04-05 16:24:21 +02:00
|
|
|
test-native-%: %.c lightening-native.o test.h
|
|
|
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) -I.. -o $@ lightening-native.o $<
|
|
|
|
|
|
|
|
|
|
test-ia32-%: CC = $(CC_IA32)
|
|
|
|
|
test-ia32-%: %.c lightening-ia32.o test.h
|
2019-04-26 15:00:29 +02:00
|
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) -I.. -o $@ lightening-ia32.o $<
|
2019-03-22 15:20:40 +01:00
|
|
|
|
2019-05-16 12:03:38 +02:00
|
|
|
test-aarch64-%: CC = $(CC_AARCH64)
|
|
|
|
|
test-aarch64-%: %.c lightening-aarch64.o test.h
|
|
|
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) -I.. -o $@ lightening-aarch64.o $<
|
|
|
|
|
|
2019-04-28 10:47:52 +02:00
|
|
|
.PRECIOUS: $(foreach TARGET,$(TARGETS),$(addprefix test-$(TARGET)-,$(TESTS)))
|
|
|
|
|
.PRECIOUS: $(foreach TARGET,$(TARGETS),lightening-$(TARGET).o)
|
|
|
|
|
|
2019-03-22 15:20:40 +01:00
|
|
|
clean:
|
2019-04-05 16:07:01 +02:00
|
|
|
rm -f $(foreach TARGET,$(TARGETS),$(addprefix test-$(TARGET)-,$(TESTS)))
|
2019-04-05 16:25:22 +02:00
|
|
|
rm -f $(foreach TARGET,$(TARGETS),lightening-$(TARGET).o)
|