From d4c532b07370292677bd9bae29f7cda20efae5cf Mon Sep 17 00:00:00 2001 From: Nico Date: Wed, 20 Jan 2016 20:27:14 +0100 Subject: [PATCH 1/4] modernize build scripts Add ARM build --- compile_linux.sh | 40 ++++++++++++++++++++++++++++++++++++---- compile_mac.sh | 17 +++++++++++++++-- compile_win.sh | 16 ++++++++++++++-- pack_and_release.sh | 2 ++ 4 files changed, 67 insertions(+), 8 deletions(-) diff --git a/compile_linux.sh b/compile_linux.sh index 03c3184..dd28326 100755 --- a/compile_linux.sh +++ b/compile_linux.sh @@ -1,6 +1,38 @@ -mkdir -p distrib/linux64 && cd libserialport && ./configure && make clean && make && cd .. && gcc main.c libserialport/linux_termios.c libserialport/linux.c libserialport/serialport.c -Ilibserialport/ -o listSerialC && cp listSerialC distrib/linux64/listSerialC -gcc jnilib.c libserialport/linux_termios.c libserialport/linux.c libserialport/serialport.c -Ilibserialport/ -I/opt/jvm/jdk1.8.0/include/ -I/opt/jvm/jdk1.8.0/include/linux/ -shared -fPIC -o liblistSerialsj.so && cp liblistSerialsj.so distrib/linux64/ +#!/bin/bash -xe -mkdir -p distrib/linux32 && cd libserialport && CFLAGS=-m32 ./configure && make clean && make && cd .. && gcc -m32 main.c libserialport/linux_termios.c libserialport/linux.c libserialport/serialport.c -Ilibserialport/ -o listSerialC && cp listSerialC distrib/linux32/listSerialC -gcc -m32 jnilib.c libserialport/linux_termios.c libserialport/linux.c libserialport/serialport.c -Ilibserialport/ -I/opt/jvm/jdk1.8.0/include/ -I/opt/jvm/jdk1.8.0/include/linux/ -shared -fPIC -o liblistSerialsj.so && cp liblistSerialsj.so distrib/linux32 +JAVA_INCLUDE_PATH=/opt/jvm/jdk1.8.0/include/ +mkdir -p distrib/linux64 +cd libserialport +./autogen.sh +./configure +make clean +make +cd .. +gcc main.c libserialport/linux_termios.c libserialport/linux.c libserialport/serialport.c -Ilibserialport/ -o listSerialC +cp listSerialC distrib/linux64/listSerialC +gcc jnilib.c libserialport/linux_termios.c libserialport/linux.c libserialport/serialport.c -Ilibserialport/ -I$JAVA_INCLUDE_PATH -I$JAVA_INCLUDE_PATH/linux/ -shared -fPIC -o liblistSerialsj.so +cp liblistSerialsj.so distrib/linux64/ + +mkdir -p distrib/linux32 +cd libserialport +CFLAGS=-m32 ./configure +make clean +make +cd .. +gcc -m32 main.c libserialport/linux_termios.c libserialport/linux.c libserialport/serialport.c -Ilibserialport/ -o listSerialC +cp listSerialC distrib/linux32/listSerialC +gcc -m32 jnilib.c libserialport/linux_termios.c libserialport/linux.c libserialport/serialport.c -Ilibserialport/ -I$JAVA_INCLUDE_PATH -I$JAVA_INCLUDE_PATH/linux/ -shared -fPIC -o liblistSerialsj.so +cp liblistSerialsj.so distrib/linux32 + +mkdir -p distrib/arm +cd libserialport +./autogen.sh +./configure +make clean +make +cd .. +arm-linux-gnueabihf-gcc main.c libserialport/linux_termios.c libserialport/linux.c libserialport/serialport.c -Ilibserialport/ -o listSerialC +cp listSerialC distrib/arm/listSerialC +arm-linux-gnueabihf-gcc jnilib.c libserialport/linux_termios.c libserialport/linux.c libserialport/serialport.c -Ilibserialport/ -I$JAVA_INCLUDE_PATH -I$JAVA_INCLUDE_PATH/linux/ -shared -fPIC -o liblistSerialsj.so +cp liblistSerialsj.so distrib/arm/ diff --git a/compile_mac.sh b/compile_mac.sh index 29f9342..ae88d10 100755 --- a/compile_mac.sh +++ b/compile_mac.sh @@ -1,2 +1,15 @@ -mkdir -p distrib/osx/ && cd libserialport && CC=o64-clang ./configure --host=x86_64-apple-darwin13 && make clean && make && cd .. && o64-clang main.c libserialport/serialport.c libserialport/macosx.c -Ilibserialport -framework IOKit -framework CoreFoundation -o listSerialC && cp listSerialC distrib/osx/ -o64-clang jnilib.c libserialport/macosx.c libserialport/serialport.c -framework IOKit -framework CoreFoundation -Ilibserialport/ -I/opt/jvm/jdk1.8.0/include/ -I/opt/jvm/jdk1.8.0/include/linux/ -shared -o liblistSerialsj.dylib && cp liblistSerialsj.dylib distrib/osx/ +#!/bin/bash -xe + +JAVA_INCLUDE_PATH=/opt/jvm/jdk1.8.0/include/ + +mkdir -p distrib/osx +cd libserialport +./autogen.sh +CC=o64-clang ./configure --host=x86_64-apple-darwin13 +make clean +make +cd .. +o64-clang main.c libserialport/serialport.c libserialport/macosx.c -Ilibserialport -framework IOKit -framework CoreFoundation -o listSerialC +cp listSerialC distrib/osx/ +o64-clang jnilib.c libserialport/macosx.c libserialport/serialport.c -framework IOKit -framework CoreFoundation -Ilibserialport/ -I$JAVA_INCLUDE_PATH -I$JAVA_INCLUDE_PATH/linux/ -shared -o liblistSerialsj.dylib +cp liblistSerialsj.dylib distrib/osx/ diff --git a/compile_win.sh b/compile_win.sh index 8a9a2b0..66fbe92 100755 --- a/compile_win.sh +++ b/compile_win.sh @@ -1,3 +1,15 @@ -mkdir -p distrib/windows && cd libserialport && ./configure --host=i686-w64-mingw32 && make clean && make && cd .. && i686-w64-mingw32-gcc main.c -Llibserialport/.libs/ -Ilibserialport/ -lserialport -lsetupapi -static -o listSerialC.exe && cp listSerialC.exe distrib/windows/ -i686-w64-mingw32-gcc -D_JNI_IMPLEMENTATION_ -Wl,--kill-at jnilib.c libserialport/.libs/libserialport.a -lsetupapi -Ilibserialport/ -I/opt/jvm/jdk1.8.0/include/ -I/opt/jvm/jdk1.8.0/include/win32/ -shared -o listSerialsj.dll && cp listSerialsj.dll distrib/windows/ +#!/bin/bash -xe +JAVA_INCLUDE_PATH=/opt/jvm/jdk1.8.0/include/ + +mkdir -p distrib/windows +cd libserialport +./autogen.sh +./configure --host=i686-w64-mingw32 +make clean +make +cd .. +i686-w64-mingw32-gcc main.c -Llibserialport/.libs/ -Ilibserialport/ -lserialport -lsetupapi -static -o listSerialC.exe +cp listSerialC.exe distrib/windows/ +i686-w64-mingw32-gcc -D_JNI_IMPLEMENTATION_ -Wl,--kill-at jnilib.c libserialport/.libs/libserialport.a -lsetupapi -Ilibserialport/ -I/opt/jvm/jdk1.8.0/include/ -Iwin32_jni -shared -o listSerialsj.dll +cp listSerialsj.dll distrib/windows/ \ No newline at end of file diff --git a/pack_and_release.sh b/pack_and_release.sh index 5075ebc..0d89f28 100755 --- a/pack_and_release.sh +++ b/pack_and_release.sh @@ -1,3 +1,5 @@ +#!/bin/bash -xe + VERSION=$1 if [ x$VERSION = "x" ] From fee40e0fcb06d3eae270764516402e81aa7f1489 Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Thu, 21 Jan 2016 15:55:28 +0100 Subject: [PATCH 2/4] update README --- README.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 22ceb5d..2bcac93 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,18 @@ Simple environment to test libserialport in a single build machine fashion Prerequisites: -* An osxcross installation +* An [osxcross](https://github.com/tpoechtrager/osxcross) installation * An updated mingw32 environment +TLTR: +```bash +apt-get install build-essential gcc-multilib g++-multilib mingw-w64 xz-utils libxml2-dev clang patch git +#setup osxcross + add binaries to PATH +#wget https://releases.linaro.org/15.06/components/toolchain/gcc-linaro/4.9/gcc-linaro-4.9-2015.06.tar.xz +#tar xvf gcc-linaro-4.9-2015.06.tar.xz +#add ARM binaries to PATH +git clone https://github.com/facchinm/listSerialPortsC --recursive +./pack_and_release.sh + TODO: -* Add a jni wrapper * Add a golang wrapper From 1e256ed937276ab5b1f1f31583225ed68e2a9ec4 Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Thu, 21 Jan 2016 16:30:00 +0100 Subject: [PATCH 3/4] fix autoreconf --- README.md | 5 +---- compile_linux.sh | 6 +++--- compile_mac.sh | 2 +- compile_win.sh | 2 +- 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 2bcac93..405682a 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,8 @@ Prerequisites: TLTR: ```bash -apt-get install build-essential gcc-multilib g++-multilib mingw-w64 xz-utils libxml2-dev clang patch git +apt-get install build-essential gcc-multilib g++-multilib mingw-w64 xz-utils libxml2-dev clang patch git gcc-4.8-arm-linux-gnueabihf g++-4.8-arm-linux-gnueabihf #setup osxcross + add binaries to PATH -#wget https://releases.linaro.org/15.06/components/toolchain/gcc-linaro/4.9/gcc-linaro-4.9-2015.06.tar.xz -#tar xvf gcc-linaro-4.9-2015.06.tar.xz -#add ARM binaries to PATH git clone https://github.com/facchinm/listSerialPortsC --recursive ./pack_and_release.sh diff --git a/compile_linux.sh b/compile_linux.sh index dd28326..ce8f514 100755 --- a/compile_linux.sh +++ b/compile_linux.sh @@ -4,7 +4,7 @@ JAVA_INCLUDE_PATH=/opt/jvm/jdk1.8.0/include/ mkdir -p distrib/linux64 cd libserialport -./autogen.sh +autoconf ./configure make clean make @@ -16,6 +16,7 @@ cp liblistSerialsj.so distrib/linux64/ mkdir -p distrib/linux32 cd libserialport +autoconf CFLAGS=-m32 ./configure make clean make @@ -27,8 +28,7 @@ cp liblistSerialsj.so distrib/linux32 mkdir -p distrib/arm cd libserialport -./autogen.sh -./configure +autoconf make clean make cd .. diff --git a/compile_mac.sh b/compile_mac.sh index ae88d10..c32320f 100755 --- a/compile_mac.sh +++ b/compile_mac.sh @@ -4,7 +4,7 @@ JAVA_INCLUDE_PATH=/opt/jvm/jdk1.8.0/include/ mkdir -p distrib/osx cd libserialport -./autogen.sh +autoconf CC=o64-clang ./configure --host=x86_64-apple-darwin13 make clean make diff --git a/compile_win.sh b/compile_win.sh index 66fbe92..af503eb 100755 --- a/compile_win.sh +++ b/compile_win.sh @@ -4,7 +4,7 @@ JAVA_INCLUDE_PATH=/opt/jvm/jdk1.8.0/include/ mkdir -p distrib/windows cd libserialport -./autogen.sh +autoconf ./configure --host=i686-w64-mingw32 make clean make From e3b112448654fca55051fb7537b0b7615288bbdc Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Thu, 21 Jan 2016 16:34:39 +0100 Subject: [PATCH 4/4] update autoconf again --- README.md | 2 +- compile_linux.sh | 7 ++++--- compile_mac.sh | 2 +- compile_win.sh | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 405682a..bf44028 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Prerequisites: TLTR: ```bash -apt-get install build-essential gcc-multilib g++-multilib mingw-w64 xz-utils libxml2-dev clang patch git gcc-4.8-arm-linux-gnueabihf g++-4.8-arm-linux-gnueabihf +apt-get install build-essential gcc-multilib g++-multilib mingw-w64 xz-utils libxml2-dev clang patch git gcc-4.8-arm-linux-gnueabihf g++-4.8-arm-linux-gnueabihf autoconf libtool #setup osxcross + add binaries to PATH git clone https://github.com/facchinm/listSerialPortsC --recursive ./pack_and_release.sh diff --git a/compile_linux.sh b/compile_linux.sh index ce8f514..f845453 100755 --- a/compile_linux.sh +++ b/compile_linux.sh @@ -4,7 +4,7 @@ JAVA_INCLUDE_PATH=/opt/jvm/jdk1.8.0/include/ mkdir -p distrib/linux64 cd libserialport -autoconf +./autogen.sh ./configure make clean make @@ -16,7 +16,7 @@ cp liblistSerialsj.so distrib/linux64/ mkdir -p distrib/linux32 cd libserialport -autoconf +./autogen.sh CFLAGS=-m32 ./configure make clean make @@ -28,7 +28,8 @@ cp liblistSerialsj.so distrib/linux32 mkdir -p distrib/arm cd libserialport -autoconf +./autogen.sh +./configure --host=arm-linux-gnueabihf make clean make cd .. diff --git a/compile_mac.sh b/compile_mac.sh index c32320f..ae88d10 100755 --- a/compile_mac.sh +++ b/compile_mac.sh @@ -4,7 +4,7 @@ JAVA_INCLUDE_PATH=/opt/jvm/jdk1.8.0/include/ mkdir -p distrib/osx cd libserialport -autoconf +./autogen.sh CC=o64-clang ./configure --host=x86_64-apple-darwin13 make clean make diff --git a/compile_win.sh b/compile_win.sh index af503eb..66fbe92 100755 --- a/compile_win.sh +++ b/compile_win.sh @@ -4,7 +4,7 @@ JAVA_INCLUDE_PATH=/opt/jvm/jdk1.8.0/include/ mkdir -p distrib/windows cd libserialport -autoconf +./autogen.sh ./configure --host=i686-w64-mingw32 make clean make