diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2007-02-27 23:59:20 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2007-02-27 23:59:20 +0000 |
commit | 0408272aba8c7c48c682844b9079b558c008aedd (patch) | |
tree | e57d96602e7bea5bf57ccd7655eb14d6aaaa271e /nuttx/arch/c5471/src | |
parent | 148cde5e982950ad5836fa96baa466de842e1c14 (diff) | |
download | px4-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/Makefile | 56 |
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 $@ |