Reputation: 2122
I try to use wilcards in Android.mk with help of this answer
https://stackoverflow.com/a/8459242/1039175
But get and error:
make: No rule to make target jni/jni/abyss_engine.c', needed by
obj/local/armeabi/objs-debug/AbyssEngine/jni/abyss_engine.o' - this error means no source file found and it's natural because where no jni subfolder in jni folder
Where comes an extra jni in path and why? My source files just in jni folder without any subfolders, how to fix it?
My Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := AbyssEngine
LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.c)
(abyss_engine.c asset_manager.c jni_bridge.c shader_manager.c input_manager.c works fine)
LOCAL_LDLIBS := -llog -lGLESv2
LOCAL_CFLAGS := -Werror
include $(BUILD_SHARED_LIBRARY)
Upvotes: 4
Views: 3056
Reputation: 1
I use External Tools to complie file, and I met this problem in my project。
I change the Working directory Path and the problem is solved。
step1: Settings -> Tools -> External Tools -> NDK ->my build -> Working directory
step2:
my old Working directory path is :$ModuleFileDir$\src\main
I change it to : $ModuleFileDir$\src\main\jni
and It runs very well for me!
Upvotes: 0
Reputation: 2122
All thanks to a1 from android-ndk group
LOCAL_SRC_FILES=$(notdir $(wildcard $(LOCAL_PATH)/*.c))
http://groups.google.com/group/android-ndk/browse_thread/thread/9d4251e0900a31e6/4b792fc207e454c2#4b792fc207e454c2 - there is more useful info in his reply
Upvotes: 4