LIBRARY = libvector.a LIBOBJS = vector.o hashvector.o # This is overridable on command line VECTOR_LEVEL_BITS = 4 default: $(LIBRARY) all: default CFLAGS = -Wall -g -fmax-errors=1 -DVECTOR_LEVEL_BITS=$(VECTOR_LEVEL_BITS) define STDCC .INTERMEDIATE: $1.o CLEANRM += $1.o $1.o: $1.c | $1.h endef $(foreach OBJ,$(LIBOBJS:.o=),$(eval $(call STDCC,$(OBJ)))) CLEANRM += $(LIBRARY) $(LIBRARY): $(LIBOBJS) $(AR) r $@ $^ clean: rm -f $(CLEANRM)