#*
# Assemble YASM source files into executable programs.
#**

YASM_SRC = $(wildcard *.asm)
YASM_OBJ = ${YASM_SRC:%.asm=%.o}
YASM_LST = ${YASM_SRC:%.asm=%.lst}
YASM_EXE = ${YASM_SRC:%.asm=bin/%}

.PHONY: all run clean distclean cleanAll mostlyclean

all: ${YASM_EXE}

#------------------------------------------------------------------------------

ARGS =

run: ${YASM_EXE}
	for PROG in ${YASM_EXE}; do \
		./$${PROG} ${ARGS}; \
	done

%.o: %.asm
	yasm -g dwarf2 -f elf64 $< -o $@ -l $*.lst

bin/%: %.o
	ld -g -o $@ $<

#------------------------------------------------------------------------------

clean:
	rm -f ${YASM_OBJ}

mostlyclean: clean
	rm -f ${YASM_LST}

distclean cleanAll: mostlyclean
	rm -f ${YASM_EXE}
