Android.mk
author Ryan C. Gordon <icculus@icculus.org>
Thu, 28 May 2015 01:54:52 -0400
changeset 9671 0e1f57b051f4
parent 9592 ba866f4ec675
child 10879 773cbb61ad27
permissions -rwxr-xr-x
Windows GetBasePath should use GetModuleFileNameExW() and check for overflows.

Apparently you might get strange paths from GetModuleFileName(), such as
short path names or UNC filenames, so this avoids that problem. Since you have
to tapdance with linking different libraries and defining macros depending on
what Windows you plan to target, we dynamically load the API we need, which
works on all versions of Windows (on Win7, it'll load a compatibility wrapper
for the newer API location).

What a mess.

This also now does the right thing if there isn't enough space to store the
path, looping with a larger allocated buffer each try.

Fixes Bugzilla #2435.
     1 LOCAL_PATH := $(call my-dir)
     2 
     3 ###########################
     4 #
     5 # SDL shared library
     6 #
     7 ###########################
     8 
     9 include $(CLEAR_VARS)
    10 
    11 LOCAL_MODULE := SDL2
    12 
    13 LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
    14 
    15 LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)
    16 
    17 LOCAL_SRC_FILES := \
    18 	$(subst $(LOCAL_PATH)/,, \
    19 	$(wildcard $(LOCAL_PATH)/src/*.c) \
    20 	$(wildcard $(LOCAL_PATH)/src/audio/*.c) \
    21 	$(wildcard $(LOCAL_PATH)/src/audio/android/*.c) \
    22 	$(wildcard $(LOCAL_PATH)/src/audio/dummy/*.c) \
    23 	$(LOCAL_PATH)/src/atomic/SDL_atomic.c \
    24 	$(LOCAL_PATH)/src/atomic/SDL_spinlock.c.arm \
    25 	$(wildcard $(LOCAL_PATH)/src/core/android/*.c) \
    26 	$(wildcard $(LOCAL_PATH)/src/cpuinfo/*.c) \
    27 	$(wildcard $(LOCAL_PATH)/src/dynapi/*.c) \
    28 	$(wildcard $(LOCAL_PATH)/src/events/*.c) \
    29 	$(wildcard $(LOCAL_PATH)/src/file/*.c) \
    30 	$(wildcard $(LOCAL_PATH)/src/haptic/*.c) \
    31 	$(wildcard $(LOCAL_PATH)/src/haptic/dummy/*.c) \
    32 	$(wildcard $(LOCAL_PATH)/src/joystick/*.c) \
    33 	$(wildcard $(LOCAL_PATH)/src/joystick/android/*.c) \
    34 	$(wildcard $(LOCAL_PATH)/src/loadso/dlopen/*.c) \
    35 	$(wildcard $(LOCAL_PATH)/src/power/*.c) \
    36 	$(wildcard $(LOCAL_PATH)/src/power/android/*.c) \
    37 	$(wildcard $(LOCAL_PATH)/src/filesystem/android/*.c) \
    38 	$(wildcard $(LOCAL_PATH)/src/render/*.c) \
    39 	$(wildcard $(LOCAL_PATH)/src/render/*/*.c) \
    40 	$(wildcard $(LOCAL_PATH)/src/stdlib/*.c) \
    41 	$(wildcard $(LOCAL_PATH)/src/thread/*.c) \
    42 	$(wildcard $(LOCAL_PATH)/src/thread/pthread/*.c) \
    43 	$(wildcard $(LOCAL_PATH)/src/timer/*.c) \
    44 	$(wildcard $(LOCAL_PATH)/src/timer/unix/*.c) \
    45 	$(wildcard $(LOCAL_PATH)/src/video/*.c) \
    46 	$(wildcard $(LOCAL_PATH)/src/video/android/*.c) \
    47 	$(wildcard $(LOCAL_PATH)/src/test/*.c))
    48 
    49 LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES
    50 LOCAL_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -llog -landroid
    51 
    52 include $(BUILD_SHARED_LIBRARY)
    53 
    54 ###########################
    55 #
    56 # SDL static library
    57 #
    58 ###########################
    59 
    60 LOCAL_MODULE := SDL2_static
    61 
    62 LOCAL_MODULE_FILENAME := libSDL2
    63 
    64 LOCAL_SRC_FILES += $(subst $(LOCAL_PATH)/,,$(LOCAL_PATH)/src/main/android/SDL_android_main.c)
    65 
    66 LOCAL_LDLIBS := 
    67 LOCAL_EXPORT_LDLIBS := -Wl,--undefined=Java_org_libsdl_app_SDLActivity_nativeInit -ldl -lGLESv1_CM -lGLESv2 -llog -landroid
    68 
    69 include $(BUILD_STATIC_LIBRARY)