diff --git a/README.md b/README.md index 22ceb5d..bf44028 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,15 @@ 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 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 + TODO: -* Add a jni wrapper * Add a golang wrapper diff --git a/compile_linux.sh b/compile_linux.sh index 03c3184..f845453 100755 --- a/compile_linux.sh +++ b/compile_linux.sh @@ -1,6 +1,39 @@ -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 +./autogen.sh +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 --host=arm-linux-gnueabihf +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" ]