summaryrefslogtreecommitdiff
path: root/nuttx/arch
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2008-01-10 18:16:20 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2008-01-10 18:16:20 +0000
commit28a9cfef1704bbb553cecc1527360553ad56f010 (patch)
tree758aa703cfc8533a53780b0ceac66d7a28ceda23 /nuttx/arch
parent83528f134e21945fef569980f4ac7ba5fe13db0a (diff)
downloadpx4-nuttx-28a9cfef1704bbb553cecc1527360553ad56f010.tar.gz
px4-nuttx-28a9cfef1704bbb553cecc1527360553ad56f010.tar.bz2
px4-nuttx-28a9cfef1704bbb553cecc1527360553ad56f010.zip
First cut at ZDS-II link command
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@544 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch')
-rw-r--r--nuttx/arch/z16/src/Makefile33
1 files changed, 19 insertions, 14 deletions
diff --git a/nuttx/arch/z16/src/Makefile b/nuttx/arch/z16/src/Makefile
index cd0692447..35aec4664 100644
--- a/nuttx/arch/z16/src/Makefile
+++ b/nuttx/arch/z16/src/Makefile
@@ -41,6 +41,8 @@ WARCHSRCDIR = ${shell cygpath -w $(ARCHSRCDIR)}
USRINCLUDES = -usrinc:'.;$(WTOPDIR)\sched;$(WARCHSRCDIR)\chip;$(WARCHSRCDIR)\common'
INCLUDES = $(ARCHSTDINCLUDES) $(USRINCLUDES)
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(INCLUDES) $(ARCHDEFINES)
+WLINKLIBS =
+LDFLAGS = @${shell cypath -w $(ARCHSRCDIR)/nuttx.linkcmd}
HEAD_AOBJ = $(HEAD_ASRC:.S=$(OBJEXT))
@@ -53,17 +55,8 @@ COBJS = $(CSRCS:.c=$(OBJEXT))
SRCS = $(ASRCS) $(CSRCS)
OBJS = $(AOBJS) $(COBJS)
-LDFLAGS = $(ARCHSCRIPT)
-EXTRA_LIBS =
-
-LINKLIBS =
-LDPATHES = $(addprefix -L$(TOPDIR)/,$(dir $(LINKLIBS)))
-LDLIBS = $(patsubst lib%,-l%,$(basename $(notdir $(LINKLIBS))))
-
BOARDDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src/board
-LIBGCC = ${shell $(CC) -print-libgcc-file-name}
-
VPATH = chip:common
all: $(HEAD_OBJ) libarch$(LIBEXT)
@@ -80,11 +73,23 @@ libarch$(LIBEXT): $(OBJS)
done ; )
board/libboard$(LIBEXT):
- $(MAKE) -C board TOPDIR="$(TOPDIR)" libboard$(LIBEXT)
+ @$(MAKE) -C board TOPDIR="$(TOPDIR)" libboard$(LIBEXT)
+
+wlinklibs:
+ $(foreach LIB, $(LINKLIBS), $(eval WLINKLIBS += ${shell cygpath -w $(LIB)}))
+
+nuttx.linkcmd: $(LINKCMDTEMPLATE) wlinklibs
+ @cp -f $(LINKCMDTEMPLATE) nuttx.linkcmd
+ @echo "\"${shell cygpath -w $(TOPDIR)/nuttx}\"= \\" >>nuttx.linkcmd
+ @echo " ${shell cygpath -w $(ARCHSRCDIR)/$(HEAD_AOBJ)}, \\" >>nuttx.linkcmd
+ @( for lib in $(WLINKLIBS); do \
+ echo " $${lib}, \\" >>nuttx.linkcmd; \
+ done ; )
+ @echo " ${shell cygpath -w $(ARCHSRCDIR)/board/libboard$(LIBEXT)}" >>nuttx.linkcmd
-nuttx$(EXEEXT): $(HEAD_AOBJ) board/libboard$(LIBEXT)
- $(LD) --entry=__start $(LDFLAGS) $(LDPATHES) -L$(BOARDDIR) -o $(TOPDIR)/$@ $(HEAD_AOBJ) \
- --start-group $(LDLIBS) -lboard --end-group $(EXTRA_LIBS) $(LIBGCC)
+nuttx$(EXEEXT): $(HEAD_AOBJ) board/libboard$(LIBEXT) nuttx.linkcmd
+ @echo "LD: nuttx.hex"
+ @$(LD) $(LDFLAGS)
.depend: Makefile chip/Make.defs $(SRCS)
@if [ -e board/Makefile ]; then \
@@ -99,7 +104,7 @@ clean:
@if [ -e board/Makefile ]; then \
$(MAKE) -C board TOPDIR="$(TOPDIR)" clean ; \
fi
- @rm -f libarch$(LIBEXT) *~ .*.swp
+ @rm -f libarch$(LIBEXT) nuttx.linkcmd *~ .*.swp
$(call CLEAN)
distclean: clean