From a627a489e48cde75f80446e75d057fc1f12a0b98 Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Thu, 9 Jun 2016 00:30:17 -0400 Subject: hash.c triggers gcc's strict-aliasing warnings. --- GNUmakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'GNUmakefile') diff --git a/GNUmakefile b/GNUmakefile index 0b3647b..c37d142 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -164,7 +164,7 @@ CFLAGS += -DRPC_CLIENT=${RPC_CLIENT_FLAG} endif TFMDIR := $(abspath ../thirdparty/libtfm) -CFLAGS += -g3 -Wall -std=c99 -I${TFMDIR} +CFLAGS += -g3 -Wall -std=c99 -Wno-strict-aliasing -I${TFMDIR} LDFLAGS := -g3 -L${TFMDIR} -ltfm CFLAGS += -DHAL_STATIC_HASH_STATE_BLOCKS=${STATIC_HASH_STATE_BLOCKS} -- cgit v1.2.3 From b3744cda1a0fab9ded7a406594b94375e311ca19 Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Fri, 10 Jun 2016 02:32:54 -0400 Subject: Another attempt to clean up the libhal makefile hairball. --- GNUmakefile | 113 +++++++++++++++++++++++++++++++----------------------------- 1 file changed, 59 insertions(+), 54 deletions(-) (limited to 'GNUmakefile') diff --git a/GNUmakefile b/GNUmakefile index c37d142..dbf71f9 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -37,24 +37,42 @@ STATIC_PKEY_STATE_BLOCKS = 6 INC = hal.h hal_internal.h LIB = libhal.a -USAGE = "usage: make [IO_BUS=eim|i2c|fmc] [RPC_CLIENT=local|remote|mixed] [RPC_SERVER=yes] [KS=mmap|volatile|flash]" +# Error checking on known control options, some of which allow the user entirely too much rope. + +USAGE := "usage: make [IO_BUS=eim|i2c|fmc] [RPC_CLIENT=none|local|remote|mixed] [RPC_SERVER=no|yes] [KS=volatile|mmap|flash] [RPC_TRANSPORT=none|loopback|serial|daemon]" + +IO_BUS ?= eim +KS ?= mmap +RPC_CLIENT ?= none +RPC_SERVER ?= $(if $(filter local,${RPC_CLIENT}),yes,no) +RPC_TRANSPORT ?= daemon + +ifeq (,$(and \ + $(filter none eim i2c fmc ,${IO_BUS}),\ + $(filter none local remote mixed ,${RPC_CLIENT}),\ + $(filter no yes ,${RPC_SERVER}),\ + $(filter volatile mmap flash ,${KS}),\ + $(filter none loopback serial daemon ,${RPC_TRANSPORT}))) + $(error ${USAGE}) +endif + +ifneq (${RPC_SERVER},$(if $(filter local,${RPC_CLIENT}),yes,no)) + $(error RPC_SERVER=yes is probably only useful with RPC_CLIENT=local) +endif + +WANT_RTL_CODE := $(if $(filter none local,${RPC_CLIENT}),yes,no) -OBJ = errorstrings.o -CORE_OBJ = core.o ${HASH_OBJ} ${MISC_OBJ} ${PKEY_OBJ} ${PKEY2_OBJ} ${KS_OBJ} ${IO_OBJ} ${MKMIF_OBJ} -HASH_OBJ = hash.o -MISC_OBJ = csprng.o pbkdf2.o -PKEY_OBJ = asn1.o ecdsa.o rsa.o -PKEY2_OBJ = aes_keywrap.o modexp.o -MKMIF_OBJ = mkmif.o +OBJ = errorstrings.o hash.o asn1.o ecdsa.o rsa.o ${KS_OBJ} +CORE_OBJ = core.o csprng.o pbkdf2.o aes_keywrap.o modexp.o mkmif.o ${IO_OBJ} # I/O bus to the FPGA # -# IO_BUS = eim | i2c | fmc +# IO_BUS = none | eim | i2c | fmc +# none: no FPGA I/O bus # eim: EIM bus from Novena # i2c: older I2C bus from Novena # fmc: FMC bus from dev-bridge and alpha boards -IO_BUS ?= eim ifeq (${IO_BUS},eim) IO_OBJ = hal_io_eim.o novena-eim.o else ifeq (${IO_BUS},i2c) @@ -80,7 +98,7 @@ endif # and we haven't yet written the flash code for the bridge board. KS_OBJ = ks.o -KS ?= mmap + ifeq (${KS},mmap) KS_OBJ += ks_mmap.o else ifeq (${KS},volatile) @@ -89,80 +107,67 @@ else ifeq (${KS},flash) KS_OBJ += ks_flash.o endif -# RPC_CLIENT = local | remote | mixed +# RPC_CLIENT = none | local | remote | mixed +# none: Build without RPC client # local: Build for Novena or dev-bridge, access FPGA cores directly. # remote: Build for other host, communicate with RPC server. # mixed: Do hashing locally in software, other functions remotely. # -# RPC_SERVER = yes +# RPC_SERVER = no | yes # # RPC_TRANSPORT = loopback | serial | daemon # loopback: communicate over loopback socket on Novena # serial: communicate over USB in serial pass-through mode # daemon: communicate over USB via a daemon, to arbitrate multiple clients -RPC_TRANSPORT ?= daemon +ifneq (${RPC_CLIENT},none) + OBJ += rpc_api.o xdr.o +endif + +ifeq (${RPC_TRANSPORT},serial) + OBJ += slip.o +endif -RPC_CLIENT_OBJ = rpc_api.o rpc_client.o xdr.o +RPC_CLIENT_OBJ = rpc_client.o ifeq (${RPC_TRANSPORT},loopback) RPC_CLIENT_OBJ += rpc_client_loopback.o else ifeq (${RPC_TRANSPORT},serial) - RPC_CLIENT_OBJ += rpc_client_serial.o slip.o + RPC_CLIENT_OBJ += rpc_client_serial.o else ifeq (${RPC_TRANSPORT},daemon) RPC_CLIENT_OBJ += rpc_client_daemon.o endif RPC_DISPATCH_OBJ = rpc_hash.o rpc_misc.o rpc_pkey.o -RPC_SERVER_OBJ = rpc_api.o rpc_server.o xdr.o ${RPC_DISPATCH_OBJ} +RPC_SERVER_OBJ = rpc_server.o ifeq (${RPC_TRANSPORT},loopback) RPC_SERVER_OBJ += rpc_server_loopback.o else ifeq (${RPC_TRANSPORT},serial) - RPC_SERVER_OBJ += rpc_server_serial.o slip.o + RPC_SERVER_OBJ += rpc_server_serial.o endif -# Not building any of the RPC stuff, access FPGA cores directly. -ifndef RPC_CLIENT - ifndef RPC_SERVER - OBJ += ${CORE_OBJ} - endif +ifeq (${RPC_SERVER},yes) + OBJ += ${RPC_SERVER_OBJ} endif -# Building the RPC server. -ifdef RPC_SERVER - OBJ += ${CORE_OBJ} ${RPC_SERVER_OBJ} -endif - -# Building the RPC client, in all its variations. -ifdef RPC_CLIENT - OBJ += ${RPC_CLIENT_OBJ} - ifeq (${RPC_CLIENT},local) - OBJ += ${CORE_OBJ} ${RPC_DISPATCH_OBJ} - else - CFLAGS += -DHAL_RSA_USE_MODEXP=0 - OBJ += ${PKEY_OBJ} - ifeq (${RPC_CLIENT},mixed) - KS = volatile - OBJ += ${HASH_OBJ} ${PKEY2_OBJ} ${RPC_DISPATCH_OBJ} ${KS_OBJ} - endif - endif -endif - -# RPC client locality, for rpc_client.c. This has to be kept in sync with -# hal_internal.h. Yeah, it's ugly, but the C preprocessor can only -# compare integers, not strings. - -ifeq (${RPC_CLIENT},local) - RPC_CLIENT_FLAG = 0 +ifeq (${RPC_CLIENT},none) + OBJ += ${CORE_OBJ} +else ifeq (${RPC_CLIENT},local) + OBJ += ${CORE_OBJ} ${RPC_CLIENT_OBJS} ${RPC_DISPATCH_OBJS} + CFLAGS += -DRPC_CLIENT=RPC_CLIENT_LOCAL else ifeq (${RPC_CLIENT},remote) - RPC_CLIENT_FLAG = 1 + OBJ += ${RPC_CLIENT_OBJS} + CFLAGS += -DRPC_CLIENT=RPC_CLIENT_REMOTE -DHAL_RSA_USE_MODEXP=0 else ifeq (${RPC_CLIENT},mixed) - RPC_CLIENT_FLAG = 2 -endif -ifdef RPC_CLIENT_FLAG -CFLAGS += -DRPC_CLIENT=${RPC_CLIENT_FLAG} + OBJ += ${RPC_CLIENT_OBJS} ${RPC_DISPATCH_OBJS} + CFLAGS += -DRPC_CLIENT=RPC_CLIENT_MIXED -DHAL_RSA_USE_MODEXP=0 + KS = volatile endif +# RPC client locality, for rpc_client.c. Value passed here is tested +# as an integer in the C preprocessor, so the symbols used here need +# to be defined as macros in the C code, not enum tokens. + TFMDIR := $(abspath ../thirdparty/libtfm) CFLAGS += -g3 -Wall -std=c99 -Wno-strict-aliasing -I${TFMDIR} LDFLAGS := -g3 -L${TFMDIR} -ltfm -- cgit v1.2.3 From d3c389455f3e4084968da796d33e12d3fb32f85b Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Fri, 10 Jun 2016 02:47:16 -0400 Subject: Helps to get the makefile variable names right. --- GNUmakefile | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'GNUmakefile') diff --git a/GNUmakefile b/GNUmakefile index dbf71f9..1862cb8 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -119,6 +119,10 @@ endif # loopback: communicate over loopback socket on Novena # serial: communicate over USB in serial pass-through mode # daemon: communicate over USB via a daemon, to arbitrate multiple clients +# +# RPC client locality flags passed here via CFLAGS are tested as +# integers in the C preprocessor, so the symbols we pass must be +# defined as macros in the C code, not enum tokens. ifneq (${RPC_CLIENT},none) OBJ += rpc_api.o xdr.o @@ -153,21 +157,17 @@ endif ifeq (${RPC_CLIENT},none) OBJ += ${CORE_OBJ} else ifeq (${RPC_CLIENT},local) - OBJ += ${CORE_OBJ} ${RPC_CLIENT_OBJS} ${RPC_DISPATCH_OBJS} + OBJ += ${CORE_OBJ} ${RPC_CLIENT_OBJ} ${RPC_DISPATCH_OBJ} CFLAGS += -DRPC_CLIENT=RPC_CLIENT_LOCAL else ifeq (${RPC_CLIENT},remote) - OBJ += ${RPC_CLIENT_OBJS} + OBJ += ${RPC_CLIENT_OBJ} CFLAGS += -DRPC_CLIENT=RPC_CLIENT_REMOTE -DHAL_RSA_USE_MODEXP=0 else ifeq (${RPC_CLIENT},mixed) - OBJ += ${RPC_CLIENT_OBJS} ${RPC_DISPATCH_OBJS} + OBJ += ${RPC_CLIENT_OBJ} ${RPC_DISPATCH_OBJ} CFLAGS += -DRPC_CLIENT=RPC_CLIENT_MIXED -DHAL_RSA_USE_MODEXP=0 KS = volatile endif -# RPC client locality, for rpc_client.c. Value passed here is tested -# as an integer in the C preprocessor, so the symbols used here need -# to be defined as macros in the C code, not enum tokens. - TFMDIR := $(abspath ../thirdparty/libtfm) CFLAGS += -g3 -Wall -std=c99 -Wno-strict-aliasing -I${TFMDIR} LDFLAGS := -g3 -L${TFMDIR} -ltfm -- cgit v1.2.3 From 290d6ff054e2b68717eacc15ddaecae080d1ad3d Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Sun, 12 Jun 2016 18:31:55 -0400 Subject: Turn hardware modexp off again, as it has problems with some of the key sizes hsmbully tries. --- GNUmakefile | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) (limited to 'GNUmakefile') diff --git a/GNUmakefile b/GNUmakefile index 1862cb8..04efc1f 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -39,20 +39,22 @@ LIB = libhal.a # Error checking on known control options, some of which allow the user entirely too much rope. -USAGE := "usage: make [IO_BUS=eim|i2c|fmc] [RPC_CLIENT=none|local|remote|mixed] [RPC_SERVER=no|yes] [KS=volatile|mmap|flash] [RPC_TRANSPORT=none|loopback|serial|daemon]" +USAGE := "usage: ${MAKE} [IO_BUS=eim|i2c|fmc] [RPC_CLIENT=none|local|remote|mixed] [RPC_SERVER=no|yes] [KS=volatile|mmap|flash] [RPC_TRANSPORT=none|loopback|serial|daemon] [MODEXP_CORE=no|yes]" IO_BUS ?= eim KS ?= mmap RPC_CLIENT ?= none RPC_SERVER ?= $(if $(filter local,${RPC_CLIENT}),yes,no) RPC_TRANSPORT ?= daemon +MODEXP_CORE ?= no ifeq (,$(and \ $(filter none eim i2c fmc ,${IO_BUS}),\ $(filter none local remote mixed ,${RPC_CLIENT}),\ $(filter no yes ,${RPC_SERVER}),\ $(filter volatile mmap flash ,${KS}),\ - $(filter none loopback serial daemon ,${RPC_TRANSPORT}))) + $(filter none loopback serial daemon ,${RPC_TRANSPORT}),\ + $(filter no yes ,${MODEXP_CORE}))) $(error ${USAGE}) endif @@ -60,9 +62,25 @@ ifneq (${RPC_SERVER},$(if $(filter local,${RPC_CLIENT}),yes,no)) $(error RPC_SERVER=yes is probably only useful with RPC_CLIENT=local) endif -WANT_RTL_CODE := $(if $(filter none local,${RPC_CLIENT}),yes,no) +# Whether the RSA code should use the ModExp | ModExpS6 | ModExpA7 core. + +ifeq (${MODEXP_CORE},yes) + RSA_USE_MODEXP_CORE := 1 +else + RSA_USE_MODEXP_CORE := 0 +endif + +# Object files to build, initialized with ones we always want. +# There's a balance here between skipping files we don't strictly +# need and reducing the number of unnecessary conditionals in this +# makefile, so the working definition of "always want" is sometimes +# just "building this is harmless even if we don't use it." OBJ = errorstrings.o hash.o asn1.o ecdsa.o rsa.o ${KS_OBJ} + +# Object files to build when we're on a platform with direct access +# to our hardware (Verilog) cores. + CORE_OBJ = core.o csprng.o pbkdf2.o aes_keywrap.o modexp.o mkmif.o ${IO_OBJ} # I/O bus to the FPGA @@ -156,9 +174,10 @@ endif ifeq (${RPC_CLIENT},none) OBJ += ${CORE_OBJ} + CFLAGS += -DHAL_RSA_USE_MODEXP=${RSA_USE_MODEXP_CORE} else ifeq (${RPC_CLIENT},local) OBJ += ${CORE_OBJ} ${RPC_CLIENT_OBJ} ${RPC_DISPATCH_OBJ} - CFLAGS += -DRPC_CLIENT=RPC_CLIENT_LOCAL + CFLAGS += -DRPC_CLIENT=RPC_CLIENT_LOCAL -DHAL_RSA_USE_MODEXP=${RSA_USE_MODEXP_CORE} else ifeq (${RPC_CLIENT},remote) OBJ += ${RPC_CLIENT_OBJ} CFLAGS += -DRPC_CLIENT=RPC_CLIENT_REMOTE -DHAL_RSA_USE_MODEXP=0 @@ -232,3 +251,6 @@ tags: TAGS TAGS: *.[ch] tests/*.[ch] utils/*.[ch] etags $^ + +help usage: + @echo ${USAGE} -- cgit v1.2.3 From 282617c06a8b5eff135d1cf6f1d6fe148f632c5a Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Tue, 14 Jun 2016 18:57:06 -0400 Subject: Collapse RPC_CLIENT and RPC_SERVER makefile settings into a single RPC_MODE setting. --- GNUmakefile | 117 ++++++++++++++++++++++++++---------------------------------- 1 file changed, 51 insertions(+), 66 deletions(-) (limited to 'GNUmakefile') diff --git a/GNUmakefile b/GNUmakefile index 04efc1f..b5f1f2b 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -39,32 +39,28 @@ LIB = libhal.a # Error checking on known control options, some of which allow the user entirely too much rope. -USAGE := "usage: ${MAKE} [IO_BUS=eim|i2c|fmc] [RPC_CLIENT=none|local|remote|mixed] [RPC_SERVER=no|yes] [KS=volatile|mmap|flash] [RPC_TRANSPORT=none|loopback|serial|daemon] [MODEXP_CORE=no|yes]" +USAGE := "usage: ${MAKE} [IO_BUS=eim|i2c|fmc] [RPC_MODE=none|server|client-simple|client-mixed] [KS=volatile|mmap|flash] [RPC_TRANSPORT=none|loopback|serial|daemon] [MODEXP_CORE=no|yes]" IO_BUS ?= eim -KS ?= mmap -RPC_CLIENT ?= none -RPC_SERVER ?= $(if $(filter local,${RPC_CLIENT}),yes,no) +KS ?= volatile +RPC_MODE ?= none RPC_TRANSPORT ?= daemon MODEXP_CORE ?= no ifeq (,$(and \ - $(filter none eim i2c fmc ,${IO_BUS}),\ - $(filter none local remote mixed ,${RPC_CLIENT}),\ - $(filter no yes ,${RPC_SERVER}),\ - $(filter volatile mmap flash ,${KS}),\ - $(filter none loopback serial daemon ,${RPC_TRANSPORT}),\ - $(filter no yes ,${MODEXP_CORE}))) + $(filter none eim i2c fmc ,${IO_BUS}),\ + $(filter none server client-simple client-mixed ,${RPC_MODE}),\ + $(filter volatile mmap flash ,${KS}),\ + $(filter none loopback serial daemon ,${RPC_TRANSPORT}),\ + $(filter no yes ,${MODEXP_CORE}))) $(error ${USAGE}) endif -ifneq (${RPC_SERVER},$(if $(filter local,${RPC_CLIENT}),yes,no)) - $(error RPC_SERVER=yes is probably only useful with RPC_CLIENT=local) -endif +$(info Building libhal with configuration IO_BUS=${IO_BUS} RPC_MODE=${RPC_MODE} KS=${KS} RPC_TRANSPORT=${RPC_TRANSPORT} MODEXP_CORE=${MODEXP_CORE}) # Whether the RSA code should use the ModExp | ModExpS6 | ModExpA7 core. -ifeq (${MODEXP_CORE},yes) +ifeq "${MODEXP_CORE}" "yes" RSA_USE_MODEXP_CORE := 1 else RSA_USE_MODEXP_CORE := 0 @@ -86,16 +82,16 @@ CORE_OBJ = core.o csprng.o pbkdf2.o aes_keywrap.o modexp.o mkmif.o ${IO_OBJ} # I/O bus to the FPGA # # IO_BUS = none | eim | i2c | fmc -# none: no FPGA I/O bus -# eim: EIM bus from Novena -# i2c: older I2C bus from Novena -# fmc: FMC bus from dev-bridge and alpha boards +# none: No FPGA I/O bus +# eim: EIM bus from Novena +# i2c: Older I2C bus from Novena +# fmc: FMC bus from dev-bridge and alpha boards -ifeq (${IO_BUS},eim) +ifeq "${IO_BUS}" "eim" IO_OBJ = hal_io_eim.o novena-eim.o -else ifeq (${IO_BUS},i2c) +else ifeq "${IO_BUS}" "i2c" IO_OBJ = hal_io_i2c.o -else ifeq (${IO_BUS},fmc) +else ifeq "${IO_BUS}" "fmc" IO_OBJ = hal_io_fmc.o endif @@ -103,7 +99,7 @@ endif # hard-to-debug function pointer errors. OTOH, if we're building for Linux # (even on the Novena), we want to make it possible to build a shared library. -ifneq (${IO_BUS},fmc) +ifneq "${IO_BUS}" "fmc" CFLAGS += -fPIC endif @@ -117,71 +113,67 @@ endif KS_OBJ = ks.o -ifeq (${KS},mmap) +ifeq "${KS}" "mmap" KS_OBJ += ks_mmap.o -else ifeq (${KS},volatile) +else ifeq "${KS}" "volatile" KS_OBJ += ks_volatile.o -else ifeq (${KS},flash) +else ifeq "${KS}" "flash" KS_OBJ += ks_flash.o endif -# RPC_CLIENT = none | local | remote | mixed -# none: Build without RPC client -# local: Build for Novena or dev-bridge, access FPGA cores directly. -# remote: Build for other host, communicate with RPC server. -# mixed: Do hashing locally in software, other functions remotely. -# -# RPC_SERVER = no | yes +# RPC_MODE = none | server | client-simple | client-mixed +# none: Build without RPC client, use cores directly. +# server: Build for server side of RPC (HSM), use cores directly. +# client-simple: Build for other host, communicate with cores via RPC server. +# client-mixed: Like client-simple but do hashing locally in software and +# support a local keystore (for PKCS #11 public keys, etc) # # RPC_TRANSPORT = loopback | serial | daemon -# loopback: communicate over loopback socket on Novena -# serial: communicate over USB in serial pass-through mode -# daemon: communicate over USB via a daemon, to arbitrate multiple clients +# loopback: Communicate over loopback socket on Novena +# serial: Communicate over USB in serial pass-through mode +# daemon: Communicate over USB via a daemon, to arbitrate multiple clients # -# RPC client locality flags passed here via CFLAGS are tested as -# integers in the C preprocessor, so the symbols we pass must be -# defined as macros in the C code, not enum tokens. +# Note that RPC_MODE setting also controls the RPC_CLIENT setting passed to the C +# preprocessor via CFLAGS. Whatever we pass here must evaluate to an integer in +# the C preprocessor: we can use symbolic names so long as they're defined as macros +# in the C code, but we can't use things like C enum symbols. -ifneq (${RPC_CLIENT},none) +ifneq "${RPC_MODE}" "none" OBJ += rpc_api.o xdr.o endif -ifeq (${RPC_TRANSPORT},serial) +ifeq "${RPC_TRANSPORT}" "serial" OBJ += slip.o endif RPC_CLIENT_OBJ = rpc_client.o -ifeq (${RPC_TRANSPORT},loopback) +ifeq "${RPC_TRANSPORT}" "loopback" RPC_CLIENT_OBJ += rpc_client_loopback.o -else ifeq (${RPC_TRANSPORT},serial) +else ifeq "${RPC_TRANSPORT}" "serial" RPC_CLIENT_OBJ += rpc_client_serial.o -else ifeq (${RPC_TRANSPORT},daemon) +else ifeq "${RPC_TRANSPORT}" "daemon" RPC_CLIENT_OBJ += rpc_client_daemon.o endif RPC_DISPATCH_OBJ = rpc_hash.o rpc_misc.o rpc_pkey.o RPC_SERVER_OBJ = rpc_server.o -ifeq (${RPC_TRANSPORT},loopback) +ifeq "${RPC_TRANSPORT}" "loopback" RPC_SERVER_OBJ += rpc_server_loopback.o -else ifeq (${RPC_TRANSPORT},serial) +else ifeq "${RPC_TRANSPORT}" "serial" RPC_SERVER_OBJ += rpc_server_serial.o endif -ifeq (${RPC_SERVER},yes) - OBJ += ${RPC_SERVER_OBJ} -endif - -ifeq (${RPC_CLIENT},none) +ifeq "${RPC_MODE}" "none" OBJ += ${CORE_OBJ} CFLAGS += -DHAL_RSA_USE_MODEXP=${RSA_USE_MODEXP_CORE} -else ifeq (${RPC_CLIENT},local) - OBJ += ${CORE_OBJ} ${RPC_CLIENT_OBJ} ${RPC_DISPATCH_OBJ} +else ifeq "${RPC_MODE}" "server" + OBJ += ${CORE_OBJ} ${RPC_SERVER_OBJ} ${RPC_CLIENT_OBJ} ${RPC_DISPATCH_OBJ} CFLAGS += -DRPC_CLIENT=RPC_CLIENT_LOCAL -DHAL_RSA_USE_MODEXP=${RSA_USE_MODEXP_CORE} -else ifeq (${RPC_CLIENT},remote) +else ifeq "${RPC_MODE}" "client-simple" OBJ += ${RPC_CLIENT_OBJ} CFLAGS += -DRPC_CLIENT=RPC_CLIENT_REMOTE -DHAL_RSA_USE_MODEXP=0 -else ifeq (${RPC_CLIENT},mixed) +else ifeq "${RPC_MODE}" "client-mixed" OBJ += ${RPC_CLIENT_OBJ} ${RPC_DISPATCH_OBJ} CFLAGS += -DRPC_CLIENT=RPC_CLIENT_MIXED -DHAL_RSA_USE_MODEXP=0 KS = volatile @@ -199,24 +191,17 @@ all: ${LIB} cd tests; ${MAKE} CFLAGS='${CFLAGS} -I..' LDFLAGS='${LDFLAGS}' $@ cd utils; ${MAKE} CFLAGS='${CFLAGS} -I..' LDFLAGS='${LDFLAGS}' $@ -local: - ${MAKE} RPC_CLIENT=local RPC_TRANSPORT=none - client: - ${MAKE} RPC_CLIENT=remote + ${MAKE} RPC_MODE=client-simple mixed: - ${MAKE} RPC_CLIENT=mixed KS=volatile + ${MAKE} RPC_MODE=client-mixed server: - ${MAKE} RPC_SERVER=yes - -loopback: - ${MAKE} RPC_CLIENT=remote RPC_SERVER=yes RPC_TRANSPORT=loopback + ${MAKE} RPC_MODE=server daemon: cryptech_rpcd -# ${MAKE} RPC_CLIENT=mixed RPC_TRANSPORT=daemon - ${MAKE} RPC_CLIENT=remote RPC_TRANSPORT=daemon + ${MAKE} RPC_MODE=client-mixed RPC_TRANSPORT=daemon cryptech_rpcd: daemon.o slip.o rpc_serial.o xdr.o ${CC} ${CFLAGS} -o $@ $^ ${LDFLAGS} @@ -236,7 +221,7 @@ last_gasp_pin_internal.h: ./utils/last_gasp_default_pin >$@ test: all - export RPC_CLIENT RPC_SERVER + export RPC_MODE cd tests; ${MAKE} -k $@ clean: -- cgit v1.2.3 From 1c3e4894ea9f1a6f9bc6602e6454a6efd9562efa Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Tue, 14 Jun 2016 21:01:11 -0400 Subject: Doh, don't build RPC client transport code when we're building the server library, even if the old makefile (sometimes) did do that. --- GNUmakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'GNUmakefile') diff --git a/GNUmakefile b/GNUmakefile index b5f1f2b..14e94c6 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -168,7 +168,7 @@ ifeq "${RPC_MODE}" "none" OBJ += ${CORE_OBJ} CFLAGS += -DHAL_RSA_USE_MODEXP=${RSA_USE_MODEXP_CORE} else ifeq "${RPC_MODE}" "server" - OBJ += ${CORE_OBJ} ${RPC_SERVER_OBJ} ${RPC_CLIENT_OBJ} ${RPC_DISPATCH_OBJ} + OBJ += ${CORE_OBJ} ${RPC_SERVER_OBJ} ${RPC_DISPATCH_OBJ} CFLAGS += -DRPC_CLIENT=RPC_CLIENT_LOCAL -DHAL_RSA_USE_MODEXP=${RSA_USE_MODEXP_CORE} else ifeq "${RPC_MODE}" "client-simple" OBJ += ${RPC_CLIENT_OBJ} -- cgit v1.2.3