Use a variable for all target objects

Instead of specifying them individually.  This lets included makefiles
(like my audio/Makefile.include) append objects.
This commit is contained in:
Jim Paris 2010-09-28 02:54:23 -04:00
parent 036b80e3c1
commit 6b4d6a9ade
3 changed files with 6 additions and 2 deletions

View File

@ -65,13 +65,13 @@ include $(MC1322X)/src/Makefile.src
# $(SRCLIB) as well as target-specific rules that link $(SRCLIB_ROMVARS)
# Normal targets (wildcard rule):
%_$(BOARD).elf: $(OBJDIR)/%.o $(OBJDIR)/board.a $(MC1322X)/lib/libmc1322x.a $(SRCLIB)
%_$(BOARD).elf: $(OBJDIR)/%.o $(TARGET_OBJ) $(SRCLIB)
$(call pretty,LINK,$@)
$Q$(CC) $(LDFLAGS) -o $@ -Wl,--start-group $^ -lm -Wl,--end-group
# Targets that need space for rom variables:
define build_elf_rule
$(1)_$$(BOARD).elf: $$(OBJDIR)/$(1).o $$(OBJDIR)/board.a $$(MC1322X)/lib/libmc1322x.a $$(SRCLIB_ROMVARS)
$(1)_$$(BOARD).elf: $$(OBJDIR)/$(1).o $$(TARGET_OBJ) $$(SRCLIB_ROMVARS)
$$(call pretty,LINK (romvars),$$@)
$$Q$$(CC) $$(LDFLAGS) -o $$@ -Wl,--start-group $$^ -lm -Wl,--end-group
endef

View File

@ -21,6 +21,8 @@ $(OBJDIR)/board.a: $(OBJDIR)/board.h
$Q$(AR) $(ARFLAGS) $@
endif
TARGET_OBJ += $(OBJDIR)/board.a
# And is built from files in the parent directory
$(OBJDIR)/%.o: %.c $(OBJDIR)/board.h $(FORCE_C_DEPENDS)
$(call pretty,CC,$@)

View File

@ -7,6 +7,8 @@ LIBOBJS ?= $(patsubst %.c,%.o,$(wildcard $(MC1322X)/lib/*.c))
$(MC1322X)/lib/libmc1322x.a: $(MC1322X)/lib/libmc1322x.a($(LIBOBJS))
TARGET_OBJ += $(MC1322X)/lib/libmc1322x.a
ifneq ($(MAKECMDGOALS),clean)
-include $(wildcard $(MC1322X)/lib/*.d)
endif