У Джона Маршалла есть способ, который будет работать, но есть более безопасный способ. Все каталоги всегда имеют одну хорошо известную запись, и это "." Итак, что вам нужно сделать, это:
PATHS := $(wildcard $(SOME_PATH)/*)
DIRS := $(patsubst %/.,%,$(wildcard $(addsuffix /.,$(PATHS))))
FILES := $(filter-out $(DIRS),$(PATHS))
Подстановочный знак будет соответствовать всем каталогам и только каталогам, поскольку только каталоги содержат «.». Это надежно.
Способ Yehnan также работает, но менее эффективен, потому что вы вызываете оболочку для каждого элемента в PATHS. Скорее всего, это не сильно повлияет на ваше время выполнения, но если это можно сделать внутри make, а не с помощью shell, я бы предпочел это. Также это помогает переносимости избежать $ (shell ...).