|
|
- 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.
-
-
|