可以使用 Makefile 中的变量和字符串操作来提取出 app.c、h.c 和 ac.c。以下是一个示例:
```
# 定义变量
SRCDIR = ../src
APPDIR = ../app
FILES = $(SRCDIR)/app.c $(APPDIR)/h.c ./ac.c
# 提取文件名
APP_C = $(notdir $(filter %/app.c,$(FILES)))
H_C = $(notdir $(filter %/h.c,$(FILES)))
AC_C = $(notdir $(filter %/ac.c,$(FILES)))
# 打印结果
.PHONY: print
print:
@echo "app.c: $(APP_C)"
@echo "h.c: $(H_C)"
@echo "ac.c: $(AC_C)"
```
在这个 Makefile 中,我们首先定义了三个变量:`SRCDIR` 表示源代码目录,`APPDIR` 表示应用程序目录,`FILES` 表示要处理的文件列表。
然后,我们使用 `filter` 函数和通配符 `%` 来筛选出 app.c、h.c 和 ac.c 文件,并使用 `notdir` 函数提取出文件名。
最后,我们定义了一个打印规则 `print`,用于打印结果。在命令行中执行 `make print` 命