2015-06-21 23:33:46 +08:00
|
|
|
LOCAL_PATH := $(call my-dir)
|
|
|
|
|
|
|
|
###########################
|
|
|
|
#
|
|
|
|
# SDL shared library
|
|
|
|
#
|
|
|
|
###########################
|
|
|
|
|
|
|
|
include $(CLEAR_VARS)
|
|
|
|
|
2022-11-22 12:28:58 +08:00
|
|
|
LOCAL_MODULE := SDL3
|
2015-06-21 23:33:46 +08:00
|
|
|
|
2024-08-23 00:52:00 +08:00
|
|
|
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include $(LOCAL_PATH)/include/build_config $(LOCAL_PATH)/src
|
2015-06-21 23:33:46 +08:00
|
|
|
|
2024-06-18 05:46:08 +08:00
|
|
|
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
|
2015-06-21 23:33:46 +08:00
|
|
|
|
|
|
|
LOCAL_SRC_FILES := \
|
|
|
|
$(subst $(LOCAL_PATH)/,, \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/audio/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/audio/android/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/audio/dummy/*.c) \
|
2021-04-16 03:03:10 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/audio/aaudio/*.c) \
|
2019-01-13 04:18:44 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/audio/openslES/*.c) \
|
2017-02-11 03:21:15 +08:00
|
|
|
$(LOCAL_PATH)/src/atomic/SDL_atomic.c.arm \
|
2015-06-21 23:33:46 +08:00
|
|
|
$(LOCAL_PATH)/src/atomic/SDL_spinlock.c.arm \
|
2024-02-18 13:50:32 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/camera/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/camera/android/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/camera/dummy/*.c) \
|
2023-09-27 12:11:09 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/core/*.c) \
|
2015-06-21 23:33:46 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/core/android/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/cpuinfo/*.c) \
|
2024-05-06 12:14:20 +08:00
|
|
|
$(LOCAL_PATH)/src/dialog/SDL_dialog_utils.c \
|
|
|
|
$(LOCAL_PATH)/src/dialog/android/SDL_androiddialog.c \
|
2015-06-21 23:33:46 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/dynapi/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/events/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/file/*.c) \
|
2024-03-19 02:43:23 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/gpu/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/gpu/vulkan/*.c) \
|
2015-06-21 23:33:46 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/haptic/*.c) \
|
2017-08-12 23:15:09 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/haptic/android/*.c) \
|
2024-06-08 23:55:15 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/haptic/dummy/*.c) \
|
2021-11-08 14:58:44 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/hidapi/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/hidapi/android/*.cpp) \
|
2015-06-21 23:33:46 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/joystick/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/joystick/android/*.c) \
|
2024-06-06 03:08:29 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/joystick/dummy/*.c) \
|
2018-08-10 07:00:17 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/joystick/hidapi/*.c) \
|
2020-04-14 10:17:28 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/joystick/virtual/*.c) \
|
2015-06-21 23:33:46 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/loadso/dlopen/*.c) \
|
2020-05-04 14:27:29 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/locale/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/locale/android/*.c) \
|
2024-02-14 05:15:59 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/main/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/main/generic/*.c) \
|
2020-10-05 23:30:33 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/misc/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/misc/android/*.c) \
|
2015-06-21 23:33:46 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/power/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/power/android/*.c) \
|
2024-03-16 23:15:13 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/filesystem/*.c) \
|
2015-06-21 23:33:46 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/filesystem/android/*.c) \
|
2024-03-16 23:15:13 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/filesystem/posix/*.c) \
|
2018-08-22 03:11:34 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/sensor/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/sensor/android/*.c) \
|
2024-06-08 23:55:15 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/sensor/dummy/*.c) \
|
2015-06-21 23:33:46 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/render/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/render/*/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/stdlib/*.c) \
|
2024-09-05 16:29:06 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/storage/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/storage/generic/*.c) \
|
2015-06-21 23:33:46 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/thread/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/thread/pthread/*.c) \
|
Add time and realtime clock functions
Adds functions to query the system's realtime clock, convert time intervals to/from a calendar date and time in either UTC or the local time, and perform time related calculations.
An SDL_Time type (a time interval represented in nanoseconds), and SDL_DateTime struct (broken down calendar date and time) were added to facilitate this functionality.
Querying the system time results in a value expressed in nanoseconds since the Unix epoch (Jan 1, 1970) in UTC +0000. Conversions to and from the various platform epochs and units are performed when required.
Any direct handling of timezones and DST were intentionally avoided. The offset from UTC is provided when converting from UTC to a local time by calculating the difference between the original UTC and the resulting local time, but no other timezone or DST information is used.
The preferred date formatting and 12/24 hour time for the system locale can be retrieved via global preferences.
Helper functions for obtaining the day of week or day or year for calendar date, and getting the number of days in a month in a given year are provided for convenience. These are simple, but useful for performing various time related calculations.
An automated test for time conversion is included, as is a simple standalone test to display the current system date and time onscreen along with a calendar, the rendering of which demonstrates the use of the utility functions (press up/down to increment or decrement the current month, and keys 1-5 to change the date and time formats).
2024-03-01 02:06:26 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/time/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/time/unix/*.c) \
|
2015-06-21 23:33:46 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/timer/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/timer/unix/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/video/*.c) \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/video/android/*.c) \
|
2023-01-26 02:16:24 +08:00
|
|
|
$(wildcard $(LOCAL_PATH)/src/video/yuv2rgb/*.c))
|
2015-06-21 23:33:46 +08:00
|
|
|
|
|
|
|
LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES
|
2018-11-03 08:18:03 +08:00
|
|
|
LOCAL_CFLAGS += \
|
|
|
|
-Wall -Wextra \
|
|
|
|
-Wmissing-prototypes \
|
|
|
|
-Wunreachable-code-break \
|
|
|
|
-Wunneeded-internal-declaration \
|
|
|
|
-Wmissing-variable-declarations \
|
|
|
|
-Wfloat-conversion \
|
|
|
|
-Wshorten-64-to-32 \
|
2019-08-30 14:43:13 +08:00
|
|
|
-Wunreachable-code-return \
|
|
|
|
-Wshift-sign-overflow \
|
|
|
|
-Wstrict-prototypes \
|
|
|
|
-Wkeyword-macro \
|
|
|
|
|
2018-11-03 08:18:03 +08:00
|
|
|
# Warnings we haven't fixed (yet)
|
|
|
|
LOCAL_CFLAGS += -Wno-unused-parameter -Wno-sign-compare
|
|
|
|
|
2023-06-04 14:55:56 +08:00
|
|
|
LOCAL_CXXFLAGS += -std=gnu++11
|
|
|
|
|
2019-01-13 04:18:44 +08:00
|
|
|
LOCAL_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -lOpenSLES -llog -landroid
|
2015-06-21 23:33:46 +08:00
|
|
|
|
build: add symbol versioning for SDL
If a program built against one version of SDL is run in an
environment where there is an earlier version of the SDL .so library
installed, the result varies depending on platform configuration; in
the best case, it won't start at all, at worst it aborts in the
middle of the user doing "something important" (systems implementing
lazy symbol resolution). verdefs on the other hand are always checked
on startup.
The dependency information present in programs and shared libraries
is not only of value to the dynamic linker, but also to a
distribution's package management. If the dynamic linker is able to
tell that a program is not runnable per the above, a package manager
is able to come to the same conclusion — and block the installation
of a nonfunctional program+library ensemble.
Because there are a lot more symbols than there are libraries (I am
going to throw in "10^4 to 1 or worse"), package managers generally
do not evaluate symbols, but only e.g. the SONAME, NEEDED and VERNEED
fields/blocks. Because the SONAME is the same between two SDL
versions like 2.0.24, and 2.0.26, everything rests on having verdefs.
This patch proposes the addition of verdefs.
2022-11-25 03:58:10 +08:00
|
|
|
LOCAL_LDFLAGS := -Wl,--no-undefined -Wl,--version-script=$(LOCAL_PATH)/src/dynapi/SDL_dynapi.sym
|
2022-06-18 18:54:18 +08:00
|
|
|
|
2018-06-25 03:21:01 +08:00
|
|
|
ifeq ($(NDK_DEBUG),1)
|
|
|
|
cmd-strip :=
|
|
|
|
endif
|
2017-12-17 02:40:41 +08:00
|
|
|
|
2018-12-02 01:19:11 +08:00
|
|
|
LOCAL_STATIC_LIBRARIES := cpufeatures
|
|
|
|
|
2015-06-21 23:33:46 +08:00
|
|
|
include $(BUILD_SHARED_LIBRARY)
|
|
|
|
|
2022-10-01 02:51:11 +08:00
|
|
|
|
2023-01-26 02:16:24 +08:00
|
|
|
###########################
|
|
|
|
#
|
|
|
|
# SDL_test static library
|
|
|
|
#
|
|
|
|
###########################
|
|
|
|
|
|
|
|
LOCAL_MODULE := SDL3_test
|
|
|
|
|
|
|
|
LOCAL_MODULE_FILENAME := libSDL3_test
|
|
|
|
|
|
|
|
LOCAL_SRC_FILES := \
|
|
|
|
$(subst $(LOCAL_PATH)/,, \
|
|
|
|
$(wildcard $(LOCAL_PATH)/src/test/*.c))
|
|
|
|
|
|
|
|
LOCAL_LDLIBS :=
|
|
|
|
|
|
|
|
LOCAL_LDFLAGS :=
|
|
|
|
|
|
|
|
LOCAL_EXPORT_LDLIBS :=
|
|
|
|
|
|
|
|
include $(BUILD_STATIC_LIBRARY)
|
|
|
|
|
|
|
|
|
2015-06-21 23:33:46 +08:00
|
|
|
###########################
|
|
|
|
#
|
|
|
|
# SDL static library
|
|
|
|
#
|
|
|
|
###########################
|
|
|
|
|
2022-11-22 12:28:58 +08:00
|
|
|
LOCAL_MODULE := SDL3_static
|
2015-06-21 23:33:46 +08:00
|
|
|
|
2022-11-22 12:28:58 +08:00
|
|
|
LOCAL_MODULE_FILENAME := libSDL3
|
2015-06-21 23:33:46 +08:00
|
|
|
|
2022-06-18 18:54:18 +08:00
|
|
|
LOCAL_LDLIBS :=
|
|
|
|
|
|
|
|
LOCAL_LDFLAGS :=
|
|
|
|
|
2017-08-31 05:25:01 +08:00
|
|
|
LOCAL_EXPORT_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -llog -landroid
|
2015-06-21 23:33:46 +08:00
|
|
|
|
|
|
|
include $(BUILD_STATIC_LIBRARY)
|
2017-08-14 08:59:59 +08:00
|
|
|
|
2018-12-02 01:19:11 +08:00
|
|
|
$(call import-module,android/cpufeatures)
|
2023-01-26 02:16:24 +08:00
|
|
|
|