This is PORTING Tue Nov 13 14:45:26 MST 2001 If you want to port rxtx to a new Unix platform do the following. *IMPORTANT* you will need gnu make. There are probably three areas you will need to focus on: configure.in src/SerialImp.c src/SerialImp.h src/ParallelImp.c RXTXCommDriver.java (just add the ports for your OS) configure.in grabs information about the OS, Java, ... and tries to set sane values for the Makefile. Look towards the bottom of configure.in and just copy *bsd or HP-UX. Modify to your liking. Edit configure.in, run autoconf, run configure, run make. repeat. An endless loop analagous to shampoo instructions. SerialImp.c and ParallelImp.c may require system specific includes and possibly a small amount of #ifdef's in the code. Lock file information will need to be added to SerialImp.h SerialImp.h will need defines for the location of lock files and the lock file type if they are used. See BSD or Linux as examples. Common problems include the following varibles in the Makefile JAVAINCLUDE JAVANATINC CLASSPATH Which are defined in configure.in We will gladly help with any UNIX platform. Send questions to taj@www.linux.org.uk. New OS's usually require tweaks. If its not compiling try backing out functionality until it compiles. win32 support has not been tested. Contact taj@www.linux.org.uk if your interested in developing win32 support. For all Unix flavors... If the package did not work out of the box please see BUGS and send a comment. Here are more details sent to the rxtx mail list: Here are some tips for starters. There are three files you will need to modify. configure.in HP-UX) # compiler flags required to build. Often enables POSIX termios # support and related #defines CFLAGS="-g -Aa +e -D__hpux__ -D_HPUX_SOURCE -D_NO_POSIX=1 -D_NO_XOPEN4=1" # location for the library libSerial.so RXTX_PATH="\$(JPATH)/jre/lib/\$(OS_ARCH)" #Libraries to build. libSerial.la and libParallel.la are options # libSerial.la is usually ported first and has had more work/tests TARGETLIB="\$(target_alias)/libSerial.la" # Handle java quirks here. case $JAVA_VERSION in HP-UX\ Java\ C.01.2*|HP-UX\ Java\ C.01.3*) # function call fix_parameters $JPATH/jre/lib/javax.comm.properties # location for comm.jar and jcl.jar (RXTX) JHOME=$JPATH"/jre/lib/ext" # classpath for building (hackish) CLASSPATH=".:\$(TOP):\$(TOP)/src:\$(JPATH)/lib/classes.zip:\$(JPATH)/jre/lib/ext/comm.jar:$CLASSPATH" # location for libSerial.so .. again I see. RXTX_PATH="\$(JPATH)/jre/lib/\$(OS_ARCH)" ;; *) echo "$JAVA_VERSION untests" # possibly more java specific cases... esac; That should be enough to get Makefile with autoconf/automake/configure. the autogen.sh script can be used to bring the version of scripts you have into the top rxtx directory. Helpfull if you cant get the same versions used. hmm I need to update the INSTALL info here. libtool 1.3.5 autoconf 2.13 automake 1.4 gnu make 3.79.1 Makefile.am is changed to create new Makefiles Makefile.in is generated from it with automake Makefile is generated with the configure script configure.in is changed to create new configure scripts configure is generated from configure.in with automake A hard coded Makefile is also possible. I can send you the output of a typical make session off the list if you like. Source changes: RXTXCommDriver.java Port enumeration needs to know which ports to check. private void registerScannedPorts(int PortType){} has code like the following listing the ports on that system. Again os.name is used to determine the system. .... else if(osName.equals("HP-UX")) { String[] Temp = { "tty0p",// HP-UX serial ports "tty1p" // HP-UX serial ports }; CandidatePortPrefixes=Temp; } Next, one should fix the port locking. RXTX supports FHS locks, UUCP and no locks. One could start with no locking at first and then add the lock capability later: SerialImp.h #if defined(__hpux__) /* modif cath */ /* The directory the device files are in */ # define DEVICEDIR "/dev/" /* the directory to place the lock files */ # define LOCKDIR "/usr/spool/uucp" /* what the prefix is for lockfiles example: LK.134.124.124 */ # define LOCKFILEPREFIX "LK." /* UUCP of FHS locking */ # define UUCP #endif /* __hpux__ */ for starters you may do something like: #if defined(WIN32) # define DEVICEDIR "" # define LOCKDIR "" # define LOCKFILEPREFIX "" #endif /* WIN32 */ to disable lock files. That should be it. Some changes to SerialImp.c may be needed for compiler errors.