Here is a little more detail about the error:
.... Here are the problems that I see now:
1. The eZ80 COMPILE target generates the .obj file without using the
fully decorated object name. For example, when it is supposed to
generate:
mkfatfs.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj
It instead generates:
mkfatfs.obj
That should be easy to fix in the COMPILE and ASSEMBLE definitions.
2. The full path to the archive is
D:\Spuda\Documents\projects\nuttx\master\apps-fork\libapps.lib
But by the time it gets to the ZDS-II librarian, it becomes:
D:SpudaDocumentsprojectsnuttxmasterapps-forklibapps.lib
I haven't figures out where the backslashes are being lost yet.
I am expecting that this explicit GCC command option will cause
failures too:
./Makefile: $(call COMPILE, -fno-lto $<, $@)
That really should be dependent on CONFIG_ARCH_TOOLCHAIN_GNU. There
should be an issue opened up on that.
These all seem like simple things, but I haven't solved them all yet.
Makefiles are too difficult to debug!
Detailed output with V=1 and some instrumentation:
make[2]: Entering directory
'/cygdrive/d/Spuda/Documents/projects/nuttx/master/apps-fork/fsutils/mkfatfs'
### Here three files are compiled. They still generate the
undecorated object files.
/cygdrive/c/ZiLOG/ZDSII_eZ80Acclaim!_5.3.3/bin/ez80cc.exe -warn
-nodebug -optsize -keeplst -NOlist -NOlistinc -keepasm -chartype:S
-promote -cpu:eZ80F91 -NOgenprintf -NOmodsect -asmsw:" -cpu:eZ80F91
-NOigcase
-include:'D:\Spuda\Documents\projects\nuttx\master\nuttx-fork\include;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\std;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\zilog'
-warn -nodebug -NOsdiopt"
-stdinc:'D:\Spuda\Documents\projects\nuttx\master\nuttx-fork\include;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\std;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\zilog'
-usrinc:'.' -define:_EZ80F91 -define:
-usrinc:'D:\Spuda\Documents\projects\nuttx\master\apps-fork\include'
`cygpath -w " mkfatfs.c"`
mkfatfs.c
/cygdrive/c/ZiLOG/ZDSII_eZ80Acclaim!_5.3.3/bin/ez80cc.exe -warn
-nodebug -optsize -keeplst -NOlist -NOlistinc -keepasm -chartype:S
-promote -cpu:eZ80F91 -NOgenprintf -NOmodsect -asmsw:" -cpu:eZ80F91
-NOigcase
-include:'D:\Spuda\Documents\projects\nuttx\master\nuttx-fork\include;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\std;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\zilog'
-warn -nodebug -NOsdiopt"
-stdinc:'D:\Spuda\Documents\projects\nuttx\master\nuttx-fork\include;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\std;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\zilog'
-usrinc:'.' -define:_EZ80F91 -define:
-usrinc:'D:\Spuda\Documents\projects\nuttx\master\apps-fork\include'
`cygpath -w " configfat.c"`
configfat.c
/cygdrive/c/ZiLOG/ZDSII_eZ80Acclaim!_5.3.3/bin/ez80cc.exe -warn
-nodebug -optsize -keeplst -NOlist -NOlistinc -keepasm -chartype:S
-promote -cpu:eZ80F91 -NOgenprintf -NOmodsect -asmsw:" -cpu:eZ80F91
-NOigcase
-include:'D:\Spuda\Documents\projects\nuttx\master\nuttx-fork\include;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\std;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\zilog'
-warn -nodebug -NOsdiopt"
-stdinc:'D:\Spuda\Documents\projects\nuttx\master\nuttx-fork\include;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\std;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\zilog'
-usrinc:'.' -define:_EZ80F91 -define:
-usrinc:'D:\Spuda\Documents\projects\nuttx\master\apps-fork\include'
`cygpath -w " writefat.c"`
writefat.c
### Here is the ARCHIVE. A debug echo shows that $1, $2m, and $AR
are okay
1= D:SpudaDocumentsprojectsnuttxmasterapps-forklibapps.lib
2=
mkfatfs.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj
configfat.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj
writefat.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj
AR=/cygdrive/c/ZiLOG/ZDSII_eZ80Acclaim!_5.3.3/bin/ez80lib.exe
### This is the ARCHIVE loop. Things are divided on separate lines
to make it more readable
for __obj in
mkfatfs.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj
configfat.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj
writefat.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj
; \
do \
/cygdrive/c/ZiLOG/ZDSII_eZ80Acclaim!_5.3.3/bin/ez80lib.exe -quiet
-warn
"D:\Spuda\Documents\projects\nuttx\master\apps-fork\libapps.lib"=-+$__obj
|| \
{ echo
"/cygdrive/c/ZiLOG/ZDSII_eZ80Acclaim!_5.3.3/bin/ez80lib.exe
"D:\Spuda\Documents\projects\nuttx\master\apps-fork\libapps.lib"=-+$__obj
FAILED!" ; exit 1 ; } \
done
### This looks like the first call to $(AR). The $(AR) is missing
and seems to generate the error
### The library patch still seems good
-quiet -warn
D:\Spuda\Documents\projects\nuttx\master\apps-fork\libapps.lib=-+mkfatfs.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj
*** <syntax error> ***
### This is the error echo output. The $(AR) is present. Now the
library path is corrupted
/cygdrive/c/ZiLOG/ZDSII_eZ80Acclaim!_5.3.3/bin/ez80lib.exe
D:SpudaDocumentsprojectsnuttxmasterapps-forklibapps.lib=-+mkfatfs.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj
FAILED!
make[2]: ***
[/cygdrive/d/Spuda/Documents/projects/nuttx/master/apps-fork/Application.mk:133:
.built] Error 1
make[2]: Leaving directory
'/cygdrive/d/Spuda/Documents/projects/nuttx/master/apps-fork/fsutils/mkfatfs'
If you see any issue, let me know. I have spent quite a bit of time one
this tiny logic sequence.
I am suspicious of the ! character in the path to ez80lib.exe. If I try
to run that from the command line I get:
-bash: !_5.3.3/bin/ez80lib.exe: event not found
But there seems to be no problem with int ! in the path to ez80cc.exe
for the compilations above this and this has always worked from the
context of the make in the past.
Greg