Использование функции "подстановочные знаки" в Android.mk
У меня возникла проблема с использованием Сделать wildcard
функцию в файле сборки Android.mk.
Мои другие make файлы используют строку, подобную этой, чтобы указать "Все файлы .c в этой папке":
CFILES := $(wildcard *.c)
В моем Android.mk файле я пробовал это:
LOCAL_SRC_FILES := $(wildcard *.c)
Тем не менее, это имеет тот же эффект, что и не включая файлы вообще.
Если я включаю файлы вручную, сборка работает так, как я ожидал.
Мне интересно, может ли текущий рабочий каталог не мой путь к проекту во время оценки этого утверждения? Если да, могу ли я использовать комбинацию $(call my-dir)
и функцию подстановки для получения списка, который я хочу?
Ответы
Ответ 1
Вот что я использовал в прошлом для этого:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := mylibrary
LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.c)
include $(BUILD_STATIC_LIBRARY)
'my-dir' - это макрос, предоставляемый системой сборки, и возвращает путь к каталогу, содержащему файл Android.mk.
Ответ 2
Если ваше определение "this directory" является "каталогом, содержащим этот makefile", то
$(wildcard $(dir $(lastword $(MAKEFILE_LIST)))*.c)
должен работать.
(caveat: я не знаю от Android)