On Sun, 2021-09-05 at 10:48 -0500, John Freeman wrote: > Because `ls` is a built-in in PowerShell.
GNU make does not use PowerShell. The details depend on how you build GNU make but generally on Windows, GNU make uses cmd.exe (the traditional Windows shell) to run commands. If you write a recipe that works in cmd.exe, then it should work as a recipe in a makefile and you should not be able to tell the difference between whether make invokes it directly, versus actually invoking cmd.exe. If you want to use PowerShell to run your recipes then you need to change the make variable SHELL to use that instead. See: https://www.gnu.org/software/make/manual/html_node/Choosing-the-Shell.html If you change the default shell, then make will never use any shortcuts since, obviously, it can't know what the syntax is of some other random shell.
