Использование функции подстановки Make в Android.mk - PullRequest
14 голосов
/ 02 декабря 2011

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

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

CFILES := $(wildcard *.c)

В моем файле Android.mk, который я пробовалthis:

LOCAL_SRC_FILES := $(wildcard *.c)

Однако это имеет тот же эффект, что и отсутствие файлов вообще.

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

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

Ответы [ 2 ]

23 голосов
/ 10 декабря 2011

Вот что я использовал в прошлом для этого:

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 голосов
/ 03 декабря 2011

Если ваше определение «этот каталог» является «каталогом, содержащим этот make-файл», то

$(wildcard $(dir $(lastword $(MAKEFILE_LIST)))*.c)

должно работать.

(предостережение: я не знаю из Android)

...