From 2f7436938dbd34b91ccdd5110c94d6c81eb1b4f5 Mon Sep 17 00:00:00 2001 From: Woodrow Barlow Date: Wed, 12 Nov 2014 11:12:38 -0500 Subject: [PATCH 1/3] Linux Make system and MIPS native binary Implemented a Makefile system for Linux builds (could be extended for windows builds as well), see src/cpp/README.make for details. Included a cross-compiled native binary for MIPS architecture on Linux. --- src/cpp/Makefile | 11 +++++++++++ src/cpp/_nix_based/Makefile | 9 +++++++++ src/java/libs/linux/libjSSC-2.8_mips.so | Bin 0 -> 24916 bytes 3 files changed, 20 insertions(+) create mode 100644 src/cpp/Makefile create mode 100644 src/cpp/_nix_based/Makefile create mode 100755 src/java/libs/linux/libjSSC-2.8_mips.so diff --git a/src/cpp/Makefile b/src/cpp/Makefile new file mode 100644 index 000000000..c8026ee83 --- /dev/null +++ b/src/cpp/Makefile @@ -0,0 +1,11 @@ +VER = 2.8 +MAKEARCH = $(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) + +all: + $(MAKEARCH) VER=$(VER) -C _nix_based/ + mkdir -p target + cp -f _nix_based/*.so target/ + +clean: + rm -rf target + $(MAKE) -C _nix_based/ clean diff --git a/src/cpp/_nix_based/Makefile b/src/cpp/_nix_based/Makefile new file mode 100644 index 000000000..17dcf92ec --- /dev/null +++ b/src/cpp/_nix_based/Makefile @@ -0,0 +1,9 @@ +CC = $(CROSS_COMPILE)g++ +CFLAGS = -Wall -c -fpic + +all: + $(CC) $(CFLAGS) jssc.cpp + $(CC) -shared -o libjSSC-$(VER)_$(ARCH).so jssc.o + +clean: + rm -rf *.o *.so diff --git a/src/java/libs/linux/libjSSC-2.8_mips.so b/src/java/libs/linux/libjSSC-2.8_mips.so new file mode 100755 index 0000000000000000000000000000000000000000..e056eeb9668b486bbdde8206b1afe63b097064b9 GIT binary patch literal 24916 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 Date: Wed, 12 Nov 2014 11:16:43 -0500 Subject: [PATCH 2/3] Include Make System Readme I forgot to add the readme to the last commit. --- src/cpp/README.make | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/cpp/README.make diff --git a/src/cpp/README.make b/src/cpp/README.make new file mode 100644 index 000000000..110eacadc --- /dev/null +++ b/src/cpp/README.make @@ -0,0 +1,32 @@ +# An Explanation of the Make Process for jSSC Native Binaries + +The Make system is only configured to work for Linux builds at this time. + +If you just need to build a native binary for the environment on which you are +building, simply run "make". The resulting .so file will be in the "target" +directory. You will need to rename the file to match the following format (arch +will be ommitted on a default build): + + libjSSC-[JSSC_VERSION_NUMBER]_[ARCHITECTURE].so + +Below is a list of recognized strings for the [ARCHITECTURE] field: + + * "x86" or "x86_64" for i386, i686, and AMD architectures (32-bit and + 64-bit, respectively). + * "armsf" or "armhf" for ARM architectures (soft-float and hard-float, + respectively). + * "mips" for MIPS architectures. + +If you need to cross-compile the native binary, that can be done by specifying +an architecture and a toolchain prefix on the command line when executing make. +These can be specified with the following syntax: + + make ARCH=[ARCHITECTURE] CROSS_COMPILE=[TOOLCHAIN_PREFIX] + +This follows the example of Linux kernel modules. The architecture should be +one of the ones specified above. The toolchain prefix is whatever prefix your +toolchain puts before the gnu compiler commands. For example, if I want to +compile for the MIPS processor using the uclibc toolchain (for which the usual +command to launch g++ would be "mips-linux-g++"), I would specify my toolchain +prefix as "mips-linux-". This can also be specified as an absolute path, such +as "/opt/toolchains/uclibc-crosstools-gcc/usr/bin/mips-linux-". From 63018ec2d2e9babc639c592fcab5e30e7befc4e9 Mon Sep 17 00:00:00 2001 From: Woodrow Barlow Date: Thu, 13 Nov 2014 14:55:51 -0500 Subject: [PATCH 3/3] Fix file permissions on new binary. --- src/java/libs/linux/libjSSC-2.8_mips.so | Bin 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 src/java/libs/linux/libjSSC-2.8_mips.so diff --git a/src/java/libs/linux/libjSSC-2.8_mips.so b/src/java/libs/linux/libjSSC-2.8_mips.so old mode 100755 new mode 100644