Porting
From Rxtx
First we should say what is already ported and used. Some of these have gone through testing for companies. You can guess which ones easy enough.
- i686-unknown-linux (Suse, Redhat, Debian, Gentoo, ...)
- i686-mingw32 (windows 95->XP and Beyond!)
- sparc-solaris (2.8 and newer. You can compile and use is on 2.6)
- sparc-solaris64 (2.8 and newer. You can compile and use is on 2.6)
- powerpc-apple-darwin8
- i686-apple-darwin8
The following is a list of binaries we provide each release and would look forward to feedback. Please be sure to join the mailing-list and give us feedback so we continue to improve these binaries. These are sorted by release, OS, libc and target in the ToyBox.
Toolchain: glibc-3.2.5 gcc 3.4.4 (thanks largely to Dan Kegel's work on crosstool).
- alpha-unknown-linux-gnu
- powerpc-405-linux-gnu
- arm-9tdmi-linux-gnu
- powerpc-440-linux-gnu
- armeb-unknown-linux-gnu
- powerpc-604-linux-gnu
- arm-iwmmxt-linux-gnu
- powerpc64-unknown-linux-gnu
- arm-softfloat-linux-gnu
- powerpc-7450-linux-gnu
- arm-unknown-linux-gnu
- powerpc-750-linux-gnu
- armv5b-softfloat-linux-gnu
- powerpc-860-linux-gnu
- arm-xscale-linux-gnu
- s390-ibm-linux-gnu
- i386-unknown-linux-gnu
- sh3-unknown-linux-gnu
- i686-unknown-linux-gnu
- sh4-unknown-linux-gnu
- ia64-unknown-linux-gnu
- sparc64-unknown-linux-gnu
- m68k-unknown-linux-gnu
- sparc-unknown-linux-gnu
- mipsel-unknown-linux-gnu
- x86_64-unknown-linux-gnu
- mips-unknown-linux-gnu
Future cross tool targets will include freebsd, netbsd, opensolaris, darwin and uclibc combinations as time permits. We do have code but no tools to compile the following targets (this wont change soon)
- 64 Bit Windows (Only termios.c has not been proven to be 64 bit safe)
- Windows CE (we know this works)
- The reason for no support is gcc the compiler we use needs to support the PE32+ PECOFF ABI before this will work. When one works, both will work. Mabye AMD or Intel will help out gcc sometime.
If you want to port rxtx to a new platform do the following. What follows is a general primer for porting to your own platform. Joining the mail-list is highly recommended. Platforms like HP-UX, AIX, Irix and so on have been done. We just don't have libraries to link to. This package is developed with freely available tools. Some unix machines require GNU make. Windows machines will require the MinGW32.
1. configure (autogen.sh if you have GNU tools installed) (configure requires bash 2. make 3. let us know if you had any problems. We will fix them.
RXTX should should be able to compile on the following systems (from libtool documentation). Some serial port functionality depends upon ioctl() calls that are not standardized. Basic read/write should be possible with little modification. Porting to new systems with full events will require programming assistance.
The following OS's should have full Serial Commapi Serial Support:
- mingw32 (windows 9* NT*) (no printer support)
- WinCE (no printer support)
- Solaris 2.x (*-*-solaris2*) x86 and sparc
- Linux ELF (*-*-linux*, except aout, coff, and oldld)
- FreeBSD 3.x 4.x (*-*-freebsd2*, *-*-freebsd3*)
- Mac OS X
- HP-UX 10.x (*-*-hpux10*)
- SCO OpenServer 5.x (*-*-sco3.2v5*) (there may be recent breakage)
- UnixWare "
- D)igital/UNIX
It is possible that the builds or runtime breaks from time to time on the OS's. Thats improving with more testers but do not be suprised to see a problem.
The following should be close but may need build fixes (Many have worked in
the past):
- AIX 3.x (*-*-aix3*)
- AIX 4.x (*-*-aix4*)
- Digital/UNIX 3.x, 4.x, a.k.a. OSF/1 (*-*-osf3*, *-*-osf4*)
- HP-UX 9.x, 10.x (*-*-hpux9*, *-*-hpux10*) [see note]
- IRIX 5.x, 6.x (*-*-irix5*, *-*-irix6*)
- NetBSD 1.x (*-*-netbsd*) ( Freebsd jdk? )
- OpenBSD 2.x (*-*-openbsd*) ( Freebsd jdk? )
- unknown SCO OpenServer 5.x (*-*-sco3.2v5*)
- unknown SunOS 4.x, a.k.a. Solaris 1.x (*-*-sunos4*)
- unknown UTS 4.x (*-*-uts4*) (?)
The following will probably not work without significant effort:
- unknown OS/2 using EMX (*-*-os2*)
- compile BeOS
Its strongly suggested you join the rxtx mailing-list if you are trying to port to an OS that is not currently working. Windows support is through a custom termios layer. BeOS is a mix of termios and classes that requires more code. If its a Unix system it should work. Typically you will need to play with compile flags or variables in the Makefile to get serial support compiled.
There is significant interest in operating systems with 'unknown' but access to the OS or developer cooperation is hard to find. The following platforms will be considered eventually
OS2. There is another commapi implementation out there for OS2 but the link is stale on the links page (I'm guessing it is inside IBM). Mac OS