Eu tenho isso no makefile:
# find cpp files in subdirectories
SOURCES := $(shell find . -name '*.cpp')
Então eu queria fazer o comando genérico FIND
que se comporta 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 template de busca parametrizado para o linux. Mas o mais importante, não consigo encontrar o comando para encontrar todos os arquivos por padrão. O Windows tem isso:
dir * /s/b | findstr \.cpp$
O que é bonito, mas que usa expressões regulares ... Como posso portar isso corretamente, para que os comportamentos se comportem bem em ambos os sistemas? O makefile não possui seu próprio método para localizar arquivos?