ldmc/code-size-benchmark/Makefile
Michael Sippel c856496be7
move header & library for morphism data structures to 'runtime' diretcory
- adapt Makefile for code size benchmark
- write build files to 'target' directory
2025-03-15 18:38:57 +01:00

42 lines
1.8 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

LIB_DIR=$(shell pwd)/lib
TARGETS=posint-dec-to-hex-generated.c posint-dec-to-hex-generated-gcc posint-dec-to-hex-generated-clang posint-dec-to-hex-optimal-gcc posint-dec-to-hex-optimal-clang
all: $(TARGETS)
lib/libmorph_%.so: src/%.c
$(CC) -O3 -shared -o $@ -fPIC -Iinclude $<
ldmc:
cargo install --path ..
posint-dec-to-hex-generated.c: ldmc
ldmc \
"~<PosInt 10 BigEndian>~<Seq~<ValueTerminated '\\0'> <Digit 10>~Char~Ascii~x86.UInt8>" \
"~<PosInt 16 BigEndian>~<Seq~<ValueTerminated '\\0'> <Digit 16>~Char~Ascii~x86.UInt8>" \
../morphisms/*.morphism-base >| target/$@
posint-dec-to-hex-generated-gcc: posint-dec-to-hex-generated.c
gcc -g -Os -flto -o target/$@ -I../morphisms/runtime/include target/$< ../morphisms/runtime/src/*.c
posint-dec-to-hex-generated-clang: posint-dec-to-hex-generated.c
clang -g -Os -flto -o target/$@ -I../morphisms/runtime/include target/$< ../morphisms/runtime/src/*.c
posint-dec-to-hex-optimal-gcc: posint-dec-to-hex-optimal.c
gcc -g -Os -flto -o target/$@ target/$<
posint-dec-to-hex-optimal-clang: posint-dec-to-hex-optimal.c
clang -g -Os -flto -o target/$@ target/$<
code-size-benchmark: posint-dec-to-hex-generated-gcc \
posint-dec-to-hex-generated-clang \
posint-dec-to-hex-optimal-gcc \
posint-dec-to-hex-optimal-clang
INST_COUNT_GEN_GCC=$(shell gdb --batch -ex "file target/posint-dec-to-hex-generated-gcc" -ex "disassemble main" | wc -l)
INST_COUNT_GEN_CLANG=$(shell gdb --batch -ex "file target/posint-dec-to-hex-generated-clang" -ex "disassemble main" | wc -l)
INST_COUNT_OPT_GCC=$(shell gdb --batch -ex "file target/posint-dec-to-hex-optimal-gcc" -ex "disassemble main" | wc -l)
INST_COUNT_OPT_CLANG=$(shell gdb --batch -ex "file target/posint-dec-to-hex-optimal-clang" -ex "disassemble main" | wc -l)
clean:
rm $(TARGETS)
.PHONY: all clean