You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.3 KiB
Makefile

# This Makefile requires GNU make, sometimes available as gmake.
#
# A simple test suite for libmseed.
# See README for description.
#
# Build environment can be configured the following
# environment variables:
# CC : Specify the C compiler to use
# CFLAGS : Specify compiler options to use
# Required compiler parameters
CFLAGS += -I.. -I.
LDFLAGS += -L..
LDLIBS := -lmseed $(LDLIBS)
# Source code from example programs
EXAMPLE_SRCS := $(sort $(wildcard lm_*.c))
EXAMPLE_BINS := $(EXAMPLE_SRCS:%.c=%)
# Source code for tests
TEST_SRCS := $(sort $(wildcard test-*.c))
TEST_RUNNER := test-runner
# ASCII color coding for test results, green for PASSED and red for FAILED
PASSED := \033[0;32mPASSED\033[0m
FAILED := \033[0;31mFAILED\033[0m
test all: $(EXAMPLE_BINS) $(TEST_RUNNER) runtests
# Build example programs and check for executables
$(EXAMPLE_BINS) : % : %.c
@$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) $(LDLIBS); exit 0;
@if test -x $@; \
then printf '$(PASSED) Building $<\n'; \
else printf '$(FAILED) Building $<\n'; exit 1; \
fi
# Build tests
.PHONY: $(TEST_RUNNER)
$(TEST_RUNNER):
$(CC) $(CFLAGS) -o $@ $(TEST_SRCS) $(LDFLAGS) $(LDLIBS) -Wno-unused-but-set-variable
# Execute tests
runtests: $(TEST_RUNNER)
@./$(TEST_RUNNER)
clean:
@rm -rf $(EXAMPLE_BINS) $(TEST_RUNNER) testdata-* *.dSYM