RFR: better support for cross compilation

Sergey Nazarkin snazarkin at azul.com
Fri Jul 13 19:38:37 UTC 2018


Hi!

Since there was no objection, I’ve committed the last version of Makefile changes. 


WBR,
Sergey Nazarkin




> On 2 Jul 2018, at 13:25, Sergey Nazarkin <snazarkin at azul.com> wrote:
> 
> So far I’ve got the only single response with the proposal to remove redundant PI_TOOLS variable. I’ve accepted it and new changeset would be 
> 
> diff -r 1b3d9720d724 Makefile
> --- a/Makefile	Tue Jun 19 19:15:30 2018 +0300
> +++ b/Makefile	Mon Jul 02 13:20:46 2018 +0300
> @@ -40,14 +40,19 @@
> 
> ###########################################################
> # check for required env vars
> +
> ifeq ($(CROSS_TOOL),)
> -  $(error "CROSS_TOOL is not defined. Please set CROSS_TOOL to point to the location of the raspberry pi GNU toolchain")
> +  $(error "CROSS_TOOL is not defined. Please set CROSS_TOOL to point to the location of the cross compilation GNU toolchain")
> endif
> 
> ifeq ($(JAVA_HOME),)
>   $(error "JAVA_HOME is not defined. Please set JAVA_HOME to point to the location of the JDK8 installation")
> endif
> 
> +# Target device JDK build, required for cross compilation, should contain "include /jni.h" and "inlude/linux/jni_md.h"
> +# Default value points to host JDK
> +TARGET_JDK_PATH ?= $(JAVA_HOME)
> +
> BUILD_DEVICEACCESS := true
> 
> DIO_JAVA_API_DIRS := \
> @@ -79,10 +84,10 @@
> BUILD_NUMBER ?= dev
> 
> ifneq ($(BUILD_NUMBER),dev)
> -  # only include 'b' when you have an actual build number 
> +  # only include 'b' when you have an actual build number
>   B := b
> endif
> -  
> +
> 
> ifeq ($(TARGET_CPU_LEGACY_LIB),arm)
>   OSGI_ARCH := arm
> @@ -165,15 +170,15 @@
> 
> #######################################################################################################
> # tool and flag setup for arm (rasp pi) build
> -TARGET_TOOLCHAIN := $(CROSS_TOOL)
> -TARGET_CC := $(TARGET_TOOLCHAIN)gcc
> -TARGET_CXX := $(TARGET_TOOLCHAIN)g++
> -TARGET_LD := $(TARGET_TOOLCHAIN)gcc
> +TARGET_CC := $(CROSS_TOOL)gcc
> +TARGET_CXX := $(CROSS_TOOL)g++
> +TARGET_LD := $(CROSS_TOOL)gcc
> +
> JAVAC := $(JAVA_HOME)/bin/javac
> JAR := $(JAVA_HOME)/bin/jar
> MKDIR := mkdir -p
> TARGET_C_FLAGS = $(USER_C_FLAGS) -fPIC -Wno-psabi -DJAVACALL_REPORT_LEVEL=0 -DENABLE_DEVICEACCESS -c -MMD -MF $(NATIVE_OUT_DIR)/$(@).d
> -TARGET_INCLUDES = $(foreach d,$(DIO_INCLUDE_DIRS),-I$(d)) -I$(JAVA_TARGET_HOME)/include -I$(JAVA_TARGET_HOME)/include/linux
> +TARGET_INCLUDES = $(foreach d,$(DIO_INCLUDE_DIRS),-I$(d)) -I$(TARGET_JDK_PATH)/include -I$(TARGET_JDK_PATH)/include/linux
> TARGET_CXX_FLAGS = $(USER_CXX_FLAGS) -fPIC -Wno-psabi -DJAVACALL_REPORT_LEVEL=4 -DENABLE_DEVICEACCESS -c
> TARGET_LD_FLAGS= $(USER_LD_FLAGS) -Xlinker -z -Xlinker defs -Xlinker -O1 \
>           -shared \
> 



More information about the dio-dev mailing list