summaryrefslogtreecommitdiff
path: root/nuttx/arch/c5471/src
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2007-02-27 23:59:20 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2007-02-27 23:59:20 +0000
commit0408272aba8c7c48c682844b9079b558c008aedd (patch)
treee57d96602e7bea5bf57ccd7655eb14d6aaaa271e /nuttx/arch/c5471/src
parent148cde5e982950ad5836fa96baa466de842e1c14 (diff)
downloadpx4-nuttx-0408272aba8c7c48c682844b9079b558c008aedd.tar.gz
px4-nuttx-0408272aba8c7c48c682844b9079b558c008aedd.tar.bz2
px4-nuttx-0408272aba8c7c48c682844b9079b558c008aedd.zip
Working toward successful link using aslink
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@21 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/c5471/src')
-rw-r--r--nuttx/arch/c5471/src/Makefile56
1 files changed, 41 insertions, 15 deletions
diff --git a/nuttx/arch/c5471/src/Makefile b/nuttx/arch/c5471/src/Makefile
index 57d741aaa..e2a4dc4ba 100644
--- a/nuttx/arch/c5471/src/Makefile
+++ b/nuttx/arch/c5471/src/Makefile
@@ -35,26 +35,33 @@
-include $(TOPDIR)/Make.defs
-MKDEP = $(TOPDIR)/tools/mkdeps.sh
-CFLAGS += -I$(TOPDIR)/sched
+MKDEP = $(TOPDIR)/tools/mkdeps.sh
+CFLAGS += -I$(TOPDIR)/sched
-ASRCS = up_vectors.S up_saveusercontext.S up_fullcontextrestore.S
+ASRCS = up_vectors.S up_saveusercontext.S up_fullcontextrestore.S
ifeq ($(CONFIG_DEBUG),y)
-ASRCS += up_lowputc.S
+ASRCS += up_lowputc.S
endif
-AOBJS = $(ASRCS:.S=.o)
+AOBJS = $(ASRCS:.S=.o)
-CSRCS = up_initialize.c up_initialstate.c up_idle.c up_doirq.c \
- up_irq.c up_syscall.c up_dataabort.c up_prefetchabort.c \
- up_undefinedinsn.c up_interruptcontext.c up_timerisr.c \
- up_createstack.c up_usestack.c up_releasestack.c \
- up_exit.c up_assert.c up_blocktask.c up_unblocktask.c \
- up_releasepending.c up_reprioritizertr.c up_copystate.c \
- up_schedulesigaction.c up_sigdeliver.c up_serial.c
-COBJS = $(CSRCS:.c=.o)
+CSRCS = up_initialize.c up_initialstate.c up_idle.c up_doirq.c \
+ up_irq.c up_syscall.c up_dataabort.c up_prefetchabort.c \
+ up_undefinedinsn.c up_interruptcontext.c up_timerisr.c \
+ up_createstack.c up_usestack.c up_releasestack.c \
+ up_exit.c up_assert.c up_blocktask.c up_unblocktask.c \
+ up_releasepending.c up_reprioritizertr.c up_copystate.c \
+ up_schedulesigaction.c up_sigdeliver.c up_serial.c
+COBJS = $(CSRCS:.c=.o)
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
+SRCS = $(ASRCS) $(CSRCS)
+OBJS = $(AOBJS) $(COBJS)
+
+LINKOBJS =
+LINKLIBS =
+LDPATHES = $(addprefix -L$(TOPDIR)/,$(dir $(LINKLIBS)))
+LDLIBS = $(patsubst lib%,-l%,$(basename $(notdir $(LINKLIBS))))
+
+LIBGCC = ${shell $(CC) -print-libgcc-file-name}
all: up_head.o libarch$(LIBEXT)
@@ -70,6 +77,25 @@ libarch$(LIBEXT): $(OBJS)
{ echo "$(AR) $@ $obj FAILED!" ; exit 1 ; } ; \
done ; )
+nuttx:
+ $(LD) --entry=__start $(LDFLAGS) $(LDPATHES) -o $(TOPDIR)/$@ \
+ $(addprefix $(TOPDIR)/,$(LINKOBJS)) \
+ --start-group $(LDLIBS) $(EXTRA_LIBS) $(LIBGCC) --end-group
+ @$(NM) $(TOPDIR)/$@ | \
+ grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
+ sort > $(TOPDIR)/System.map
+ @export vflashstart=`$(OBJDUMP) --all-headers $(TOPDIR)/$@ | grep _vflashstart | cut -d' ' -f1`; \
+ if [ ! -z "$$vflashstart" ]; then \
+ $(OBJCOPY) --adjust-section-vma=.vector=0x$$vflashstart $(TOPDIR)/$@ $(TOPDIR)/$@.flashimage; \
+ mv $(TOPDIR)/$@.flashimage $(TOPDIR)/$@; \
+ fi
+ifeq ($(CONFIG_RRLOAD_BINARY),y)
+ @$(TOPDIR)/tools/mkimage.sh $(TOPDIR)/$@ $(TOPDIR)/$@.rr
+ @if [ -w /tftpboot ] ; then \
+ cp -f $(TOPDIR)/$@.rr /tftpboot/$@.rr.${CONFIG_ARCH}; \
+ fi
+endif
+
.depend: Makefile $(SRCS)
$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
touch $@