On Thu, 2020-05-07 at 18:41 +0000, Loch Brandon wrote: > dirs: > @$(ECHO) ------------------------------------------------------------ > @$(ECHO) Verifying and building application directory structure... > @if not exist $(OUTPUTDIR) $(MKDIR) $(OUTPUTDIR) > @if not exist $(OUTPUTDIR)\$(notdir $(OBJDIR)) $(MKDIR) > $(OUTPUTDIR)\$(notdir $(OBJDIR)) > @if not exist $(OUTPUTDIR)\$(notdir $(DEPDIR)) $(MKDIR) > $(OUTPUTDIR)\$(notdir $(DEPDIR)) > @if not exist "$(CONTROL_PROGRAM)" $(ECHO) !!! Warning: Compiler not > found, searching at (CONTROL_PROGRAM): $(CONTROL_PROGRAM) !!! > @if not exist "$(CONTROL_PROGRAM)" EXIT 1 > @$(ECHO) ------------------------------------------------------------
The above scripting is all written in Windows command.com batch file syntax. > When running without the '@' this is the result: > echo Verifying and building application directory structure... > Verifying and building application directory structure... > if not exist output mkdir output > > Then it hits the error. The error you see implies that make is trying to invoke a POSIX shell rather than Windows command.com. The above syntax is not legal POSIX shell syntax. I am not really familiar with how make on Windows determines which type of shell to run, especially such an old version ad 3.78.1. However, something on your system changed which is causing this. Maybe you installed some new software such as Git for Windows, and make can now find a POSIX shell where it didn't used to be able to find one. Maybe some setting of the make SHELL variable in your makefile can convence make to use command.com, but I'm not sure. Maybe someone with more experience on Windows than I can comment.