$(shell find . -name '*.cpp') を Windows に移植するにはどうすればいいですか?

$(shell find . -name '*.cpp') を Windows に移植するにはどうすればいいですか?

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 にはファイルを検索するための独自の方法がありませんか?

関連情報