Подтвердить что ты не робот

Использование функции "подстановочные знаки" в Android.mk

У меня возникла проблема с использованием Сделать wildcard функцию в файле сборки Android.mk.

Мои другие make файлы используют строку, подобную этой, чтобы указать "Все файлы .c в этой папке":

CFILES := $(wildcard *.c)

В моем Android.mk файле я пробовал это:

LOCAL_SRC_FILES := $(wildcard *.c)

Тем не менее, это имеет тот же эффект, что и не включая файлы вообще.

Если я включаю файлы вручную, сборка работает так, как я ожидал.

Мне интересно, может ли текущий рабочий каталог не мой путь к проекту во время оценки этого утверждения? Если да, могу ли я использовать комбинацию $(call my-dir) и функцию подстановки для получения списка, который я хочу?

4b9b3361

Ответ 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)