aboutsummaryrefslogtreecommitdiff
path: root/common.rules
blob: 19c5307bdc5961ca6a1e416d171854b70d4dba9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 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)