6b4d6a9ade
Instead of specifying them individually. This lets included makefiles (like my audio/Makefile.include) append objects.
47 lines
1.2 KiB
Makefile
47 lines
1.2 KiB
Makefile
# -*- makefile -*-
|
|
|
|
ALL_BOARDS = redbee-dev redbee-r1 redbee-usb redbee-econotag quahogcon freescale-ncb
|
|
|
|
OBJDIR = obj_$(BOARD)
|
|
CFLAGS += -I. -I$(OBJDIR) -I$(MC1322X)/board -DBOARD=$(BOARD)
|
|
|
|
# Create directory and board.h include
|
|
$(OBJDIR)/board.h:
|
|
$(call pretty,GEN,$@)
|
|
$(Q)mkdir -p $(OBJDIR)
|
|
$(Q)echo '/* This file was automatically generated */' > $(OBJDIR)/board.h
|
|
$(Q)echo '#include "$(BOARD).h"' >> $(OBJDIR)/board.h
|
|
|
|
# $(OBJDIR)/board.a contains all the objects defined in COBJS
|
|
ifdef COBJS
|
|
$(OBJDIR)/board.a: $(OBJDIR)/board.h $(OBJDIR)/board.a($(addprefix $(OBJDIR)/, $(COBJS)))
|
|
else
|
|
$(OBJDIR)/board.a: $(OBJDIR)/board.h
|
|
$(call pretty,AR (empty),$@)
|
|
$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,$@)
|
|
$Q$(CC) $(CFLAGS) $(CFLAGS_THUMB) -MMD -c -o $@ $<
|
|
@$(FINALIZE_DEPENDENCY)
|
|
|
|
$(OBJDIR)/%.o: %.S $(OBJDIR)/board.h
|
|
$(call pretty,AS,$@)
|
|
$(CC) $(AFLAGS) -MMD -c -o $@ $<
|
|
@$(FINALIZE_DEPENDENCY)
|
|
|
|
$(OBJDIR)/%.dis: $(OBJDIR)/%.o
|
|
$(call pretty,OBJDUMP,$@)
|
|
$Q$(OBJDUMP) -d $< > $@ || rm -f $@
|
|
|
|
ifneq ($(MAKECMDGOALS),clean)
|
|
-include $(wildcard $(OBJDIR)/*.d)
|
|
endif
|
|
|
|
clean::
|
|
rm -rf obj_*
|