liblinen.so: src/thread_create.o src/thread_finish.o src/lock_acquire.o src/lock_release.o
	gcc -shared -o $@ $^

src/%.o: src/%.asm
	nasm -f elf64 $<

tests/%.run: tests/%.c liblinen.so linen.h
	gcc -L . -llinen -I . -o $@ $<

tests: tests/test01.run
	LD_LIBRARY_PATH=. ./tests/test01.run

.PHONY: clean
clean:
	rm -f tests/*.run
	rm -f liblinen.so
	rm -f src/*.o