Makefile.in 3.07 KB
Newer Older
1 2 3 4 5 6 7 8 9
@SET_MAKE@

srcdir = @srcdir@
VPATH = @srcdir@

top_srcdir = @top_srcdir@

include ../config.make

10 11
PRE_CPPFLAGS = -I.. -I$(top_srcdir)
PRE_LDFLAGS = -L..
12

13 14 15
TS_NETTLE_SOURCES = aes-test.c arcfour-test.c arctwo-test.c \
		    blowfish-test.c cast128-test.c \
	            base16-test.c base64-test.c \
16
		    camellia-test.c \
17 18
		    des-test.c des3-test.c des-compat-test.c \
		    md2-test.c md4-test.c md5-test.c md5-compat-test.c \
19
		    memxor-test.c \
20 21
		    sha1-test.c sha224-test.c sha256-test.c \
		    sha384-test.c sha512-test.c \
22
		    serpent-test.c twofish-test.c \
23 24
		    knuth-lfib-test.c \
		    cbc-test.c ctr-test.c hmac-test.c \
25 26 27 28
		    buffer-test.c yarrow-test.c

TS_HOGWEED_SOURCES = sexp-test.c sexp-format-test.c \
		     rsa2sexp-test.c sexp2rsa-test.c \
29
		     bignum-test.c random-prime-test.c \
30 31 32 33 34 35 36 37 38
		     pkcs1-test.c \
		     rsa-test.c rsa-encrypt-test.c rsa-keygen-test.c \
		     dsa-test.c dsa-keygen-test.c

TS_SOURCES = $(TS_NETTLE_SOURCES) @IF_HOGWEED@ $(TS_HOGWEED_SOURCES)

TS_NETTLE = $(TS_NETTLE_SOURCES:.c=$(EXEEXT))
TS_HOGWEED = $(TS_HOGWEED_SOURCES:.c=$(EXEEXT))
TS_C = $(TS_NETTLE) @IF_HOGWEED@ $(TS_HOGWEED)
39 40
TS_CXX = @CXX_TESTS@
TARGETS = $(TS_C) $(TS_CXX)
41
TS_SH = sexp-conv-test pkcs1-conv-test symbols-test
42
TS_ALL = $(TARGETS) $(TS_SH)
43 44
EXTRA_SOURCES = sha1-huge-test.c
EXTRA_TARGETS = $(EXTRA_SOURCES:.c=$(EXEEXT))
45 46 47

SOURCES = $(TS_SOURCES) testutils.c

48
DISTFILES = $(SOURCES) $(EXTRA_SOURCES) cxx-test.cxx Makefile.in .test-rules.make \
49
	$(TS_SH) run-tests teardown-env \
50
	gold-bug.txt testutils.h
51

52
all: $(TARGETS) $(EXTRA_TARGETS)
53 54

.c.$(OBJEXT):
55 56
	$(COMPILE) -c $< && $(DEP_PROCESS)

57 58 59 60
.SUFFIXES: .cxx
.cxx.$(OBJEXT):
	$(COMPILE_CXX) -c $< && $(DEP_PROCESS)

61 62 63 64
# BSD (and Solaris) make doesn't allow extra dependencies together one
# single-suffix rules, which makes it impossible or almost impossible
# to use suffix rules to build the test executables. So we use an
# explicit rule for each and every executable.
65

66 67
LIB_HOGWEED = @IF_HOGWEED@ -lhogweed
TEST_OBJS = testutils.$(OBJEXT) $(LIB_HOGWEED) -lnettle $(LIBS)
68

69 70
.PHONY: test-rules
test-rules:
71
	(for f in $(TS_NETTLE) $(TS_HOGWEED) $(EXTRA_TARGETS) ; do \
72 73 74
	  echo $$f'$$(EXEEXT): '$$f'.$$(OBJEXT)' ; \
	  echo '	$$(LINK) '$$f'.$$(OBJEXT) $$(TEST_OBJS) -o '$$f'$$(EXEEXT)' ; \
	  echo ; \
75 76 77 78 79 80
	done ; \
	for f in $(TS_CXX) ; do \
	  echo $$f'$$(EXEEXT): '$$f'.$$(OBJEXT)' ; \
	  echo '	$$(LINK_CXX) '$$f'.$$(OBJEXT) $$(TEST_OBJS) -o '$$f'$$(EXEEXT)' ; \
	  echo ; \
	done) > $(srcdir)/.test-rules.make
Niels Möller's avatar
Niels Möller committed
81

82
include $(srcdir)/.test-rules.make
83

84 85
$(TARGETS) $(EXTRA_TARGETS): testutils.$(OBJEXT) \
	../libnettle.a @IF_HOGWEED@ ../libhogweed.a
86 87 88 89 90 91 92 93 94

check: $(TS_ALL) $(srcdir)/run-tests
	LD_LIBRARY_PATH=../.lib srcdir="$(srcdir)" \
	  $(srcdir)/run-tests $(TS_ALL)


Makefile: $(srcdir)/Makefile.in ../config.status
	cd .. && $(SHELL) ./config.status testsuite/$@

95
install uninstall:
96 97 98
	true

distdir: $(DISTFILES)
99
	cp $? $(distdir)
100 101

clean:
102
	-rm -f $(TARGETS) $(EXTRA_TARGETS) *.o test.in test1.out test2.out
103 104

distclean: clean
105
	-rm -f Makefile *.d
106

107
tags:
108
	etags -o $(srcdir)/TAGS --include $(top_srcdir) $(srcdir)/*.c $(srcdir)/*.h
109

110
@DEP_INCLUDE@ $(SOURCES:.c=.$(OBJEXT).d)