summaryrefslogtreecommitdiff
path: root/nuttx
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx')
-rw-r--r--nuttx/ChangeLog5
-rw-r--r--nuttx/Documentation/NuttX.html4
-rw-r--r--nuttx/binfmt/Makefile7
-rw-r--r--nuttx/drivers/Makefile12
-rw-r--r--nuttx/examples/nxflat/Makefile10
-rw-r--r--nuttx/examples/pashello/Makefile8
-rw-r--r--nuttx/graphics/Makefile18
-rwxr-xr-xnuttx/tools/incdir.sh84
8 files changed, 119 insertions, 29 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index b4764a1a6..fb7458acd 100644
--- a/nuttx/ChangeLog
+++ b/nuttx/ChangeLog
@@ -791,6 +791,11 @@
and probably breaks many builds.
* examples/lib: Added qsort()
* examples/nxflat: Added support for symbol tables
+ * Correct logic that creates compiler include paths. On Cygwin, the
+ include paths for Cygwin-based GCC were being converted to windows
+ native paths. That causes many problems -- breaking dependencies
+ for one.
+
diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html
index bc6bfb91c..be4af316c 100644
--- a/nuttx/Documentation/NuttX.html
+++ b/nuttx/Documentation/NuttX.html
@@ -1483,6 +1483,10 @@ nuttx-0.4.9 2009-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
and probably breaks many builds.
* examples/lib: Added qsort()
* examples/nxflat: Added support for symbol tables
+ * Correct logic that creates compiler include paths. On Cygwin, the
+ include paths for Cygwin-based GCC were being converted to windows
+ native paths. That causes many problems -- breaking dependencies
+ for one.
pascal-0.1.3 2009-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
diff --git a/nuttx/binfmt/Makefile b/nuttx/binfmt/Makefile
index 30a2fb260..0ba0c2862 100644
--- a/nuttx/binfmt/Makefile
+++ b/nuttx/binfmt/Makefile
@@ -35,7 +35,10 @@
-include $(TOPDIR)/Make.defs
-CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh "$(CC)" $(TOPDIR)/sched}
+ifeq ($(WINTOOL),y)
+INCDIROPT = -w
+endif
+CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh $(INCDIROPT) "$(CC)" $(TOPDIR)/sched}
ifeq ($(CONFIG_NXFLAT),y)
include libnxflat/Make.defs
@@ -81,7 +84,7 @@ $(BIN): $(OBJS)
.depend: Makefile $(SRCS)
@$(MKDEP) --dep-path . --dep-path libnxflat \
- $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
+ $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
@touch $@
depend: .depend
diff --git a/nuttx/drivers/Makefile b/nuttx/drivers/Makefile
index dc6e43fcc..ad9dcaa0f 100644
--- a/nuttx/drivers/Makefile
+++ b/nuttx/drivers/Makefile
@@ -1,7 +1,7 @@
############################################################################
# drivers/Makefile
#
-# Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
+# Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
#
# Redistribution and use in source and binary forms, with or without
@@ -35,6 +35,10 @@
-include $(TOPDIR)/Make.defs
+ifeq ($(WINTOOL),y)
+INCDIROPT = -w
+endif
+
ifeq ($(CONFIG_NET),y)
include net/Make.defs
ROOTDEPPATH = --dep-path .
@@ -45,20 +49,20 @@ ifeq ($(CONFIG_USBDEV),y)
include usbdev/Make.defs
ROOTDEPPATH = --dep-path .
USBDEVDEPPATH = --dep-path usbdev
-CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh "$(CC)" $(TOPDIR)/drivers/usbdev}
+CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh $(INCDIROPT) "$(CC)" $(TOPDIR)/drivers/usbdev}
endif
include mmcsd/Make.defs
ROOTDEPPATH = --dep-path .
MMCSDDEPPATH = --dep-path mmcsd
-CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh "$(CC)" $(TOPDIR)/drivers/mmcsd}
+CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh $(INCDIROPT) "$(CC)" $(TOPDIR)/drivers/mmcsd}
ifneq ($(CONFIG_NFILE_DESCRIPTORS),0)
ifneq ($(CONFIG_DISABLE_MOUNTPOINT),y)
include bch/Make.defs
ROOTDEPPATH = --dep-path .
BCHDEPPATH = --dep-path bch
-CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh "$(CC)" $(TOPDIR)/drivers/bch}
+CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh $(INCDIROPT) "$(CC)" $(TOPDIR)/drivers/bch}
endif
endif
diff --git a/nuttx/examples/nxflat/Makefile b/nuttx/examples/nxflat/Makefile
index 3dd485f4d..fa740370f 100644
--- a/nuttx/examples/nxflat/Makefile
+++ b/nuttx/examples/nxflat/Makefile
@@ -1,5 +1,5 @@
############################################################################
-# examples/hello/Makefile
+# examples/nxflat/Makefile
#
# Copyright (C) 2008 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
@@ -63,17 +63,15 @@ $(BIN): headers $(OBJS)
$(call ARCHIVE, $@, $${obj}); \
done ; )
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
+# We can't make dependencies in this directory because the required
+# header files may not yet exist.
-depend: .depend
+depend:
clean:
@rm -f $(BIN) *~ .*.swp
$(call CLEAN)
distclean: clean
- @rm -f Make.dep .depend
-include Make.dep
diff --git a/nuttx/examples/pashello/Makefile b/nuttx/examples/pashello/Makefile
index 8de5941ba..cce7b526e 100644
--- a/nuttx/examples/pashello/Makefile
+++ b/nuttx/examples/pashello/Makefile
@@ -1,7 +1,7 @@
############################################################################
# examples/pashello/Makefile
#
-# Copyright (C) 2008 Gregory Nutt. All rights reserved.
+# Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
#
# Redistribution and use in source and binary forms, with or without
@@ -36,8 +36,12 @@
-include $(TOPDIR)/.config
-include $(TOPDIR)/Make.defs
+ifeq ($(WINTOOL),y)
+INCDIROPT = -w
+endif
+
COMPILER = ${shell basename $(CC)}
-USRINCLUDES = ${shell $(TOPDIR)/tools/incdir.sh "$CC" $(TOPDIR)/pcode/include $(TOPDIR)/pcode/insn/include}
+USRINCLUDES = ${shell $(TOPDIR)/tools/incdir.sh $(INCDIROPT) "$CC" $(TOPDIR)/pcode/include $(TOPDIR)/pcode/insn/include}
ifneq ($(ARCHSTDINCLUDES),)
INCLUDES = $(ARCHSTDINCLUDES) $(USRINCLUDES)
else
diff --git a/nuttx/graphics/Makefile b/nuttx/graphics/Makefile
index 14ffd613b..22c0e6d7e 100644
--- a/nuttx/graphics/Makefile
+++ b/nuttx/graphics/Makefile
@@ -1,7 +1,7 @@
############################################################################
# graphics/Makefile
#
-# Copyright (C) 2008 Gregory Nutt. All rights reserved.
+# Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
#
# Redistribution and use in source and binary forms, with or without
@@ -38,31 +38,35 @@
DEPPATH = --dep-path .
+ifeq ($(WINTOOL),y)
+INCDIROPT = -w
+endif
+
include nxglib/Make.defs
DEPPATH += --dep-path nxglib
-CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh "$(CC)" $(TOPDIR)/graphics/nxglib}
+CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/nxglib}
include nxbe/Make.defs
DEPPATH += --dep-path nxbe
-CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh "$(CC)" $(TOPDIR)/graphics/nxbe}
+CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/nxbe}
ifeq ($(CONFIG_NX_MULTIUSER),y)
include nxmu/Make.defs
DEPPATH += --dep-path nxmu
-CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh "$(CC)" $(TOPDIR)/graphics/nxmu}
+CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/nxmu}
else
include nxsu/Make.defs
DEPPATH += --dep-path nxsu
-CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh "$(CC)" $(TOPDIR)/graphics/nxsu}
+CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/nxsu}
endif
include nxtk/Make.defs
DEPPATH += --dep-path nxtk
-CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh "$(CC)" $(TOPDIR)/graphics/nxtk}
+CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/nxtk}
include nxfonts/Make.defs
DEPPATH += --dep-path nxfonts
-CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh "$(CC)" $(TOPDIR)/graphics/nxfonts}
+CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/nxfonts}
ASRCS = $(NXGLIB_ASRCS) $(NXBE_ASRCS) $(NX_ASRCS) $(NXTK_ASRCS) $(NXFONTS_ASRCS)
AOBJS = $(ASRCS:.S=$(OBJEXT))
diff --git a/nuttx/tools/incdir.sh b/nuttx/tools/incdir.sh
index c9d1b7d40..447151ed3 100755
--- a/nuttx/tools/incdir.sh
+++ b/nuttx/tools/incdir.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# tools/incdir.sh
#
-# Copyright (C) 2008 Gregory Nutt. All rights reserved.
+# Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
#
# Redistribution and use in source and binary forms, with or without
@@ -32,25 +32,60 @@
# POSSIBILITY OF SUCH DAMAGE.
#
-# Input parameters:
-# $1 : Compiler name as it appears in config/*/*/Make.defs
-# $2, $3, ...: Include file paths
+# Handle command line options
+
+progname=$0
+wintool=n
+usage="USAGE: $progname [-w] [-d] [-l] [-h] <compiler-path> <dir1> [<dir2> [<dir3> ...]]"
+advice="Try '$progname -h' for more information"
+
+while [ ! -z "$1" ]; do
+ case $1 in
+ -d )
+ set -x
+ ;;
+ -w )
+ wintool=y
+ ;;
+ -h )
+ echo "$progname is a tool for flexible generate of include path arguments for a"
+ echo "variety of diffent compilers in a variety of compilation environments"
+ echo ""
+ echo $usage
+ echo ""
+ echo "Where:"
+ echo " <compiler-path>"
+ echo " The full path to your compiler"
+ echo " <dir1> [<dir2> [<dir3> ...]]"
+ echo " A list of include directories"
+ echo " -w"
+ echo " The compiler is a Windows native tool and requires Windows"
+ echo " style pathnames like C:\\Program Files"
+ echo " -d"
+ echo " Enable script debug"
+ ;;
+ * )
+ break;
+ ;;
+ esac
+ shift
+done
ccpath=$1
shift
dirlist=$@
-usage="USAGE: $0 <compiler-path> <dir1> [<dir2> [<dir3> ...]]"
-
if [ -z "$ccpath" ]; then
echo "Missing compiler path"
echo $usage
+ echo $advice
exit 1
fi
if [ -z "$dirlist" ]; then
echo "Missing include directory list"
echo $usage
+ echo $advice
exit 1
fi
@@ -75,15 +110,48 @@ fi
# files.
os=`uname -o`
+
+# Let's assume that all GCC compiler paths contain the string gcc and
+# no non-GCC compiler pathes include this substring
+
+gcc=`echo $ccpath | grep gcc`
+sdcc=`echo $ccpath | grep sdcc`
+
if [ "X$os" = "XCygwin" ]; then
- windows=yes
- compiler=`cygpath -u "$ccpath"`
+ # We can treat Cygwin native toolchains just like Linux native
+ # toolchains in the Linux. Let's assume:
+ # 1. GCC or SDCC are the only possible Cygwin native compilers
+ # 2. If this is a Window native GCC version, then -w provided
+ # on the command line (wintool=y)
+
+ if [ -z "$gcc" -a -z "$sdcc" ]; then
+
+ # Not GCC or SDCC, must be Windows native
+ windows=yes
+ compiler=`cygpath -u "$ccpath"`
+ else
+ if [ "X$wintool" == "Xy" ]; then
+
+ # It is a native GCC or SDCC compiler
+ windows=yes
+ compiler=`cygpath -u "$ccpath"`
+ else
+ # GCC or SDCC and not for Windows
+ windows=no
+ compiler="$ccpath"
+ fi
+ fi
else
+ # Otherwise, we must be in a Linux environment where there are
+ # only Linux native toolchains
windows=no
compiler="$ccpath"
fi
exefile=`basename "$compiler"`
+# Check for some well known, non-GCC Windows native tools that require
+# a special output format as well as special paths
+
if [ "X$exefile" = "Xez8cc.exe" -o "X$exefile" = "Xzneocc.exe" -o "X$exefile" = "Xez80cc.exe" ]; then
fmt=userinc
else