android comilation availlable (only for ARMv9)

This commit is contained in:
Edouard Dupin 2012-08-09 18:38:28 +02:00
parent f4a1e15bad
commit 3a40dc9fee
7 changed files with 37 additions and 47 deletions

View File

@ -11,19 +11,12 @@ TARGET_ARCH = ARM
CROSS = $(PROJECT_NDK)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi- CROSS = $(PROJECT_NDK)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-
$(info ------------------------------------------------------------------------) #$(info (sh) Create folder : $(JAVA_FOLDER)/ & $(EWOL_JAVA_FOLDER))
$(info Project name : $(PROJECT_NAME))
$(info Project Vendor : $(PROJECT_VENDOR))
$(info Build date : $(BUILD_TIME) )
$(info Tag : $(PROJECT_VERSION_TAG) )
$(info ------------------------------------------------------------------------)
$(info (sh) Create folder : $(JAVA_FOLDER)/ & $(EWOL_JAVA_FOLDER))
$(shell mkdir -p $(JAVA_FOLDER)/) $(shell mkdir -p $(JAVA_FOLDER)/)
$(shell mkdir -p $(EWOL_JAVA_FOLDER)/) $(shell mkdir -p $(EWOL_JAVA_FOLDER)/)
$(info (sh) copy the java Files & Replace __XXX__ element with project properties) #$(info (sh) copy the java Files & Replace __XXX__ element with project properties)
tmp=$(shell cp -v $(EWOL_FOLDER)/Java/PROJECT_NAME.java $(JAVA_FOLDER)/$(PROJECT_NAME).java) tmp=$(shell cp $(EWOL_FOLDER)/Java/PROJECT_NAME.java $(JAVA_FOLDER)/$(PROJECT_NAME).java)
tmp+=$(shell sed -i "s|__PROJECT_VENDOR__|$(PROJECT_VENDOR)|" $(JAVA_FOLDER)/$(PROJECT_NAME).java) tmp+=$(shell sed -i "s|__PROJECT_VENDOR__|$(PROJECT_VENDOR)|" $(JAVA_FOLDER)/$(PROJECT_NAME).java)
tmp+=$(shell sed -i "s|__PROJECT_NAME__|$(PROJECT_NAME)|" $(JAVA_FOLDER)/$(PROJECT_NAME).java) tmp+=$(shell sed -i "s|__PROJECT_NAME__|$(PROJECT_NAME)|" $(JAVA_FOLDER)/$(PROJECT_NAME).java)
tmp+=$(shell sed -i "s|__PROJECT_PACKAGE__|$(PROJECT_PACKAGE)|" $(JAVA_FOLDER)/$(PROJECT_NAME).java) tmp+=$(shell sed -i "s|__PROJECT_PACKAGE__|$(PROJECT_PACKAGE)|" $(JAVA_FOLDER)/$(PROJECT_NAME).java)
@ -34,43 +27,37 @@ tmp+=$(shell cp $(EWOL_FOLDER)/Java/interfaceSurfaceView.java $(EWOL_JAVA_FOLDER
tmp+=$(shell cp $(EWOL_FOLDER)/Java/interfaceAudio.java $(EWOL_JAVA_FOLDER)/) tmp+=$(shell cp $(EWOL_FOLDER)/Java/interfaceAudio.java $(EWOL_JAVA_FOLDER)/)
$(info $(tmp)) $(info $(tmp))
$(info (sh) copy the cpp for jni File : $(EWOL_FOLDER)/Java/ewolAndroidAbstraction.cpp) #$(info (sh) copy the cpp for jni File : $(EWOL_FOLDER)/Java/ewolAndroidAbstraction.cpp)
tmp=$(shell cp -v $(EWOL_FOLDER)/Java/ewolAndroidAbstraction.cpp jni/) tmp=$(shell cp $(EWOL_FOLDER)/Java/ewolAndroidAbstraction.cpp jni/)
tmp+=$(shell sed -i "s|__PROJECT_VENDOR__|$(PROJECT_VENDOR)|" jni/ewolAndroidAbstraction.cpp) tmp+=$(shell sed -i "s|__PROJECT_VENDOR__|$(PROJECT_VENDOR)|" jni/ewolAndroidAbstraction.cpp)
tmp+=$(shell sed -i "s|__PROJECT_NAME__|$(PROJECT_NAME)|" jni/ewolAndroidAbstraction.cpp) tmp+=$(shell sed -i "s|__PROJECT_NAME__|$(PROJECT_NAME)|" jni/ewolAndroidAbstraction.cpp)
tmp+=$(shell sed -i "s|__PROJECT_PACKAGE__|$(PROJECT_PACKAGE)|" jni/ewolAndroidAbstraction.cpp) tmp+=$(shell sed -i "s|__PROJECT_PACKAGE__|$(PROJECT_PACKAGE)|" jni/ewolAndroidAbstraction.cpp)
$(info $(tmp)) $(info $(tmp))
# C include folder
TARGET_GLOBAL_C_INCLUDES+=-I$(PROJECT_NDK)/sources/cxx-stl/gabi++/include
# C++ include folder
TARGET_GLOBAL_C_INCLUDES=-I$(PROJECT_NDK)/sources/cxx-stl/stlport/stlport
TARGET_GLOBAL_C_INCLUDES+=-I$(PROJECT_NDK)/platforms/android-14/arch-arm/usr/include
ANDROID_BOARD_ID = 14
TARGET_GLOBAL_C_INCLUDES+=-I$(PROJECT_NDK)/platforms/android-$(ANDROID_BOARD_ID)/arch-arm/usr/include
TARGET_GLOBAL_LDLIBS_SHARED = --sysroot=$(PROJECT_NDK)/platforms/android-$(ANDROID_BOARD_ID)/arch-arm
$(info ------------------------------------------------------------------------)
include $(EWOL_FOLDER)/Build/coreLinux/main.mk include $(EWOL_FOLDER)/Build/coreLinux/main.mk
$(info " (ant) build java code") java : all
PATH:=$(PROJECT_SDK)/tools/:$(PROJECT_SDK)/platform-tools/:$(PATH) ant -Dsdk.dir=$(PROJECT_SDK) debug) @mkdir -p libs/armeabi/
$(info " (sh) Clear previous sources ") # note : this change the lib name ...
#$(shell rm -rf src jni/ewolAndroidAbstraction.cpp) cp ./out_$(TARGET_OS)/$(BUILD_DIRECTORY_MODE)/obj/usr/lib/$(PROJECT_PACKAGE).so libs/armeabi/lib$(PROJECT_PACKAGE).so
@echo " (ant) build java code"
TARGET_GLOBAL_LDLIBS_SHARED = --sysroot=$(PROJECT_NDK)/platforms/android-14/arch-arm \ PATH=$(PROJECT_SDK)/tools/:$(PROJECT_SDK)/platform-tools/:$(PATH) ant -Dsdk.dir=$(PROJECT_SDK) debug
$(PROJECT_NDK)/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libgnustl_static.a \ @echo " (sh) Clear previous sources "
$(PROJECT_NDK)/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libsupc++.a \ @rm -rf src jni/ewolAndroidAbstraction.cpp
-lstdc++ \
$(PROJECT_NDK)/platforms/android-14/arch-arm/usr/lib/libstdc++.a
install: java
@echo "------------------------------------------------------------------------"
@echo ' INSTALL : ./bin/$(PROJECT_NAME)-debug.apk'
@echo "------------------------------------------------------------------------"
@# $(PROJECT_SDK)/platform-tools/adb kill-server
@# install application
sudo $(PROJECT_SDK)/platform-tools/adb install -r ./bin/$(PROJECT_NAME)-debug.apk
#install: all
# @echo "------------------------------------------------------------------------"
# @echo ' INSTALL : ./bin/$(PROJECT_NAME)-debug.apk'
# @echo "------------------------------------------------------------------------"
# @# $(PROJECT_SDK)/platform-tools/adb kill-server
# @# install application
# sudo $(PROJECT_SDK)/platform-tools/adb install -r ./bin/$(PROJECT_NAME)-debug.apk
#
#clean: #clean:
# @echo "------------------------------------------------------------------------" # @echo "------------------------------------------------------------------------"
# @echo ' CLEANING : bin libs gen obj' # @echo ' CLEANING : bin libs gen obj'

View File

@ -296,10 +296,12 @@ module-get-build-dir = \
$(TARGET_OUT_BUILD)/$1 $(TARGET_OUT_BUILD)/$1
module-get-build-filename = \ module-get-build-filename = \
$(if $(__modules.$1.MODULE_FILENAME), $(TARGET_OUT_BUILD)/$1/$(__modules.$1.MODULE_FILENAME) ) $(info build of $1) \
$(TARGET_OUT_BUILD)/$1/$(__modules.$1.MODULE_FILENAME)
module-get-staging-filename = \ module-get-staging-filename = \
$(if $(__modules.$1.MODULE_FILENAME), $(TARGET_OUT_STAGING)/$(__modules.$1.DESTDIR)/$(__modules.$1.MODULE_FILENAME) ) $(info staging of $1 ==> $(__modules.$1.MODULE_FILENAME)) \
$(TARGET_OUT_STAGING)/$(__modules.$1.DESTDIR)/$(__modules.$1.MODULE_FILENAME)
############################################################################### ###############################################################################
## Generate autoconf.h file from config file. ## Generate autoconf.h file from config file.
@ -417,10 +419,7 @@ define transform-o-to-shared-lib
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
@echo "SharedLib: $(PRIVATE_MODULE) ==> $(call path-from-top,$@)" @echo "SharedLib: $(PRIVATE_MODULE) ==> $(call path-from-top,$@)"
$(call check-pwd-is-top-dir) $(call check-pwd-is-top-dir)
@#$(info PRIVATE_ALL_SHARED_LIBRARIES = $(PRIVATE_ALL_SHARED_LIBRARIES)) $(Q)$(GXX) \
@#$(info PRIVATE_ALL_STATIC_LIBRARIES = $(PRIVATE_ALL_STATIC_LIBRARIES))
$(Q)
$(GXX) \
$(TARGET_GLOBAL_LDFLAGS_SHARED) \ $(TARGET_GLOBAL_LDFLAGS_SHARED) \
-Wl,-Map -Wl,$(basename $@).map \ -Wl,-Map -Wl,$(basename $@).map \
-shared \ -shared \

View File

@ -9,7 +9,7 @@
LOCAL_MODULE_CLASS := EXECUTABLE LOCAL_MODULE_CLASS := EXECUTABLE
LOCAL_DESTDIR := usr/bin LOCAL_DESTDIR := usr/bin
ifndef LOCAL_MODULE_FILENAME ifeq ("$(LOCAL_MODULE_FILENAME)","")
LOCAL_MODULE_FILENAME := $(LOCAL_MODULE)$(TARGET_EXE_SUFFIX) LOCAL_MODULE_FILENAME := $(LOCAL_MODULE)$(TARGET_EXE_SUFFIX)
endif endif

View File

@ -110,16 +110,20 @@ LOCAL_SHARED_LIBRARIES += \
# Get path # Get path
all_shared_libraries := \ all_shared_libraries := \
$(foreach lib,$(LOCAL_SHARED_LIBRARIES), \ $(foreach lib,$(LOCAL_SHARED_LIBRARIES), \
$(info shlib=$(lib)) \
$(call module-get-staging-filename,$(lib))) $(call module-get-staging-filename,$(lib)))
all_static_libraries := \ all_static_libraries := \
$(foreach lib,$(LOCAL_STATIC_LIBRARIES), \ $(foreach lib,$(LOCAL_STATIC_LIBRARIES), \
$(info statlib=$(lib)) \
$(call module-get-staging-filename,$(lib))) $(call module-get-staging-filename,$(lib)))
all_whole_static_libraries := \ all_whole_static_libraries := \
$(foreach lib,$(LOCAL_WHOLE_STATIC_LIBRARIES), \ $(foreach lib,$(LOCAL_WHOLE_STATIC_LIBRARIES), \
$(info whstaticlib=$(lib)) \
$(call module-get-staging-filename,$(lib))) $(call module-get-staging-filename,$(lib)))
all_external_libraries := \ all_external_libraries := \
$(foreach lib,$(LOCAL_EXTERNAL_LIBRARIES), \ $(foreach lib,$(LOCAL_EXTERNAL_LIBRARIES), \
$(info extlib=$(lib)) \
$(TARGET_OUT_BUILD)/$(lib)/$(lib).done) $(TARGET_OUT_BUILD)/$(lib)/$(lib).done)
# all_libraries is used for the dependencies. # all_libraries is used for the dependencies.

View File

@ -9,7 +9,7 @@
LOCAL_MODULE_CLASS := SHARED_LIBRARY LOCAL_MODULE_CLASS := SHARED_LIBRARY
LOCAL_DESTDIR := usr/lib LOCAL_DESTDIR := usr/lib
ifndef LOCAL_MODULE_FILENAME ifeq ("$(LOCAL_MODULE_FILENAME)","")
LOCAL_MODULE_FILENAME := $(LOCAL_MODULE)$(TARGET_SHARED_LIB_SUFFIX) LOCAL_MODULE_FILENAME := $(LOCAL_MODULE)$(TARGET_SHARED_LIB_SUFFIX)
endif endif

View File

@ -9,7 +9,7 @@
LOCAL_MODULE_CLASS := STATIC_LIBRARY LOCAL_MODULE_CLASS := STATIC_LIBRARY
LOCAL_DESTDIR := usr/lib LOCAL_DESTDIR := usr/lib
ifndef LOCAL_MODULE_FILENAME ifeq ("$(LOCAL_MODULE_FILENAME)","")
LOCAL_MODULE_FILENAME := $(LOCAL_MODULE)$(TARGET_STATIC_LIB_SUFFIX) LOCAL_MODULE_FILENAME := $(LOCAL_MODULE)$(TARGET_STATIC_LIB_SUFFIX)
endif endif

View File

@ -9,7 +9,7 @@ ifeq ("$(TARGET_OS)","Android")
COMMON_FLAGS_WARNINGS := -DANDROID -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ \ COMMON_FLAGS_WARNINGS := -DANDROID -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ \
-fpic -ffunction-sections -funwind-tables -fstack-protector \ -fpic -ffunction-sections -funwind-tables -fstack-protector \
-Wno-psabi -march=armv5te -mtune=xscale -msoft-float -fno-exceptions -mthumb \ -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -fno-exceptions -mthumb \
-fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -MMD -MP -MF -D_STLP_USE_SIMPLE_NODE_ALLOC -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -MMD -MP -MF
GCC_FLAGS_WARNINGS := GCC_FLAGS_WARNINGS :=
GXX_FLAGS_WARNINGS := -fno-rtti -Wa,--noexecstack GXX_FLAGS_WARNINGS := -fno-rtti -Wa,--noexecstack
else else