AS := ulmas
LD := ulmld

TestTargets := $(patsubst %.s,%,$(wildcard x*.s))
LibSources  := $(filter-out x%.s,$(wildcard *.s))
LibObjects  := $(patsubst %.s,%.o,$(LibSources))
Lib         := libulm.a

.PHONY: all clean

all:    $(TestTargets) $(Lib)

clean:
        $(RM) $(TestTargets) *.o $(Lib)

$(TestTargets): % : %.o $(Lib)
        $(LD) -o $@ $^

$(Lib): $(LibObjects)
        ar cru $@ $^
        ulmranlib $@
