I am building the EMAC code to fix the broken EMAC on Tiva 129. Here is my command line:
c:\ti\tirtos_tivac_2_00_01_23>c:\ti\xdctools_3_30_01_25_core\gmake -f tirtos.mak drivers
Here is the tail of the build process:
Building 'ti.targets.arm.elf.M4F' using 'c;c:\ti\ccsv6\tools\compiler\arm_5.1.5' ...
ccOpts.suffix = -ms -g --gcc --define=ccs
js: "C:/ti/tirtos_tivac_2_00_01_23/products/bios_6_40_01_15/packages/ti/targets/ITarget.xs", line 268: Error: c;c:\ti\ccsv6\tools\compiler\arm_5.1.5 cannot be found. Ensure that r
otDir for the M4F target is set correctly in c:/ti/tirtos_tivac_2_00_01_23/tirtos.bld
"C:/ti/tirtos_tivac_2_00_01_23/products/bios_6_40_01_15/packages/ti/targets/arm/elf/IArm.xs", line 150
gmake[1]: *** Deleting file `package.mak'
gmake[1]: *** No rule to make target `package.mak', needed by `.interfaces'. Stop.
xdctools_3_30_01_25_core\gmake.exe: *** [packages/ti/drivers,.interfaces] Error 2
gmake: *** [drivers] Error 2
You will notice that the path names begin with "c;c:\ti". This is the error. For some reason, the conversion from DEFAULT_INSTALLATION_DIR ?= c:/ti to "c:\ti" gets mangled inside the xdc process. Here is the middle part where the xdc tool gets called (with -d flag on make):
building tirtos packages ...
Reaping winning child 0x02bafcf8 PID 45815456
Cleaning up temp batch file c:/temp/make6136-1.sh
Creating temporary batch file c:/temp/make6136-1.sh
Batch file contents:
c:/ti/xdctools_3_30_01_25_core/xdc XDCARGS="TivaWareDir='c:/ti/tirtos_tivac_2_00_01_23/products/TivaWare_C_Series-2.1.0.12573c' ti.targets.arm.elf.M4F='c:/ti/ccsv6/tools/c
mpiler/arm_5.1.5'" XDCBUILDCFG=./tirtos.bld -Pr ./packages
CreateProcess(c:\bin\sh.exe,c:/bin/sh.exe c:/temp/make6136-1.sh,...)
Live child 0x02bafcf8 (drivers) PID 45815456
making all: Tue Jul 8 13:16:59 CDT 2014 ...
======== .interfaces [./packages/examples] ========
======== .interfaces [./packages/examples/DK_TM4C123G] ========
======== .interfaces [./packages/examples/DK_TM4C129X] ========
======== .interfaces [./packages/examples/EK_LM4F120XL] ========
======== .interfaces [./packages/examples/EK_TM4C123GXL] ========
======== .interfaces [./packages/examples/EK_TM4C1294XL] ========
======== .interfaces [./packages/examples/examplesgen] ========
======== .interfaces [./packages/ti/drivers] ========
making package.mak (because of package.bld) ...
Argument 'c:/ti/tirtos_tivac_2_00_01_23/tirtos.bld
targetName c:/ti/tirtos_tivac_2_00_01_23/tirtos.bld
rootDir undefined
Argument 'TivaWareDir=c;c:\ti\tirtos_tivac_2_00_01_23\products\TivaWare_C_Series-2.1.0.12573c
targetName TivaWareDir
rootDir c;c:\ti\tirtos_tivac_2_00_01_23\products\TivaWare_C_Series-2.1.0.12573c
Argument 'ti.targets.arm.elf.M4F=c;c:\ti\ccsv6\tools\compiler\arm_5.1.5
targetName ti.targets.arm.elf.M4F
rootDir c;c:\ti\ccsv6\tools\compiler\arm_5.1.5
You can see that the path is correct as it is passed in to xdc.exe, but it dies during the process of changing from Unix style path to DOS style path.
Changing line 10 of tirtos.mak from:
DEFAULT_INSTALLATION_DIR ?= c:/ti
to:
DEFAULT_INSTALLATION_DIR ?= /ti
is a workaround for the problem. Seems very unlikely that you would build on a drive different from where the tools are installed, but that is a danger of this workaround.
Ray
PS: It is *NOT* necessary to convert from Unix to DOS if you use regular fopen() calls and probably system() calls. Windoze uses Unix style internally (from its legacy from SCO Unix and Windows NT). It is just CMD.EXE that is screwed up and requires the wrong slashes.