include $(TOPDIR)/config.mk
-ELF-$(CONFIG_API) += demo
-BIN-$(CONFIG_API) += demo.bin
-ELF := $(ELF-y)
-BIN := $(BIN-y)
+# Resulting ELF and binary exectuables will be named demo and demo.bin
+OUTPUT-$(CONFIG_API) = $(obj)demo
#CFLAGS += -v
-COBJS-$(CONFIG_API) += $(ELF:=.o)
SOBJS-$(CONFIG_API) += crt0.o
+COBJS-$(CONFIG_API) += demo.o
ifeq ($(ARCH),ppc)
SOBJS-$(CONFIG_API) += ppcstring.o
endif
+
+OUTPUT := $(OUTPUT-y)
COBJS := $(COBJS-y)
SOBJS := $(SOBJS-y)
-LIB = $(obj)libglue.a
-LIBCOBJS-$(CONFIG_API) += glue.o crc32.o ctype.o string.o vsprintf.o \
- libgenwrap.o
+LIBCOBJS-$(CONFIG_API) += glue.o
+LIBCOBJS-$(CONFIG_API) += crc32.o
+LIBCOBJS-$(CONFIG_API) += ctype.o
+LIBCOBJS-$(CONFIG_API) += string.o
+LIBCOBJS-$(CONFIG_API) += vsprintf.o
+LIBCOBJS-$(CONFIG_API) += libgenwrap.o
LIBCOBJS := $(LIBCOBJS-y)
-LIBOBJS = $(addprefix $(obj),$(SOBJS) $(LIBCOBJS))
+LIBOBJS += $(addprefix $(obj),$(SOBJS))
+LIBOBJS += $(addprefix $(obj),$(COBJS))
+LIBOBJS += $(addprefix $(obj),$(LIBCOBJS))
-SRCS := $(COBJS:.o=.c) $(LIBCOBJS:.o=.c) $(SOBJS:.o=.S)
+SRCS += $(COBJS:.o=.c)
+SRCS += $(LIBCOBJS:.o=.c)
+SRCS += $(SOBJS:.o=.S)
OBJS := $(addprefix $(obj),$(COBJS))
-ELF := $(addprefix $(obj),$(ELF))
-BIN := $(addprefix $(obj),$(BIN))
gcclibdir := $(shell dirname `$(CC) -print-libgcc-file-name`)
CPPFLAGS += -I..
-all: $(obj).depend $(OBJS) $(LIB) $(ELF) $(BIN)
+all: $(obj).depend $(OBJS) $(OUTPUT)
#########################################################################
-$(LIB): $(obj).depend $(LIBOBJS)
- $(AR) $(ARFLAGS) $@ $(LIBOBJS)
-
-$(ELF):
-$(obj)%: $(obj)%.o $(LIB)
- $(LD) $(obj)crt0.o -Ttext $(LOAD_ADDR) \
- -o $@ $< $(LIB) \
- -L$(gcclibdir) -lgcc
-
-$(BIN):
-$(obj)%.bin: $(obj)%
- $(OBJCOPY) -O binary $< $@ 2>/dev/null
+
+$(OUTPUT): $(LIBOBJS)
+ $(LD) -Ttext $(LOAD_ADDR) -o $@ $^ -L$(gcclibdir) -lgcc
+ $(OBJCOPY) -O binary $@ $(OUTPUT).bin 2>/dev/null
$(obj)crc32.c:
@rm -f $(obj)crc32.c