diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2009-06-24 20:57:34 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2009-06-24 20:57:34 +0000 |
commit | 57af094e9fea3a8e2ad7822b1c5336d0b63e4bca (patch) | |
tree | a7c471e781e21ecdb704e78aa4ca3e1cae625ca8 /nuttx | |
parent | 38add3698930bde72d1548097b95334f0be449f1 (diff) | |
download | px4-nuttx-57af094e9fea3a8e2ad7822b1c5336d0b63e4bca.tar.gz px4-nuttx-57af094e9fea3a8e2ad7822b1c5336d0b63e4bca.tar.bz2 px4-nuttx-57af094e9fea3a8e2ad7822b1c5336d0b63e4bca.zip |
Fix a problem that was causing tools/incdir.sh to generate inappropriate paths for Cygwin tools
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1941 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx')
-rw-r--r-- | nuttx/ChangeLog | 5 | ||||
-rw-r--r-- | nuttx/Documentation/NuttX.html | 4 | ||||
-rw-r--r-- | nuttx/binfmt/Makefile | 7 | ||||
-rw-r--r-- | nuttx/drivers/Makefile | 12 | ||||
-rw-r--r-- | nuttx/examples/nxflat/Makefile | 10 | ||||
-rw-r--r-- | nuttx/examples/pashello/Makefile | 8 | ||||
-rw-r--r-- | nuttx/graphics/Makefile | 18 | ||||
-rwxr-xr-x | nuttx/tools/incdir.sh | 84 |
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 |