2011-01-13 15 views
5

Tengo algunos archivos fuente * .cpp y algunos archivos .s ARM ensambladores que quiero ensamblar y vincular en mi archivo Android.mk (ejecutando script ndk-build)Android.mk - Cómo ensamblar y vincular archivos de ensamblador ARM

archivo Mi Android.mk se ve así:

LOCAL_PATH:= $(call my-dir) 
include $(CLEAR_VARS) 
LOCAL_ARM_MODE := arm 
LOCAL_MODULE := libTestJNI 
LOCAL_SRC_FILES := Test.cpp TestAS_gas4.s 
LOCAL_CFLAGS := -DHAVE_CONFIG_H -DFPM_ARM -ffast-math -O3 -DOPT_ARM 
LOCAL_LDLIBS += -llog 
include $(BUILD_SHARED_LIBRARY) 

Desafortunadamente el archivo * .s no se reconoce. ndk-build dice:

Gdbserver  : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver 
Gdbsetup  : libs/armeabi/gdb.setup 
make: *** No rule to make target `/cygdrive/c/projects/TestAS_gas4.s', needed by `/cygdrive/c/projects/obj/local/armeabi/objs-debug/libTestJNI/TestAS_gas4.o'. Stop. 

En un archivo make "normal" tendría que ensamblar usando "as" en una regla. ¿Cómo se hace en los archivos Android.mk?

/Kim

Respuesta

5

Esto es embarazoso, pero el problema era que los archivos * .S donde localizado en una subcarpeta. El error "No hay regla para hacer objetivo" es una descripción de error muy pobre en este caso.

/Kim

+0

No se preocupe por la vergüenza. Todos hacemos tales cosas de vez en cuando. – wallyk

0

pista: sufijos de cambio:

ln -fs %.s %.S.arm 
Cuestiones relacionadas