mtcute/packages/wasm/lib/Makefile

54 lines
1 KiB
Makefile

.PHONY: all clean
SOURCES = utils/allocator.c \
libdeflate/allocator.c \
libdeflate/deflate_compress.c \
libdeflate/deflate_decompress.c \
libdeflate/gzip_decompress.c \
libdeflate/zlib_compress.c \
libdeflate/adler32.c \
crypto/aes256.c \
crypto/ige256.c \
crypto/ctr256.c \
hash/sha256.c \
hash/sha1.c
WASM_CC ?= clang
CC := $(WASM_CC)
CFLAGS_WASM := \
-target wasm32-unknown-unknown \
-nostdlib -ffreestanding -DFREESTANDING \
-mbulk-memory \
-Wl,--no-entry,--export-dynamic,--lto-O3
CFLAGS := $(CFLAGS_WASM) \
-O3 \
-Qn \
-DNDEBUG \
-mno-exception-handling \
-fdelete-null-pointer-checks \
-fno-stack-protector \
-flto=full \
-fdata-sections \
-ffunction-sections \
-Wl,--gc-sections \
-fno-inline \
-fno-unroll-loops
ifneq ($(OS),Windows_NT)
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Darwin)
export PATH := /opt/homebrew/opt/llvm/bin/:$(PATH)
endif
endif
OUT := ../mtcute.wasm
$(OUT): $(SOURCES)
$(CC) $(CFLAGS) -I . -I utils -o $@ $^
clean:
rm -f $(OUT)
all: $(OUT)