# Makefile for shared TLS helper library on MontaukOS # Copyright (c) 2026 Daniel Hammer MAKEFLAGS += -rR .SUFFIXES: # ---- Toolchain ---- include ../../mk/arch.mk ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) CXX := $(TOOLCHAIN_PREFIX)g++ AR := $(TOOLCHAIN_PREFIX)ar else CXX := g++ AR := ar endif # ---- Paths ---- BEARSSL := ../bearssl LIBC_INC := ../../include/libc PROG_INC := ../../include OBJDIR := obj$(ARCH_SUFFIX) # ---- Compiler flags ---- CXXFLAGS := \ -std=gnu++20 \ -g -O2 -pipe \ -Wall \ -Wextra \ -Wno-unused-parameter \ -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ $(ARCH_CFLAGS) \ $(ARCH_NOFP_FLAGS) \ -I $(PROG_INC) \ -isystem $(LIBC_INC) \ -I $(BEARSSL)/inc \ -isystem ../../../kernel/freestnd-c-hdrs/$(ARCH)/include \ -isystem ../../../kernel/freestnd-cxx-hdrs/$(ARCH)/include # ---- Target ---- TARGET := $(ARCH_OUT)libtls.a .PHONY: all clean all: $(TARGET) $(TARGET): $(OBJDIR)/tls.o @mkdir -p $(dir $@) $(AR) rcs $@ $^ $(OBJDIR)/tls.o: tls.cpp Makefile @mkdir -p $(OBJDIR) $(CXX) $(CXXFLAGS) -c $< -o $@ clean: rm -rf $(OBJDIR) $(TARGET)