From c17d30566b3b01abb2451595cdd7845fb47eb64e Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 21 Nov 2012 17:44:14 +0000 Subject: Update for ez80 Windows native build (still does not work) git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5377 42af7a65-404d-4744-a932-0658087f49c3 --- nuttx/configs/ez80f910200kitg/ostest/Make.defs | 205 ++++++++++++++++--------- 1 file changed, 134 insertions(+), 71 deletions(-) (limited to 'nuttx/configs/ez80f910200kitg/ostest/Make.defs') diff --git a/nuttx/configs/ez80f910200kitg/ostest/Make.defs b/nuttx/configs/ez80f910200kitg/ostest/Make.defs index 88280d8ec..54e377de7 100644 --- a/nuttx/configs/ez80f910200kitg/ostest/Make.defs +++ b/nuttx/configs/ez80f910200kitg/ostest/Make.defs @@ -47,6 +47,20 @@ ifeq ($(CONFIG_WINDOWS_NATIVE),y) ZDSZILOGINCDIR := $(ZDSINSTALLDIR)\include\zilog ZDSSTDLIBDIR := $(ZDSINSTALLDIR)\lib\std ZDSZILOGLIBDIR := $(ZDSINSTALLDIR)\lib\zilog + + # Escaped versions + + # ETOPDIR := ${shell echo "$(TOPDIR)" | sed -e "s/ /%%%%20/g"} + # EZDSSTDINCDIR := ${shell echo "$(ZDSSTDINCDIR)" | sed -e "s/ /%%%%20/g"} + # EZDSZILOGINCDIR := ${shell echo "$(ZDSZILOGINCDIR)" | sed -e "s/ /%%%%20/g"} + + # CFLAGs + + ARCHASMINCLUDES = -include:'$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)' + # EARCHASMINCLUDES = -include:'$(ETOPDIR)\include;$(EZDSSTDINCDIR);$(EZDSZILOGINCDIR)' + EARCHASMINCLUDES = -include:'$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)' + ARCHSTDINCLUDES = -stdinc:'$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)' + ARCHUSRINCLUDES = -usrinc:'.' else WINTOOL := y INSTALLDIR = ${shell cygpath -u "$(ZDSINSTALLDIR)"} @@ -55,99 +69,139 @@ else ZDSZILOGINCDIR := $(INSTALLDIR)/include/zilog ZDSSTDLIBDIR := $(INSTALLDIR)/lib/std ZDSZILOGLIBDIR := $(INSTALLDIR)/lib/zilog -endif -# These are the same directories but with the directory separator -# character swapped as needed by the ZDS-II compiler + # These are the same directories but with the directory separator + # character swapped as needed by the ZDS-II compiler + + WTOPDIR := ${shell cygpath -w "$(TOPDIR)"} + WZDSSTDINCDIR := ${shell cygpath -w "$(ZDSSTDINCDIR)"} + WZDSZILOGINCDIR := ${shell cygpath -w "$(ZDSZILOGINCDIR)"} + WZDSSTDLIBDIR := ${shell cygpath -w "$(ZDSSTDLIBDIR)"} + WZDSZILOGLIBDIR := ${shell cygpath -w "$(ZDSZILOGLIBDIR)"} -WTOPDIR := ${shell cygpath -w "$(TOPDIR)"} -WZDSSTDINCDIR := ${shell cygpath -w "$(ZDSSTDINCDIR)"} -WZDSZILOGINCDIR := ${shell cygpath -w "$(ZDSZILOGINCDIR)"} -WZDSSTDLIBDIR := ${shell cygpath -w "$(ZDSSTDLIBDIR)"} -WZDSZILOGLIBDIR := ${shell cygpath -w "$(ZDSZILOGLIBDIR)"} + # Escaped versions -# Escaped versions + ETOPDIR := ${shell echo "$(WTOPDIR)" | sed -e "s/ /%20/g"} + EZDSSTDINCDIR := ${shell echo "$(WZDSSTDINCDIR)" | sed -e "s/ /%20/g"} + EZDSZILOGINCDIR := ${shell echo "$(WZDSZILOGINCDIR)" | sed -e "s/ /%20/g"} -ETOPDIR := ${shell echo "$(WTOPDIR)" | sed -e "s/ /%20/g"} -EZDSSTDINCDIR := ${shell echo "$(WZDSSTDINCDIR)" | sed -e "s/ /%20/g"} -EZDSZILOGINCDIR := ${shell echo "$(WZDSZILOGINCDIR)" | sed -e "s/ /%20/g"} + # CFLAGs + + ARCHASMINCLUDES = -include:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR)' + EARCHASMINCLUDES = -include:'$(ETOPDIR)\include;$(EZDSSTDINCDIR);$(EZDSZILOGINCDIR)' + ARCHSTDINCLUDES = -stdinc:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR)' + ARCHUSRINCLUDES = -usrinc:'.' +endif # Assembler definitions ifeq ($(CONFIG_ARCH_CHIP_EZ80F91),y) -ARCHCPU = eZ80F91 -ARCHCPUDEF = _EZ80F91 -ARCHFAMILY = _EZ80ACCLAIM! +ARCHCPU = eZ80F91 +ARCHCPUDEF = _EZ80F91 +ARCHFAMILY = _EZ80ACCLAIM! endif ifeq ($(CONFIG_DEBUG_SYMBOLS),y) - ARCHASMOPTIMIZATION = -debug -NOsdiopt + ARCHASMOPTIMIZATION = -debug -NOsdiopt else - ARCHASMOPTIMIZATION = -nodebug -NOsdiopt + ARCHASMOPTIMIZATION = -nodebug -NOsdiopt endif -ARCHASMCPUFLAGS = -cpu:$(ARCHCPU) -NOigcase -ARCHASMLIST = -list -NOlistmac -name -pagelen:56 -pagewidth:80 -quiet -ARCHASMWARNINGS = -warn -ARCHASMDEFINES = -define:$(ARCHCPUDEF)=1 -define:$(ARCHFAMILYDEF)=1 -define:__ASSEMBLY__ -ARCHASMINCLUDES = -include:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR)' -EARCHASMINCLUDES = -include:'$(ETOPDIR)\include;$(EZDSSTDINCDIR);$(EZDSZILOGINCDIR)' -AFLAGS = $(ARCHASMCPUFLAGS) $(ARCHASMINCLUDES) $(ARCHASMLIST) \ - $(ARCHASMWARNINGS) $(ARCHASMOPTIMIZATION) +ARCHASMCPUFLAGS = -cpu:$(ARCHCPU) -NOigcase +ARCHASMLIST = -list -NOlistmac -name -pagelen:56 -pagewidth:80 -quiet +ARCHASMWARNINGS = -warn +ARCHASMDEFINES = -define:$(ARCHCPUDEF)=1 -define:$(ARCHFAMILYDEF)=1 -define:__ASSEMBLY__ +AFLAGS = $(ARCHASMCPUFLAGS) $(ARCHASMINCLUDES) $(ARCHASMLIST) \ + $(ARCHASMWARNINGS) $(ARCHASMOPTIMIZATION) # Compiler definitions ifeq ($(CONFIG_DEBUG_SYMBOLS),y) - ARCHOPTIMIZATION = -debug -reduceopt + ARCHOPTIMIZATION = -debug -reduceopt else - ARCHOPTIMIZATION = -nodebug -optsize + ARCHOPTIMIZATION = -nodebug -optsize endif -ARCHCPUFLAGS = -chartype:S -promote -cpu:$(ARCHCPU) -NOgenprintf -NOmodsect \ - -asmsw:" $(ARCHASMCPUFLAGS) $(EARCHASMINCLUDES) $(ARCHASMWARNINGS) $(ARCHASMOPTIMIZATION)" -ARCHLIST = -keeplst -NOlist -NOlistinc -keepasm -ARCHPICFLAGS = -ARCHWARNINGS = -warn -ARCHDEFINES = -define:$(ARCHCPUDEF) -define:$(ARCHFAMILYDEF) -ARCHSTDINCLUDES = -stdinc:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR)' -ARCHUSRINCLUDES = -usrinc:'.' -ARCHINCLUDES = $(ARCHSTDINCLUDES) $(ARCHUSRINCLUDES) -CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHLIST) \ - $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) - -CPPDEFINES = -D$(ARCHFAMILYDEF) -D$(ARCHCPUDEF) -D__ASSEMBLY__ -CPPINCLUDES = -I$(TOPDIR)/include -CPPFLAGS = $(CPPDEFINES) $(CPPINCLUDES) +ARCHCPUFLAGS = -chartype:S -promote -cpu:$(ARCHCPU) -NOgenprintf -NOmodsect \ + -asmsw:" $(ARCHASMCPUFLAGS) $(EARCHASMINCLUDES) $(ARCHASMWARNINGS) $(ARCHASMOPTIMIZATION)" +ARCHLIST = -keeplst -NOlist -NOlistinc -keepasm +ARCHPICFLAGS = +ARCHWARNINGS = -warn +ARCHDEFINES = -define:$(ARCHCPUDEF) -define:$(ARCHFAMILYDEF) +ARCHINCLUDES = $(ARCHSTDINCLUDES) $(ARCHUSRINCLUDES) +CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHLIST) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) + +CPPDEFINES = -D$(ARCHFAMILYDEF) -D$(ARCHCPUDEF) -D__ASSEMBLY__ +CPPINCLUDES = -I$(TOPDIR)$(DELIM)include +CPPFLAGS = $(CPPDEFINES) $(CPPINCLUDES) # Librarian definitions -ARFLAGS = -quiet -warn +ARFLAGS = -quiet -warn # Linker definitions -LINKCMDTEMPLATE = $(TOPDIR)/configs/ez80f910200kitg/ostest/ostest.linkcmd +LINKCMDTEMPLATE = $(TOPDIR)$(DELIM)configs$(DELIM)ez80f910200kitg$(DELIM)ostest$(DELIM)ostest.linkcmd # Tool names/pathes -CROSSDEV = -CC = $(ZDSBINDIR)/ez80cc.exe -CPP = gcc -E -LD = $(ZDSBINDIR)/ez80link.exe -AS = $(ZDSBINDIR)/ez80asm.exe -AR = $(ZDSBINDIR)/ez80lib.exe +CROSSDEV = +CPP = gcc -E + +ifeq ($(CONFIG_WINDOWS_NATIVE),y) + # PATH varialble should be set + CC = ez80cc.exe + LD = ez80link.exe + AS = ez80asm.exe + AR = ez80lib.exe +else + # Cygwin PATH variable is not sufficient + CC = "$(ZDSBINDIR)$(DELIM)ez80cc.exe" + LD = "$(ZDSBINDIR)$(DELIM)ez80link.exe" + AS = "$(ZDSBINDIR)$(DELIM)ez80asm.exe" + AR = "$(ZDSBINDIR)$(DELIM)ez80lib.exe" +endif # File extensions -ASMEXT = .asm -OBJEXT = .obj -LIBEXT = .lib -EXEEXT = .lod -HEXEXT = .hex +ASMEXT = .asm +OBJEXT = .obj +LIBEXT = .lib +EXEEXT = .lod +HEXEXT = .hex # These are the macros that will be used in the NuttX make system # to compile and assembly source files and to insert the resulting # object files into an archive +ifeq ($(CONFIG_WINDOWS_NATIVE),y) +define PREPROCESS + @echo CPP: $1->$2 + $(Q) "$(CPP)" $(CPPFLAGS) $1 -o $2 +endef + +define COMPILE + $(Q) "$(CC)" $(CFLAGS) $1 +endef + +define ASSEMBLE + $(Q) "$(AS)" $(AFLAGS) $1 +endef + +define ARCHIVE + echo AR: $2 + $(Q) for %%G in ($(2)) do ( "$(AR)" $(ARFLAGS) $1=-+%%G ) +endef + +define CLEAN + $(Q) if exist *.obj (del /f /q *.obj) + $(Q) if exist *.src (del /f /q *.src) + $(Q) if exist *.lib (del /f /q *.lib) + $(Q) if exist *.hex (del /f /q *.hex) + $(Q) if exist *.lod (del /f /q *.lod) + $(Q) if exist *.lst (del /f /q *.lst) +endef +else define PREPROCESS @echo "CPP: $1->$2" $(Q) "$(CPP)" $(CPPFLAGS) $1 -o $2 @@ -163,36 +217,45 @@ define ASSEMBLE $(Q) (wfile=`cygpath -w "$1"`; "$(AS)" $(AFLAGS) $$wfile) endef -ifeq ($(CONFIG_WINDOWS_NATIVE),y) -define ARCHIVE - echo "AR: $2"; - $(Q) for %%G in ($(2)) do ( "$(AR)" $(ARFLAGS) $1=-+%%G ) -endef -else define ARCHIVE $(Q) for __obj in $(2) ; do \ echo "AR: $$__obj"; \ "$(AR)" $(ARFLAGS) $1=-+$$__obj || { echo "$(AR) $1=-+$$__obj FAILED!" ; exit 1 ; } \ done endef -endif define CLEAN $(Q) rm -f *.obj *.src *.lib *.hex *.lod *.lst endef +endif -# This is the tool to use for dependencies (i.e., none) +# Windows native host tool definitions -MKDEP = $(TOPDIR)/tools/mknulldeps.sh +ifeq ($(CONFIG_WINDOWS_NATIVE),y) + HOSTCC = mingw32-gcc.exe + HOSTINCLUDES = -I. + HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -g -pipe + HOSTLDFLAGS = + HOSTEXEEXT = .exe -# ZDS-II cannot follow Cygwin soft links, so we will have to use directory copies + # Windows-native host tools -DIRLINK = $(TOPDIR)/tools/winlink.sh -DIRUNLINK = $(TOPDIR)/tools/unlink.sh + MKDEP = $(TOPDIR)\tools\mkdeps.exe --winnative +else # Linux/Cygwin host tool definitions -HOSTCC = gcc -HOSTINCLUDES = -I. -HOSTCFLAGS = -Wall -wstrict-prototypes -Wshadow -g -pipe -HOSTLDFLAGS = + HOSTCC = gcc + HOSTINCLUDES = -I. + HOSTCFLAGS = -Wall -wstrict-prototypes -Wshadow -g -pipe + HOSTLDFLAGS = + + # This is the tool to use for dependencies (i.e., none) + + MKDEP = $(TOPDIR)$(DELIM)tools$(DELIM)mknulldeps.sh + + # ZDS-II cannot follow Cygwin soft links, so we will have to use directory copies + + DIRLINK = $(TOPDIR)$(DELIM)tools$(DELIM)winlink.sh + DIRUNLINK = $(TOPDIR)$(DELIM)tools$(DELIM)unlink.sh +endif -- cgit v1.2.3