Windows에서 $(shell find . -name '*.cpp')를 포팅하는 방법은 무엇입니까?

Windows에서 $(shell find . -name '*.cpp')를 포팅하는 방법은 무엇입니까?

Makefile에 다음이 있습니다.

# find cpp files in subdirectories
SOURCES := $(shell find . -name '*.cpp')

FIND그래서 저는 Windows와 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

물론 저는 Linux용 매개변수화된 찾기 템플릿을 만드는 방법조차 모릅니다. 그러나 더 중요한 것은 패턴으로 모든 파일을 찾는 명령을 찾을 수 없다는 것입니다. Windows에는 다음이 있습니다.

dir * /s/b | findstr \.cpp$

어느 것이 아름답지만 정규 표현식을 사용합니다... find가 두 시스템 모두에서 잘 작동하도록 하려면 어떻게 이것을 올바르게 포팅할 수 있습니까? makefile에는 파일을 찾는 자체 방법이 없나요?

관련 정보