Commit dfa7f945 authored by Niels Möller's avatar Niels Möller
Browse files

* testsuite/ Use %-rules for building the -test

executables, in addition to the suffix rules. Hopefully, this
should make all of GNU make, BSD make and Solaris make happy.
Use $(EXEEXT) and $(OBJEXT) more consistently.

Rev: src/nettle/examples/
Rev: src/nettle/testsuite/
parent d6583562
...@@ -24,15 +24,37 @@ DISTFILES= $(SOURCES) $(TS_ALL) run-tests setup-env teardown-env \ ...@@ -24,15 +24,37 @@ DISTFILES= $(SOURCES) $(TS_ALL) run-tests setup-env teardown-env \
all: $(TARGETS) all: $(TARGETS)
.c.$(OBJEXT): .c.$(OBJEXT):
$(COMPILE) -c $< $(COMPILE) -c $< && $(DEP_PROCESS)
$(LINK) $< io.o -lnettle $(LIBS) -o $@
nettle-benchmark: nettle-benchmark.o nettle-openssl.o # For Solaris and BSD make, we have to use an explicit rule for each executable
$(LINK) nettle-benchmark.o nettle-openssl.o io.o \ rsa-keygen$(EXEEXT): rsa-keygen.$(OBJEXT)
$(LINK) rsa-keygen.$(OBJEXT) io.$(OBJEXT) \
-lnettle $(LIBS) -o rsa-keygen$(EXEEXT)
rsa-sign$(EXEEXT): rsa-sign.$(OBJEXT)
$(LINK) rsa-sign.$(OBJEXT) io.$(OBJEXT) \
-lnettle $(LIBS) -o rsa-sign$(EXEEXT)
rsa-verify$(EXEEXT): rsa-verify.$(OBJEXT)
$(LINK) rsa-verify.$(OBJEXT) io.$(OBJEXT) \
-lnettle $(LIBS) -o rsa-verify$(EXEEXT)
rsa-encrypt$(EXEEXT): rsa-encrypt.$(OBJEXT)
$(LINK) rsa-encrypt.$(OBJEXT) io.$(OBJEXT) \
-lnettle $(LIBS) -o rsa-encrypt$(EXEEXT)
rsa-decrypt$(EXEEXT): rsa-decrypt.$(OBJEXT)
$(LINK) rsa-decrypt.$(OBJEXT) io.$(OBJEXT) \
-lnettle $(LIBS) -o rsa-decrypt$(EXEEXT)
# $(LINK) $< io.$(OBJEXT) -lnettle $(LIBS) -o $@
nettle-benchmark$(EXEEXT): nettle-benchmark.$(OBJEXT) nettle-openssl.$(OBJEXT)
$(LINK) nettle-benchmark.$(OBJEXT) nettle-openssl.$(OBJEXT) io.$(OBJEXT) \
-lnettle $(LIBS) $(OPENSSL_LIBFLAGS) -o $@ -lnettle $(LIBS) $(OPENSSL_LIBFLAGS) -o $@
$(TARGETS) : io.o ../libnettle.a $(TARGETS) : io.$(OBJEXT) ../libnettle.a
check: $(TS_ALL) check: $(TS_ALL)
...@@ -49,7 +71,7 @@ distdir: $(DISTFILES) ...@@ -49,7 +71,7 @@ distdir: $(DISTFILES)
cp $? $(distdir) cp $? $(distdir)
clean: clean:
-rm -f $(TARGETS) *.o -rm -f $(TARGETS) *.$(OBJEXT)
distclean: clean distclean: clean
-rm -f Makefile *.d -rm -f Makefile *.d
...@@ -46,13 +46,22 @@ all: $(TARGETS) $(EXTRA_TARGETS) ...@@ -46,13 +46,22 @@ all: $(TARGETS) $(EXTRA_TARGETS)
.SUFFIXES: -test.c -test.$(OBJEXT) -test$(EXEEXT) .SUFFIXES: -test.c -test.$(OBJEXT) -test$(EXEEXT)
.c.$(OBJEXT): .c.$(OBJEXT):
$(COMPILE) -I.. -c $< && $(DEP_PROCESS) $(COMPILE) -c $< && $(DEP_PROCESS)
# It seems really tricky to write suffix rules for the transformation
# foo-test.o -> foo-test, that work with all make variants. We use a a
# %-rule that works with Solaris make and GNU-make and a two-suffix
# -test.o-test: that works for BSD make and GNU make. For BSD make, we
# also need a -test.c-test.o rule.
$(LINK) $< testutils.$(OBJEXT) -lnettle $(LIBS) -o $@
-test.c-test.$(OBJEXT): -test.c-test.$(OBJEXT):
$(COMPILE) -I.. -c $< && $(DEP_PROCESS) $(COMPILE) -c $< && $(DEP_PROCESS)
-test.$(OBJEXT)-test$(EXEEXT): -test.$(OBJEXT)-test$(EXEEXT):
$(LINK) $< testutils.o -lnettle $(LIBS) -o $@ $(LINK) $< testutils.$(OBJEXT) -lnettle $(LIBS) -o $@
$(TARGETS) $(EXTRA_TARGETS) : testutils.$(OBJEXT) ../libnettle.a $(TARGETS) $(EXTRA_TARGETS) : testutils.$(OBJEXT) ../libnettle.a
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment