[ion/sdl] Fix the Makefiles

This commit is contained in:
Romain Goyet
2019-03-06 20:59:43 +01:00
parent cbda08ac3c
commit e2bb859e85
7 changed files with 53 additions and 81 deletions

View File

@@ -1,34 +1,27 @@
# TODO
objs += $(addprefix ion/src/shared/, \
crc32.o \
crc32_padded.o \
events.o \
events_modifier.o \
power.o \
random.o \
timing.o \
dummy/backlight.o \
dummy/battery.o \
dummy/fcc_id.o \
dummy/led.o \
dummy/serial_number.o \
dummy/stack.o \
dummy/usb.o \
src += $(addprefix ion/src/shared/, \
crc32.cpp \
crc32_padded.cpp \
events.cpp \
events_modifier.cpp \
power.cpp \
random.cpp \
timing.cpp \
dummy/backlight.cpp \
dummy/battery.cpp \
dummy/fcc_id.cpp \
dummy/led.cpp \
dummy/serial_number.cpp \
dummy/stack.cpp \
dummy/usb.cpp \
)
objs += $(addprefix ion/src/sdl/shared/, \
display.o \
events.o \
main.o \
layout.o \
src += $(addprefix ion/src/sdl/shared/, \
display.cpp \
events.cpp \
main.cpp \
layout.cpp \
)
include ion/src/sdl/$(MODEL)/Makefile
#objs += $(addprefix ion/src/sdl/android/, \
# images.o \
#)
#SFLAGS += -I/Users/romain/Sources/SDL/include
#include ion/src/sdl/external/Makefile
include ion/src/sdl/external/Makefile

View File

@@ -1,7 +1,9 @@
objs += $(addprefix ion/src/sdl/android/src/cpp/, \
images.o \
src += $(addprefix ion/src/sdl/android/src/cpp/, \
images.cpp \
)
LDFLAGS += -ljnigraphics -llog
ANDROID_LIB_PATH = ion/src/sdl/android/libs
$(ANDROID_LIB_PATH)/%/libepsilon.so:

View File

@@ -1,5 +1,6 @@
TOOLCHAIN ?= android
EXE = so
LDFLAGS += -L$(SDL_PATH)/build/android/lib/$(NDK_ABI)
LDFLAGS += -lSDL2 -ljnigraphics -llog
ifdef NDK_ABI
BUILD_DIR := $(BUILD_DIR)/$(NDK_ABI)
endif

View File

@@ -3,14 +3,16 @@ EPSILON_ONBOARDING_APP = 0
SFLAGS += -fPIE
EXE = elf
ifndef SDL_PATH
$(error SDL_PATH should point to the SDL2 sources. A recent snapshot is required.)
endif
#ifndef SDL_PATH
# $(error SDL_PATH should point to the SDL2 sources. A recent snapshot is required.)
#endif
SFLAGS += -I$(SDL_PATH)/include
#SFLAGS += -I$(SDL_PATH)/include
ifndef MODEL
$(error MODEL should be defined)
endif
include build/platform.sdl.$(MODEL).mak
BUILD_DIR := $(BUILD_DIR)/$(MODEL)
include scripts/platform.sdl.$(MODEL).mak

View File

@@ -1,33 +1,18 @@
# CAUTION: All the following builds have to happen in a sequential order so we
# cannot use standard Make dependencies
.PHONY: dependencies
dependencies:
rm -rf ion/src/sdl/android/libs
# First, build libsdl
cd $(SDL_PATH) && build-scripts/androidbuildlibs.sh
cp -r $(SDL_PATH)/build/android/lib ion/src/sdl/android/libs
# Then build epsilon for armv7
rm -f ion/src/sdl/android/libs/armeabi-v7a/libepsilon.so
$(MAKE) ion/src/sdl/android/libs/armeabi-v7a/libepsilon.so
# Then for arm64
rm -f ion/src/sdl/android/libs/arm64-v8a/libepsilon.so
$(MAKE) ion/src/sdl/android/libs/arm64-v8a/libepsilon.so
# Then for x86
rm -f ion/src/sdl/android/libs/x86/libepsilon.so
$(MAKE) ion/src/sdl/android/libs/x86/libepsilon.so
# And eventually for x86_64
rm -f ion/src/sdl/android/libs/x86_64/libepsilon.so
$(MAKE) ion/src/sdl/android/libs/x86_64/libepsilon.so
# Last but not least, copy the sources from SDL
cp -r $(SDL_PATH)/android-project/app/src/main/java/org ion/src/sdl/android/src/java
$(BUILD_DIR)/app/libs/%/libepsilon.so: $$(@D)/.
$(Q) echo "MAKE NDK_ABI=$*"
$(Q) $(MAKE) NDK_ABI=$* epsilon.so
$(Q) cp build/sdl/android/$*/epsilon.so $@
epsilon.apk:
#rm ion/src/sdl/android/com.numworks.calculator/app/libs/arm64-v8a/libepsilon.so
#$(MAKE) ion/src/sdl/android/com.numworks.calculator/app/libs/arm64-v8a/libepsilon.so
cd ion/src/sdl/android ; ANDROID_HOME=/usr/local/android gradle assembleRelease
cp ion/src/sdl/android/build/outputs/apk/release/app-release-unsigned.apk epsilon.apk
NDK_ABIS = arm64-v8a x86_64
.PHONY: epsilon.apk
epsilon.apk: $(patsubst %,$(BUILD_DIR)/app/libs/%/libepsilon.so,$(NDK_ABIS))
@echo "GRADLE ion/src/sdl/android/build.gradle"
$(Q) ANDROID_HOME=/usr/local/android gradle -b ion/src/sdl/android/build.gradle assembleRelease
.PHONY: epsilon_run
epsilon_run:
ANDROID_HOME=/usr/local/android gradle -b ion/src/sdl/android/build.gradle assembleRelease
#rm ion/src/sdl/android/com.numworks.calculator/app/libs/arm64-v8a/libepsilon.so
#$(MAKE) ion/src/sdl/android/com.numworks.calculator/app/libs/arm64-v8a/libepsilon.so
cd ion/src/sdl/android ; ANDROID_HOME=/usr/local/android gradle installDebug

View File

@@ -1 +1 @@
include build/targets.sdl.$(MODEL).mak
include scripts/targets.sdl.$(MODEL).mak

View File

@@ -3,8 +3,6 @@ NDK_HOST_TAG ?= darwin-x86_64
NDK_TOOLCHAIN_PATH = $(NDK_PATH)/toolchains/llvm/prebuilt/$(NDK_HOST_TAG)/bin
NDK_ABI ?= arm64-v8a
ifeq ($(NDK_ABI),armeabi-v7a)
NDK_TARGET = armv7a-linux-androideabi
else ifeq ($(NDK_ABI),arm64-v8a)
@@ -13,29 +11,20 @@ else ifeq ($(NDK_ABI),x86)
NDK_TARGET = i686-linux-android
else ifeq ($(NDK_ABI),x86_64)
NDK_TARGET = x86_64-linux-android
else
$(error Unknown NDK_ABI)
endif
ifdef NDK_TARGET
NDK_VERSION ?= 21
CC = $(NDK_TOOLCHAIN_PATH)/$(NDK_TARGET)$(NDK_VERSION)-clang
CXX = $(NDK_TOOLCHAIN_PATH)/$(NDK_TARGET)$(NDK_VERSION)-clang++
LD = $(NDK_TOOLCHAIN_PATH)/$(NDK_TARGET)$(NDK_VERSION)-clang++
SFLAGS += -fPIC
#GDB = arm-none-eabi-gdb
#OBJCOPY = arm-none-eabi-objcopy
#SIZE = arm-none-eabi-size
#SFLAGS += -fdata-sections -ffunction-sections
#LDFLAGS += -Wl,--gc-sections
#SFLAGS += -fvisibility=hidden
#LDFLAGS += -Wl,-export-symbols,ion/src/sdl/export_list.txt
LDFLAGS += -shared
LDFLAGS += -static-libstdc++
#LDFLAGS += -Wl,-z,defs # Warn on missing symbols when linking the dynamic library
LDFLAGS += -Wl,-z,defs # Warn on missing symbols when linking the dynamic library
#LDFLAGS += -lsdl
endif