Skip to content

Commit

Permalink
Create hierarchical demo Makefile.
Browse files Browse the repository at this point in the history
Adds a Makefile with all, clean, and test targets.
This has only been added for demos that already contain Makefiles.
For problematic tests that require inputs, the test target does nothing.

(Note: Demos should be self contained and not require unknown external
inputs. This PR does not attempt to fix this.)

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
(Merged from openssl#20546)
  • Loading branch information
slontis authored and mattcaswell committed Oct 25, 2023
1 parent dbbdb94 commit 66f4782
Show file tree
Hide file tree
Showing 12 changed files with 136 additions and 27 deletions.
14 changes: 14 additions & 0 deletions demos/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
MODULES=bio digest encode encrypt kdf keyexch mac pkey signature sslecho

all:
@set -e; for i in $(MODULES); do \
${MAKE} -C $$i all; \
done
clean:
@set -e; for i in $(MODULES); do \
${MAKE} -C $$i clean; \
done
test:
@set -e; for i in $(MODULES); do \
${MAKE} -C $$i test; \
done
2 changes: 2 additions & 0 deletions demos/bio/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ LDFLAGS = $(OPENSSL_LIBS_LOCATION) -lssl -lcrypto $(EX_LIBS)

all: client-arg client-conf saccept sconnect server-arg server-cmod server-conf

test:

client-arg: client-arg.o
client-conf: client-conf.o
saccept: saccept.o
Expand Down
12 changes: 11 additions & 1 deletion demos/cipher/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@
CFLAGS = $(OPENSSL_INCS_LOCATION)
LDFLAGS = $(OPENSSL_LIBS_LOCATION) -lssl -lcrypto

all: aesccm aesgcm aeskeywrap ariacbc
TESTS=aesccm aesgcm aeskeywrap ariacbc

all: $(TESTS)

aesccm: aesccm.o
aesgcm: aesgcm.o
Expand All @@ -25,3 +27,11 @@ aesccm aesgcm aeskeywrap ariacbc:

clean:
$(RM) aesccm aesgcm aeskeywrap ariacbc *.o

.PHONY: test
test: all
@echo "\nCipher tests:"
@set -e; for tst in $(TESTS); do \
echo "\n"$$tst; \
LD_LIBRARY_PATH=../.. ./$$tst; \
done
15 changes: 12 additions & 3 deletions demos/digest/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ CFLAGS = -I../../include -g -Wall
LDFLAGS = -L../..
LDLIBS = -lcrypto

all: EVP_MD_demo EVP_MD_stdin EVP_MD_xof BIO_f_md
TESTS=EVP_MD_demo EVP_MD_stdin EVP_MD_xof BIO_f_md

all: $(TESTS)

%.o: %.c
$(CC) $(CFLAGS) -c $<
Expand All @@ -17,7 +19,14 @@ EVP_MD_stdin: EVP_MD_stdin.o
EVP_MD_xof: EVP_MD_xof.o
BIO_f_md: BIO_f_md.o

test: ;
.PHONY: test
# Since some of these tests use stdin we use the source file as stdin when running the exes
test: all
@echo "\nDigest tests:"
@set -e; for tst in $(TESTS); do \
echo "\n"$$tst; \
cat $$tst.c | ./$$tst; \
done

clean:
$(RM) *.o EVP_MD_demo EVP_MD_stdin EVP_MD_xof BIO_f_md
$(RM) *.o $(TESTS)
8 changes: 5 additions & 3 deletions demos/encode/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,16 @@ CFLAGS = -I../../include -g -Wall
LDFLAGS = -L../..
LDLIBS = -lcrypto

all: ec_encode rsa_encode
TESTS=ec_encode rsa_encode

all: $(TESTS)

%.o: %.c
$(CC) $(CFLAGS) -c $<

%_encode: %_encode.o

test: ;
test:

clean:
$(RM) *.o rsa_encode ec_encode
$(RM) *.o $(TESTS)
16 changes: 12 additions & 4 deletions demos/encrypt/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,22 @@ CFLAGS = -I../../include -g
LDFLAGS = -L../..
LDLIBS = -lcrypto

all: rsa_encrypt
TESTS=rsa_encrypt

all: $(TESTS)

%.o: %.c
$(CC) $(CFLAGS) -c $<

rsa_encrypt: rsa_encrypt.o

test: ;

clean:
$(RM) *.o rsa_encrypt
$(RM) *.o $(TESTS)

.PHONY: test
test: all
@echo "\nEncrypt tests:"
@set -e; for tst in $(TESTS); do \
echo "\n"$$tst; \
LD_LIBRARY_PATH=../.. ./$$tst; \
done
17 changes: 13 additions & 4 deletions demos/kdf/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,25 @@ CFLAGS = -I../../include -g
LDFLAGS = -L../..
LDLIBS = -lcrypto

all: hkdf pbkdf2 scrypt argon2
TESTS=hkdf pbkdf2 scrypt argon2

all: $(TESTS)

%.o: %.c
$(CC) $(CFLAGS) -c $<

hkdf: hkdf.o
pbkdf2: pbkdf2.o
scrypt: scrypt.o

test: ;
argon2: argon2.o

clean:
$(RM) *.o hkdf pbkdf2 scrypt argon2
$(RM) *.o $(TESTS)

.PHONY: test
test: all
@echo "\nKDF tests:"
@set -e; for tst in $(TESTS); do \
echo "\n"$$tst; \
LD_LIBRARY_PATH=../.. ./$$tst; \
done
28 changes: 28 additions & 0 deletions demos/keyexch/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#
# To run the demos when linked with a shared library (default):
#
# LD_LIBRARY_PATH=../.. ./x25519

CFLAGS = -I../../include -g -Wall
LDFLAGS = -L../..
LDLIBS = -lcrypto

TESTS=x25519

all: $(TESTS)

%.o: %.c
$(CC) $(CFLAGS) -c $<

%x25519: %x25519.o

.PHONY: test
test: all
@echo "\nKeyExchange tests:"
@set -e; for tst in $(TESTS); do \
echo "\n"$$tst; \
LD_LIBRARY_PATH=../.. ./$$tst; \
done

clean:
$(RM) *.o $(TESTS)
14 changes: 12 additions & 2 deletions demos/mac/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@
CFLAGS = $(OPENSSL_INCS_LOCATION) -Wall
LDFLAGS = $(OPENSSL_LIBS_LOCATION) -lssl -lcrypto

all: gmac hmac-sha512 cmac-aes256 poly1305
TESTS=gmac hmac-sha512 cmac-aes256 poly1305

all: $(TESTS)

gmac: gmac.o
hmac-sha512: hmac-sha512.o
Expand All @@ -22,4 +24,12 @@ gmac hmac-sha512 cmac-aes256 poly1305:
$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS)

clean:
$(RM) gmac hmac-sha512 cmac-aes256 poly1305 *.o
$(RM) *.o $(TESTS)

.PHONY: test
test: all
@echo "\nMAC tests:"
@set -e; for tst in $(TESTS); do \
echo "\n"$$tst; \
LD_LIBRARY_PATH=../.. ./$$tst; \
done
19 changes: 13 additions & 6 deletions demos/pkey/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@ CFLAGS = -I../../include -g -Wall
LDFLAGS = -L../..
LDLIBS = -lcrypto

all: EVP_PKEY_EC_keygen EVP_PKEY_RSA_keygen EVP_PKEY_DSA_keygen \
EVP_PKEY_DSA_paramgen EVP_PKEY_DSA_paramvalidate EVP_PKEY_DSA_paramfromdata \
TESTS=EVP_PKEY_EC_keygen EVP_PKEY_RSA_keygen EVP_PKEY_DSA_keygen \
EVP_PKEY_DSA_paramgen EVP_PKEY_DSA_paramvalidate EVP_PKEY_DSA_paramfromdata

all: $(TESTS)

%.o: %.c dsa.inc
$(CC) $(CFLAGS) -c $<
Expand All @@ -30,8 +32,13 @@ EVP_PKEY_DSA_paramvalidate: EVP_PKEY_DSA_paramvalidate.o

EVP_PKEY_DSA_paramfromdata: EVP_PKEY_DSA_paramfromdata.o

test: ;

clean:
$(RM) *.o EVP_PKEY_EC_keygen EVP_PKEY_RSA_keygen EVP_PKEY_DSA_keygen \
EVP_PKEY_DSA_paramgen EVP_PKEY_DSA_paramfromdata EVP_PKEY_DSA_paramvalidate
$(RM) *.o $(TESTS)

.PHONY: test
test: all
@echo "\nPKEY tests:"
@set -e; for tst in $(TESTS); do \
echo "\n"$$tst; \
LD_LIBRARY_PATH=../.. ./$$tst; \
done
16 changes: 12 additions & 4 deletions demos/signature/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ CFLAGS = -I../../include -g -Wall
LDFLAGS = -L../..
LDLIBS = -lcrypto

all: EVP_EC_Signature_demo EVP_DSA_Signature_demo EVP_ED_Signature_demo rsa_pss_direct rsa_pss_hash
TESTS=EVP_EC_Signature_demo EVP_DSA_Signature_demo EVP_ED_Signature_demo rsa_pss_direct rsa_pss_hash

all: $(TESTS)

%.o: %.c
$(CC) $(CFLAGS) -c $<
Expand All @@ -22,7 +24,13 @@ EVP_ED_Signature_demo: EVP_ED_Signature_demo.o
rsa_pss_direct: rsa_pss_direct.o
rsa_pss_hash: rsa_pss_hash.o

test: ;

clean:
$(RM) *.o EVP_EC_Signature_demo EVP_DSA_Signature_demo EVP_ED_Signature_demo rsa_pss_direct rsa_pss_hash
$(RM) *.o $(TESTS)

.PHONY: test
test: all
@echo "\nSignature tests:"
@set -e; for tst in $(TESTS); do \
echo "\n"$$tst; \
LD_LIBRARY_PATH=../.. ./$$tst; \
done
2 changes: 2 additions & 0 deletions demos/sslecho/makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,7 @@ $(PROG): main.c

$(CC) -O0 -g3 -W -Wall -I../../include -L../../ -o $(PROG) main.c -lssl -lcrypto

test:

clean:
rm -rf $(PROG) *.o *.obj

0 comments on commit 66f4782

Please sign in to comment.