mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 22:20:45 +00:00
api_examples/Makefile: General cleanup
* Remove symlinking of files located outside api_examples/ * Auto generate dependencies for files located outside api_examples/ * Update names of variables to be similar to those in tools/Makefile * Fix out of tree build error Dependencies are calculated for all files in the SRCS variable. Previously, the SRCS variable contained files which were symlinked into the api_examples/ directory. These symlinked files did not exist when dependencies were calculated when building out of tree. This resulted in errors such as: make[1]: *** No rule to make target `/work/wd/tmp-ppc/api_examples/.depend', needed by `_depend'. Stop. make[1]: Leaving directory `/home/wd/git/u-boot/work/api_examples' make: *** [depend] Error 2 Since symlinked source files are no longer used, this bug no longer exists. Signed-off-by: Peter Tyser <ptyser@xes-inc.com> Acked-by: Rafal Jaworowski <raj@semihalf.com>
This commit is contained in:
parent
522f6f02ad
commit
876b3cef53
3 changed files with 30 additions and 51 deletions
1
Makefile
1
Makefile
|
@ -3627,7 +3627,6 @@ clobber: clean
|
|||
@rm -f $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm
|
||||
@[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -name "*" -type l -print | xargs rm -f
|
||||
@[ ! -d $(obj)onenand_ipl ] || find $(obj)onenand_ipl -name "*" -type l -print | xargs rm -f
|
||||
@[ ! -d $(obj)api_examples ] || find $(obj)api_examples -name "*" -type l -print | xargs rm -f
|
||||
|
||||
ifeq ($(OBJTREE),$(SRCTREE))
|
||||
mrproper \
|
||||
|
|
5
api_examples/.gitignore
vendored
5
api_examples/.gitignore
vendored
|
@ -1,7 +1,2 @@
|
|||
crc32.c
|
||||
ctype.c
|
||||
demo
|
||||
demo.bin
|
||||
ppcstring.S
|
||||
string.c
|
||||
vsprintf.c
|
||||
|
|
|
@ -31,69 +31,54 @@ include $(TOPDIR)/config.mk
|
|||
|
||||
# Resulting ELF and binary exectuables will be named demo and demo.bin
|
||||
OUTPUT-$(CONFIG_API) = $(obj)demo
|
||||
OUTPUT = $(OUTPUT-y)
|
||||
|
||||
#CFLAGS += -v
|
||||
# Source files located in the api_examples directory
|
||||
SOBJ_FILES-$(CONFIG_API) += crt0.o
|
||||
COBJ_FILES-$(CONFIG_API) += demo.o
|
||||
COBJ_FILES-$(CONFIG_API) += glue.o
|
||||
COBJ_FILES-$(CONFIG_API) += libgenwrap.o
|
||||
|
||||
SOBJS-$(CONFIG_API) += crt0.o
|
||||
COBJS-$(CONFIG_API) += demo.o
|
||||
# Source files which exist outside the api_examples directory
|
||||
EXT_COBJ_FILES-$(CONFIG_API) += lib_generic/crc32.o
|
||||
EXT_COBJ_FILES-$(CONFIG_API) += lib_generic/ctype.o
|
||||
EXT_COBJ_FILES-$(CONFIG_API) += lib_generic/string.o
|
||||
EXT_COBJ_FILES-$(CONFIG_API) += lib_generic/vsprintf.o
|
||||
ifeq ($(ARCH),ppc)
|
||||
SOBJS-$(CONFIG_API) += ppcstring.o
|
||||
EXT_SOBJ_FILES-$(CONFIG_API) += lib_ppc/ppcstring.o
|
||||
endif
|
||||
|
||||
OUTPUT := $(OUTPUT-y)
|
||||
COBJS := $(COBJS-y)
|
||||
SOBJS := $(SOBJS-y)
|
||||
# Create a list of source files so their dependencies can be auto-generated
|
||||
SRCS += $(addprefix $(SRCTREE)/,$(EXT_COBJ_FILES-y:.o=.c))
|
||||
SRCS += $(addprefix $(SRCTREE)/,$(EXT_SOBJ_FILES-y:.o=.S))
|
||||
SRCS += $(addprefix $(SRCTREE)/api_examples/,$(COBJ_FILES-y:.o=.c))
|
||||
SRCS += $(addprefix $(SRCTREE)/api_examples/,$(SOBJ_FILES-y:.o=.S))
|
||||
|
||||
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))
|
||||
LIBOBJS += $(addprefix $(obj),$(COBJS))
|
||||
LIBOBJS += $(addprefix $(obj),$(LIBCOBJS))
|
||||
|
||||
SRCS += $(COBJS:.o=.c)
|
||||
SRCS += $(LIBCOBJS:.o=.c)
|
||||
SRCS += $(SOBJS:.o=.S)
|
||||
OBJS := $(addprefix $(obj),$(COBJS))
|
||||
# Create a list of object files to be compiled
|
||||
OBJS += $(addprefix $(obj),$(SOBJ_FILES-y))
|
||||
OBJS += $(addprefix $(obj),$(COBJ_FILES-y))
|
||||
OBJS += $(addprefix $(obj),$(notdir $(EXT_COBJ_FILES-y)))
|
||||
OBJS += $(addprefix $(obj),$(notdir $(EXT_SOBJ_FILES-y)))
|
||||
|
||||
gcclibdir := $(shell dirname `$(CC) -print-libgcc-file-name`)
|
||||
|
||||
CPPFLAGS += -I..
|
||||
|
||||
all: $(obj).depend $(OBJS) $(OUTPUT)
|
||||
all: $(obj).depend $(OUTPUT)
|
||||
|
||||
#########################################################################
|
||||
|
||||
$(OUTPUT): $(LIBOBJS)
|
||||
$(OUTPUT): $(OBJS)
|
||||
$(LD) -Ttext $(LOAD_ADDR) -o $@ $^ -L$(gcclibdir) -lgcc
|
||||
$(OBJCOPY) -O binary $@ $(OUTPUT).bin 2>/dev/null
|
||||
|
||||
$(obj)crc32.c:
|
||||
@rm -f $(obj)crc32.c
|
||||
ln -s $(src)../lib_generic/crc32.c $(obj)crc32.c
|
||||
# Rule to build generic library C files
|
||||
$(obj)%.o: $(SRCTREE)/lib_generic/%.c
|
||||
$(CC) -g $(CFLAGS) -c -o $@ $<
|
||||
|
||||
$(obj)ctype.c:
|
||||
@rm -f $(obj)ctype.c
|
||||
ln -s $(src)../lib_generic/ctype.c $(obj)ctype.c
|
||||
|
||||
$(obj)string.c:
|
||||
@rm -f $(obj)string.c
|
||||
ln -s $(src)../lib_generic/string.c $(obj)string.c
|
||||
|
||||
$(obj)vsprintf.c:
|
||||
@rm -f $(obj)vsprintf.c
|
||||
ln -s $(src)../lib_generic/vsprintf.c $(obj)vsprintf.c
|
||||
|
||||
ifeq ($(ARCH),ppc)
|
||||
$(obj)ppcstring.S:
|
||||
@rm -f $(obj)ppcstring.S
|
||||
ln -s $(src)../lib_ppc/ppcstring.S $(obj)ppcstring.S
|
||||
endif
|
||||
# Rule to build architecture-specific library assembly files
|
||||
$(obj)%.o: $(SRCTREE)/lib_$(ARCH)/%.S
|
||||
$(CC) -g $(CFLAGS) -c -o $@ $<
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
Loading…
Reference in a new issue