##### Build defaults ##### CC = clang TARGET = litls.so PREFIX = /usr/local CFLAGS = -O3 -Wall -pedantic -DNDEBUG -fPIC LUA_INCLUDE_DIR = $(PREFIX)/include/luajit-2.1 BUILD_CFLAGS = -I$(LUA_INCLUDE_DIR) -I. -Ibearssl -Ix509 # BearSSL files compile with relaxed warnings (upstream code) BEARSSL_CFLAGS = -O3 -DNDEBUG -fPIC -I. -Ibearssl -Wno-incompatible-function-pointer-types -Wno-incompatible-pointer-types-discards-qualifiers OBJS = litls_base64.o litls_rng.o \ litls_sha1.o litls_sha256.o litls_sha384.o litls_sha512.o \ litls_hmac.o litls_hkdf.o \ litls_chacha20.o litls_poly1305.o litls_chacha20poly1305.o \ litls_x25519.o litls_ed25519.o \ litls_aes.o litls_gcm.o \ litls_ecdsa_p256.o litls_ecdsa_p384.o litls_rsa_verify.o \ litls_pem_encode.o litls_openssh.o \ litls_lua.o X509_OBJS = x509_asn1.o x509_parse.o x509_verify.o x509_csr.o TLS13_OBJS = tls13_record.o tls13_keys.o tls13_handshake.o tls13_client.o tls13_server.o # BearSSL objects are discovered dynamically from bearssl/ sources BEARSSL_SRCS = $(wildcard bearssl/*.c) BEARSSL_OBJS = $(patsubst bearssl/%.c,bearssl_%.o,$(BEARSSL_SRCS)) .PHONY: all clean .c.o: $(CC) -c $(CFLAGS) $(CPPFLAGS) $(BUILD_CFLAGS) -o $@ $< bearssl_%.o: bearssl/%.c $(CC) -c $(BEARSSL_CFLAGS) -o $@ $< x509_%.o: x509/%.c $(CC) -c $(CFLAGS) $(CPPFLAGS) $(BUILD_CFLAGS) -o $@ $< tls13_%.o: tls13/%.c $(CC) -c $(CFLAGS) $(CPPFLAGS) $(BUILD_CFLAGS) -o $@ $< all: $(TARGET) $(TARGET): $(OBJS) $(BEARSSL_OBJS) $(X509_OBJS) $(TLS13_OBJS) clean: rm -f *.o $(TARGET)