# Common build rules, used by the sub modules and their module.mk files # Convenience library target $(MODULE)/lib$(MODULE).a: $(MODULE_OBJS) -$(RM) $@ $(AR) $@ $+ $(RANLIB) $@ # Clean target, removes all object files. This looks a bit hackish, as we have to # copy the content of MODULE_OBJS to another unique variable (the next module.mk # will overwrite it after all). The same for the libMODULE.a library file. MODULE_OBJS-$(MODULE) := $(MODULE_OBJS) MODULE_LIB-$(MODULE) := $(MODULE)/lib$(MODULE).a clean: clean-$(MODULE) clean-$(MODULE): clean-% : -$(RM) $(MODULE_OBJS-$*) $(MODULE_LIB-$*) # Pseudo target for comfort, allows for "make common", "make gui" etc. $(MODULE): $(MODULE_OBJS) # Add convenience library to main OBJS list OBJS += $(MODULE)/lib$(MODULE).a .PHONY: clean-$(MODULE) $(MODULE)