Steve
Steve

Reputation: 31642

Using Make's 'wildcard' function in Android.mk

I'm having a problem using Make's wildcard function in my Android.mk build file.

My other makefiles use a line like this one to specify "All .c files in this folder":

CFILES := $(wildcard *.c)

In my Android.mk file I tried this:

LOCAL_SRC_FILES := $(wildcard *.c)

However, this has the same affect as not including any files at all.

If I include the files manually the build works as I'd expect.

I'm wondering if maybe the current working directory isn't my project path at the time this statement is evaluated? If so, can I use a combination of $(call my-dir) and the wildcard function to get the list I want?

Upvotes: 14

Views: 12481

Answers (2)

richq
richq

Reputation: 56458

Here's what I've used in the past for doing this:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := mylibrary
LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.c)
include $(BUILD_STATIC_LIBRARY)

'my-dir' is a macro provided by the build system and returns the path of the directory containing the Android.mk file.

Upvotes: 26

slowdog
slowdog

Reputation: 6216

If your definition of "this directory" is "the directory containing this makefile", then

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

ought to work.

(caveat: I don't know from Android)

Upvotes: 2

Related Questions