%20no%20Windows%3F.png)
Eu tenho isso no makefile:
# find cpp files in subdirectories
SOURCES := $(shell find . -name '*.cpp')
Então eu queria criar FIND
um comando genérico que se comportasse corretamente no Windows e no Linux:
ifeq ($(OS),Windows_NT)
# WINDOWS
RM = erase /Q
FIND = ???
else
# LINUX
ifeq ($(shell uname), Linux)
RM = rm -f
# This is probably wrong too, but I have no idea how to do it right
FIND = $(find . -name '$1')
endif
endif
Claro, eu nem sei como fazer um modelo de localização parametrizado para Linux. Mas o mais importante é que não consigo encontrar o comando para localizar todos os arquivos por padrão. O Windows tem isto:
dir * /s/b | findstr \.cpp$
O que é lindo, mas usa expressão regular... Como posso portar isso corretamente, para que find se comporte bem em ambos os sistemas? O makefile não possui seu próprio método para localizar arquivos?