6 top_srcdir = @top_srcdir@
10 PRE_CPPFLAGS = -I.. -I$(top_srcdir)
13 OPENSSL_LIBFLAGS = @OPENSSL_LIBFLAGS@
14 RSA_TARGETS = rsa-keygen$(EXEEXT) rsa-sign$(EXEEXT) \
15 rsa-verify$(EXEEXT) rsa-encrypt$(EXEEXT) rsa-decrypt$(EXEEXT)
16 TARGETS = nettle-benchmark$(EXEEXT) eratosthenes$(EXEEXT) @IF_HOGWEED@ $(RSA_TARGETS) next-prime$(EXEEXT) random-prime$(EXEEXT)
17 SOURCES = nettle-benchmark.c eratosthenes.c next-prime.c random-prime.c \
19 io.c read_rsa_key.c getopt.c getopt1.c \
20 rsa-encrypt.c rsa-decrypt.c rsa-keygen.c rsa-sign.c rsa-verify.c
22 GETOPT_OBJS = getopt.$(OBJEXT) getopt1.$(OBJEXT)
24 TS_ALL = rsa-sign-test rsa-verify-test rsa-encrypt-test
26 DISTFILES= $(SOURCES) Makefile.in $(TS_ALL) run-tests setup-env teardown-env \
27 io.h rsa-session.h getopt.h
32 $(COMPILE) -c $< && $(DEP_PROCESS)
34 # For Solaris and BSD make, we have to use an explicit rule for each executable
35 next-prime$(EXEEXT): next-prime.$(OBJEXT) $(GETOPT_OBJS) ../libhogweed.a
36 $(LINK) next-prime.$(OBJEXT) $(GETOPT_OBJS) \
37 -lhogweed -lnettle $(LIBS) -o next-prime$(EXEEXT)
39 random-prime$(EXEEXT): random-prime.$(OBJEXT) $(GETOPT_OBJS) ../libhogweed.a
40 $(LINK) random-prime.$(OBJEXT) io.$(OBJEXT) $(GETOPT_OBJS) \
41 -lhogweed -lnettle $(LIBS) -o random-prime$(EXEEXT)
43 rsa-keygen$(EXEEXT): rsa-keygen.$(OBJEXT) $(GETOPT_OBJS)
44 $(LINK) rsa-keygen.$(OBJEXT) io.$(OBJEXT) $(GETOPT_OBJS) \
45 -lhogweed -lnettle $(LIBS) -o rsa-keygen$(EXEEXT)
47 rsa-sign$(EXEEXT): rsa-sign.$(OBJEXT) read_rsa_key.$(OBJEXT)
48 $(LINK) rsa-sign.$(OBJEXT) io.$(OBJEXT) read_rsa_key.$(OBJEXT) \
49 -lhogweed -lnettle $(LIBS) -o rsa-sign$(EXEEXT)
51 rsa-verify$(EXEEXT): rsa-verify.$(OBJEXT) read_rsa_key.$(OBJEXT)
52 $(LINK) rsa-verify.$(OBJEXT) io.$(OBJEXT) read_rsa_key.$(OBJEXT) \
53 -lhogweed -lnettle $(LIBS) -o rsa-verify$(EXEEXT)
55 rsa-encrypt$(EXEEXT): rsa-encrypt.$(OBJEXT) read_rsa_key.$(OBJEXT) $(GETOPT_OBJS)
56 $(LINK) rsa-encrypt.$(OBJEXT) io.$(OBJEXT) read_rsa_key.$(OBJEXT) \
58 -lhogweed -lnettle $(LIBS) -o rsa-encrypt$(EXEEXT)
60 rsa-decrypt$(EXEEXT): rsa-decrypt.$(OBJEXT) read_rsa_key.$(OBJEXT)
61 $(LINK) rsa-decrypt.$(OBJEXT) io.$(OBJEXT) read_rsa_key.$(OBJEXT) \
62 -lhogweed -lnettle $(LIBS) -o rsa-decrypt$(EXEEXT)
64 eratosthenes$(EXEEXT): eratosthenes.$(OBJEXT) $(GETOPT_OBJS)
65 $(LINK) eratosthenes.$(OBJEXT) $(GETOPT_OBJS) -o eratosthenes$(EXEEXT)
67 nettle-benchmark$(EXEEXT): nettle-benchmark.$(OBJEXT) nettle-openssl.$(OBJEXT) $(GETOPT_OBJS)
68 $(LINK) nettle-benchmark.$(OBJEXT) nettle-openssl.$(OBJEXT) io.$(OBJEXT) $(GETOPT_OBJS) \
69 -lnettle $(LIBS) $(OPENSSL_LIBFLAGS) -o nettle-benchmark$(EXEEXT)
71 $(TARGETS) : io.$(OBJEXT) ../libnettle.a
75 LD_LIBRARY_PATH=../.lib srcdir="$(srcdir)" \
76 "$(srcdir)"/run-tests $(TS_ALL)
78 Makefile: $(srcdir)/Makefile.in ../config.status
79 cd .. && $(SHELL) ./config.status examples/$@
84 # NOTE: I'd like to use $^, but that's a GNU extension. $? should be
85 # more portable, equivalent for phony targets.
90 -rm -f $(TARGETS) *.$(OBJEXT)
96 etags -o $(srcdir)/TAGS --include $(top_srcdir) $(srcdir)/*.c $(srcdir)/*.h
98 @DEP_INCLUDE@ $(SOURCES:.c=.$(OBJEXT).d)