Merge pull request #70 from jwang302/develop
Adding support of Linux-ppc64, IBM JDK and using git mirrors for native snappy.
This commit is contained in:
commit
dfe9cebc49
26
Makefile
26
Makefile
|
@ -13,6 +13,16 @@ SNAPPY_SRC:=$(addprefix $(SNAPPY_SRC_DIR)/,$(SNAPPY_CC))
|
||||||
SNAPPY_OBJ:=$(addprefix $(SNAPPY_OUT)/,$(patsubst %.cc,%.o,$(SNAPPY_CC)) SnappyNative.o)
|
SNAPPY_OBJ:=$(addprefix $(SNAPPY_OUT)/,$(patsubst %.cc,%.o,$(SNAPPY_CC)) SnappyNative.o)
|
||||||
|
|
||||||
SNAPPY_UNPACKED:=$(TARGET)/snappy-extracted.log
|
SNAPPY_UNPACKED:=$(TARGET)/snappy-extracted.log
|
||||||
|
SNAPPY_GIT_UNPACKED:=$(TARGET)/snappy-git-extracted.log
|
||||||
|
|
||||||
|
ifdef USE_GIT
|
||||||
|
ifndef GIT_REPO_URL
|
||||||
|
$(warning GIT_REPO_URL is not set when using git)
|
||||||
|
endif
|
||||||
|
ifndef GIT_SNAPPY_BRANCH
|
||||||
|
$(warning GIT_SNAPPY_BRANCH is not set when using git)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CXXFLAGS:=$(CXXFLAGS) -I$(SNAPPY_SRC_DIR)
|
CXXFLAGS:=$(CXXFLAGS) -I$(SNAPPY_SRC_DIR)
|
||||||
|
|
||||||
|
@ -29,6 +39,14 @@ $(SNAPPY_ARCHIVE):
|
||||||
$(SNAPPY_UNPACKED): $(SNAPPY_ARCHIVE)
|
$(SNAPPY_UNPACKED): $(SNAPPY_ARCHIVE)
|
||||||
$(TAR) xvfz $< -C $(TARGET)
|
$(TAR) xvfz $< -C $(TARGET)
|
||||||
touch $@
|
touch $@
|
||||||
|
cd $(SNAPPY_SRC_DIR) && ./configure
|
||||||
|
|
||||||
|
$(SNAPPY_GIT_UNPACKED):
|
||||||
|
@mkdir -p $(SNAPPY_SRC_DIR)
|
||||||
|
git clone $(GIT_REPO_URL) $(SNAPPY_SRC_DIR)
|
||||||
|
git --git-dir=$(SNAPPY_SRC_DIR)/.git --work-tree=$(SNAPPY_SRC_DIR) checkout -b local/snappy-$(GIT_SNAPPY_BRANCH) $(GIT_SNAPPY_BRANCH)
|
||||||
|
touch $@
|
||||||
|
cd $(SNAPPY_SRC_DIR) && ./configure
|
||||||
|
|
||||||
jni-header: $(SRC)/org/xerial/snappy/SnappyNative.h
|
jni-header: $(SRC)/org/xerial/snappy/SnappyNative.h
|
||||||
|
|
||||||
|
@ -46,7 +64,11 @@ src/main/resources/org/xerial/snappy/SnappyNativeLoader.bytecode: src/main/resou
|
||||||
$(JAVAC) -source 1.5 -target 1.5 -d $(TARGET)/temp $<
|
$(JAVAC) -source 1.5 -target 1.5 -d $(TARGET)/temp $<
|
||||||
cp $(TARGET)/temp/org/xerial/snappy/SnappyNativeLoader.class $@
|
cp $(TARGET)/temp/org/xerial/snappy/SnappyNativeLoader.class $@
|
||||||
|
|
||||||
|
ifndef USE_GIT
|
||||||
$(SNAPPY_SRC): $(SNAPPY_UNPACKED)
|
$(SNAPPY_SRC): $(SNAPPY_UNPACKED)
|
||||||
|
else
|
||||||
|
$(SNAPPY_SRC): $(SNAPPY_GIT_UNPACKED)
|
||||||
|
endif
|
||||||
|
|
||||||
$(SNAPPY_OUT)/%.o : $(SNAPPY_SRC_DIR)/%.cc
|
$(SNAPPY_OUT)/%.o : $(SNAPPY_SRC_DIR)/%.cc
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
|
@ -73,7 +95,11 @@ NATIVE_DLL:=$(NATIVE_DIR)/$(LIBNAME)
|
||||||
|
|
||||||
snappy-jar-version:=snappy-java-$(shell $(JAVA) -jar lib/silk-weaver.jar find 'project(artifactId, version)' pom.xml | grep snappy-java | awk '{ print $$2; }')
|
snappy-jar-version:=snappy-java-$(shell $(JAVA) -jar lib/silk-weaver.jar find 'project(artifactId, version)' pom.xml | grep snappy-java | awk '{ print $$2; }')
|
||||||
|
|
||||||
|
ifndef USE_GIT
|
||||||
native: $(SNAPPY_UNPACKED) $(NATIVE_DLL)
|
native: $(SNAPPY_UNPACKED) $(NATIVE_DLL)
|
||||||
|
else
|
||||||
|
native: $(SNAPPY_GIT_UNPACKED) $(NATIVE_DLL)
|
||||||
|
endif
|
||||||
snappy: native $(TARGET)/$(snappy-jar-version).jar
|
snappy: native $(TARGET)/$(snappy-jar-version).jar
|
||||||
|
|
||||||
$(NATIVE_DLL): $(SNAPPY_OUT)/$(LIBNAME)
|
$(NATIVE_DLL): $(SNAPPY_OUT)/$(LIBNAME)
|
||||||
|
|
|
@ -22,6 +22,7 @@ OSINFO_PROG := lib/org/xerial/snappy/OSInfo.class
|
||||||
OS_NAME := $(shell $(JAVA) -cp lib $(OSINFO_CLASS) --os)
|
OS_NAME := $(shell $(JAVA) -cp lib $(OSINFO_CLASS) --os)
|
||||||
OS_ARCH := $(shell $(JAVA) -cp lib $(OSINFO_CLASS) --arch)
|
OS_ARCH := $(shell $(JAVA) -cp lib $(OSINFO_CLASS) --arch)
|
||||||
LIB_FOLDER := $(shell $(JAVA) -cp lib $(OSINFO_CLASS))
|
LIB_FOLDER := $(shell $(JAVA) -cp lib $(OSINFO_CLASS))
|
||||||
|
IBM_JDK_LIB := lib/inc_ibm
|
||||||
|
|
||||||
# Windows uses different path separators
|
# Windows uses different path separators
|
||||||
ifeq ($(OS_NAME),Windows)
|
ifeq ($(OS_NAME),Windows)
|
||||||
|
@ -41,13 +42,24 @@ endif
|
||||||
|
|
||||||
# os=Default is meant to be generic unix/linux
|
# os=Default is meant to be generic unix/linux
|
||||||
|
|
||||||
known_os_archs := Linux-x86 Linux-x86_64 Linux-arm Linux-armhf Mac-x86 Mac-x86_64 FreeBSD-x86_64 Windows-x86 Windows-x86_64 SunOS-x86 SunOS-sparc SunOS-x86_64
|
known_os_archs := Linux-x86 Linux-x86_64 Linux-arm Linux-armhf Linux-ppc64 Mac-x86 Mac-x86_64 FreeBSD-x86_64 Windows-x86 Windows-x86_64 SunOS-x86 SunOS-sparc SunOS-x86_64
|
||||||
os_arch := $(OS_NAME)-$(OS_ARCH)
|
os_arch := $(OS_NAME)-$(OS_ARCH)
|
||||||
|
IBM_JDK_7 := $(findstring IBM, $(shell $(JAVA) -version 2>&1 | grep IBM | grep "JRE 1.7"))
|
||||||
|
|
||||||
ifeq (,$(findstring $(strip $(os_arch)),$(known_os_archs)))
|
ifeq (,$(findstring $(strip $(os_arch)),$(known_os_archs)))
|
||||||
os_arch := Default
|
os_arch := Default
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($(IBM_JDK_7),)
|
||||||
|
$(shell mkdir -p $(IBM_JDK_LIB))
|
||||||
|
$(shell cp $(JAVA_HOME)/include/jniport.h $(IBM_JDK_LIB))
|
||||||
|
$(shell sed -i "s|#define JNIEXPORT *$$|#define JNIEXPORT __attribute__((__visibility__(\"default\")))|" $(IBM_JDK_LIB)/jniport.h)
|
||||||
|
$(shell sed -i "s|typedef long long jlong;.*|/*typedef long long jlong;*/|" $(IBM_JDK_LIB)/jniport.h)
|
||||||
|
$(shell cp $(JAVA_HOME)/include/linux/jni_md.h $(IBM_JDK_LIB))
|
||||||
|
$(shell sed -i "s|#define JNIEXPORT|#define JNIEXPORT __attribute__((__visibility__(\"default\")))|" $(IBM_JDK_LIB)/jni_md.h)
|
||||||
|
$(shell sed -i "s|typedef long long jlong;.*|/*typedef long long jlong;*/|" $(IBM_JDK_LIB)/jni_md.h)
|
||||||
|
endif
|
||||||
|
|
||||||
# cross-compilation toolchain prefix (e.g. "arm-linux-gnueabi-")
|
# cross-compilation toolchain prefix (e.g. "arm-linux-gnueabi-")
|
||||||
CROSS_PREFIX :=
|
CROSS_PREFIX :=
|
||||||
|
|
||||||
|
@ -60,18 +72,37 @@ Default_SNAPPY_FLAGS :=
|
||||||
|
|
||||||
Linux-x86_CXX := $(CROSS_PREFIX)g++
|
Linux-x86_CXX := $(CROSS_PREFIX)g++
|
||||||
Linux-x86_STRIP := $(CROSS_PREFIX)strip
|
Linux-x86_STRIP := $(CROSS_PREFIX)strip
|
||||||
|
ifeq ($(IBM_JDK_7),)
|
||||||
Linux-x86_CXXFLAGS := -include lib/inc_linux/jni_md.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -m32
|
Linux-x86_CXXFLAGS := -include lib/inc_linux/jni_md.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -m32
|
||||||
|
else
|
||||||
|
Linux-x86_CXXFLAGS := -include $(IBM_JDK_LIB)/jni_md.h -include $(IBM_JDK_LIB)/jniport.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -m32
|
||||||
|
endif
|
||||||
Linux-x86_LINKFLAGS := -shared -static-libgcc -static-libstdc++
|
Linux-x86_LINKFLAGS := -shared -static-libgcc -static-libstdc++
|
||||||
Linux-x86_LIBNAME := libsnappyjava.so
|
Linux-x86_LIBNAME := libsnappyjava.so
|
||||||
Linux-x86_SNAPPY_FLAGS:=
|
Linux-x86_SNAPPY_FLAGS:=
|
||||||
|
|
||||||
Linux-x86_64_CXX := $(CROSS_PREFIX)g++
|
Linux-x86_64_CXX := $(CROSS_PREFIX)g++
|
||||||
Linux-x86_64_STRIP := $(CROSS_PREFIX)strip
|
Linux-x86_64_STRIP := $(CROSS_PREFIX)strip
|
||||||
Linux-x86_64_CXXFLAGS := -include lib/inc_linux/jni_md.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -m64
|
ifeq ($(IBM_JDK_7),)
|
||||||
|
Linux-x86_64_CXXFLAGS := -Ilib/inc_linux -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -m64
|
||||||
|
else
|
||||||
|
Linux-x86_64_CXXFLAGS := -include $(IBM_JDK_LIB)/jni_md.h -include $(IBM_JDK_LIB)/jniport.h -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -m64
|
||||||
|
endif
|
||||||
Linux-x86_64_LINKFLAGS := -shared -static-libgcc -static-libstdc++
|
Linux-x86_64_LINKFLAGS := -shared -static-libgcc -static-libstdc++
|
||||||
Linux-x86_64_LIBNAME := libsnappyjava.so
|
Linux-x86_64_LIBNAME := libsnappyjava.so
|
||||||
Linux-x86_64_SNAPPY_FLAGS :=
|
Linux-x86_64_SNAPPY_FLAGS :=
|
||||||
|
|
||||||
|
Linux-ppc64_CXX := g++
|
||||||
|
Linux-ppc64_STRIP := strip
|
||||||
|
ifeq ($(IBM_JDK_7),)
|
||||||
|
Linux-ppc64_CXXFLAGS := -DHAVE_CONFIG_H -Ilib/inc_linux -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -m64
|
||||||
|
else
|
||||||
|
Linux-ppc64_CXXFLAGS := -DHAVE_CONFIG_H -include $(IBM_JDK_LIB)/jni_md.h -include $(IBM_JDK_LIB)/jniport.h -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux -O2 -fPIC
|
||||||
|
endif
|
||||||
|
Linux-ppc64_LINKFLAGS := -shared -static-libgcc -static-libstdc++
|
||||||
|
Linux-ppc64_LIBNAME := libsnappyjava.so
|
||||||
|
Linux-ppc64_SNAPPY_FLAGS :=
|
||||||
|
|
||||||
SunOS-x86_CXX := g++
|
SunOS-x86_CXX := g++
|
||||||
SunOS-x86_STRIP := strip
|
SunOS-x86_STRIP := strip
|
||||||
SunOS-x86_CXXFLAGS := -include lib/inc_linux/jni_md.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden
|
SunOS-x86_CXXFLAGS := -include lib/inc_linux/jni_md.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden
|
||||||
|
|
Loading…
Reference in New Issue