The non-recursive automake "distdir" recipe inlines the entire $(DISTFILES)
list into a single shell command. Enumerating every IDE integration file
individually made that list large enough (~123 KB) that the recipe exceeded
the Linux MAX_ARG_STRLEN (128 KB) single-argument exec limit, so "make dist"
failed with:
/bin/bash: Argument list too long
make[2]: *** [distdir-am] Error 127
Replace the per-file EXTRA_DIST enumeration of the IDE directories with one
wholesale "EXTRA_DIST += IDE/<dir>" entry per directory (automake copies the
tree recursively). This collapses ~745 file entries into ~52 directory
entries and shrinks the top-level DISTFILES from ~123 KB to ~97 KB, well
under the limit.
The set of distributed IDE files is unchanged: a before/after "make dist"
diff shows no project file added or removed (only the now-unused include.am
build fragments are gone). Three directories that intentionally omit some
tracked files (apple-universal, MPLABX16, Renesas - private IDE configs,
.gitkeep placeholders, helper scripts) stay enumerated file-by-file.
This is makefile's for creating a wolfCrypt library using the m68k-elf-gcc toolchain and example benchmark/testwolfcrypt application linking to it. The examples and default builds where made to support a MCF5441X board.
Macros to define for use: WOLFSSL_MCF5441X /* arch settings i.e. sizeof long and endianness / WOLFSSL_NETBURNER / for use of NetBurner headers and RNG seed */
To build the wolfssl.a library (settings for wolfCrypt only by default) run "make" from the directory wolfssl-root/IDE/M68K/. By default this outputs the wolfssl.a library to be at $(NBROOT)/lib. This can be adjusted by adjusting the variable OUTPUT in Makefile.
If the macro WOLFSSL_MCF5441X is defined then wolfssl-root/wolfssl/wolfcrypt/settings.h sets the sizeof long and long long along with big endian macro.
The configuration for the build is located in wolfssl-root/IDE/M68K/user_settings.h Along with the default build there is 2 others BUILD_B (smaller resource use), and BUILD_C (faster runtime with more resource use).
RSA speeds of the builds
default: RSA 2048 public 3.333 ops/sec RSA 2048 private 0.190 ops/sec
BUILD_B RSA 2048 public 3.333 ops/sec RSA 2048 private 0.053 ops/sec
BUILD_C RSA 2048 public 7.619 ops/sec RSA 2048 private 0.276 ops/sec
###Building testwolfcrypt/benchmark To build either testwolfcrypt or benchmark first build wolfssl.a, place it in $(NBROOT)/lib and then cd into the respective directory. Running "make" will then create a .s19 application that can be ran on the board.
When running either testwolfcrypt or the benchmark app the first thing they do is loop on calling RandomValid until getting a successful return. This is done in order to wait for a source of entropy. It could take several moments until completed.