|
|
- #-------------------------------------------------------------------------
- # rxtx is a native interface to serial ports in java.
- # Copyright 1997-2004 by Trent Jarvi taj@www.linux.org.uk.
- #
- # This library is free software; you can redistribute it and/or
- # modify it under the terms of the GNU Library General Public
- # License as published by the Free Software Foundation; either
- # version 2 of the License, or (at your option) any later version.
- #
- # This library is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- # Library General Public License for more details.
- #
- # You should have received a copy of the GNU Library General Public
- # License along with this library; if not, write to the Free
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- #-------------------------------------------------------------------------
- # This Makefile works on windows 98/NT with mingw32 in a DOS shell
- # One catch. We cant figure out how to generate .def files with default
- # DOS tools and mingw32. Install Cygwin if you are adding/removing/chaninging
- # C functions.
- # mingw build tools are used
- # PATH=c:\mingw\bin;c:\jdk118\bin;%PATH%
- # mingw32 version 1.0.1-20010726
- # jdk was 1.1.8
- # java.sun.com
-
- ######################
- # user defined variables
- ######################
-
- # path to the source code (directory with SerialImp.c) Unix style path
- SRC=../src
- # and the dos path
- DOSSRC=..\\\src
-
- # path to the jdk directory that has include, bin, lib, ... Unix style path
- JDKHOME=C:/jdk13
-
- #path to mingw32
- MINGHOME="D:/mingw"
-
- # path to install RXTXcomm.jar DOS style path
- COMMINSTALL="C:\jdk13\lib"
-
- # path to install the shared libraries DOS style path
- LIBINSTALL="C:\jdk13\bin"
-
- # path to the mingw32 libraries (directory with libmingw32.a) DOS style path
- LIBDIR="c:\cygwin\lib\mingw"
-
- ######################
- # End of user defined variables
- ######################
-
-
- ######################
- # Tools
- ######################
-
- AS=as
- CC=gcc
- LD=ld
- DLLTOOL=dlltool
- # this looks like a nice tool but I was not able to get symbols in the dll.
- DLLWRAP=dllwrap
-
- CLASSPATH=-classpath ".;C:\jdk13\lib\RXTXcomm.jar;c:\BlackBox.jar;c:\jdk13\lib\classes.zip"
- JAVAH=javah $(CLASSPATH)
- JAR=jar
- JAVAC=javac $(CLASSPATH)
-
- ######################
- # Tool Flags
- ######################
-
- CFLAGS_CYGWIN= -O2 $(INCLUDE) -DWIN32 -D __int64="long long" -mno-fp-ret-in-387 -Wall
- CFLAGS= -O2 $(INCLUDE) -mno-cygwin -DWIN32 -D __int64="long long" -mno-fp-ret-in-387 -Wall
- #CFLAGS= -O2 $(INCLUDE) -mno-cygwin -DWIN32 -D __int64="long long" -mno-fp-ret-in-387 -Wall -D TRENT_IS_HERE_DEBUGGING_ENUMERATION -DTRENT_IS_HERE_DEBUGGING_THREADS
- INCLUDE= -I c:\matlab6p5/extern/include/ -I . -I $(JDKINCLUDE) -I $(JDKINCLUDE)/win32 -I $(SRC) -I include -I $(MINGINCLUDE)
- JAVAHFLAGS= -jni -d include
- LIBS=-L . -L $(LIBDIR) -LC:/tmp/rxtx5/build -luser32 -lgdi32 -lcomdlg32 -lkernel32 -ladvapi32 -lmoldname -lcrtdll
- # -lmex
-
- # path to the java native interface headers (directory with jni.h)
- JDKINCLUDE=$(JDKHOME)/include
- MINGINCLUDE=$(MINGHOME)/include
- JAVAFILES = $(wildcard $(SRC)/*.java)
- CFILES=$(wildcard $(SRC)/*.c) $(wildcard $(SRC)/*.cc)
- TARGETLIBS= rxtxSerial.dll rxtxParallel.dll
- #TARGETLIBS= rxtxSerial.dll rxtxParallel.dll rxtxZystem.dll
- DLLOBJECTS= fixup.o SerialImp.o termios.o init.o fuserImp.o
- PARALLELOBJECTS= ParallelImp.o termios.o init.o
-
- all: $(TARGETLIBS) # rebuild rebuild will force everything to be built.
-
- rebuild:
- rm -rf gnu include RXTXcomm.jar Serial.* rxtxSerial.* * *.O.o *.O gnutimestamp
-
- include:
- mkdir include
-
- gnu:
- mkdir gnu
- mkdir gnu\\\io
-
- # yayaya We should have put the files in gnu.io to start with
- gnutimestamp: $(JAVAFILES) $(CFILES) include gnu
- xcopy /Y $(DOSSRC)\\*.* gnu\\io\\
- echo > gnutimestamp
-
- # FIXME make 3.79.1 behaves really strage if we use %.o rules.
-
- init.o:
- $(CC) $(CFLAGS) -c $(SRC)/init.cc -o init.o
-
- fixup.o:
- $(CC) $(CFLAGS) -c $(SRC)/$*.c -o fixup.o
-
- #ZystemImp.o: include/config.h
- # $(CC) $(CFLAGS_CYGWIN) -c $(SRC)/ZystemImp.c -o ZystemImp.o
-
- SerialImp.o: include/config.h
- $(CC) $(CFLAGS) -c $(SRC)/SerialImp.c -o SerialImp.o
-
- fuserImp.o:
- $(CC) $(CFLAGS) -c $(SRC)/fuserImp.c -o fuserImp.o
-
- termios.o:
- $(CC) $(CFLAGS) -c $(SRC)/$*.c -o termios.o
-
- ParallelImp.o: include/config.h
- $(CC) $(CFLAGS) -c $(SRC)/$*.c -o ParallelImp.o
-
- # This file is a pain in the rear to generate. If your looking at this you
- # need to install cygwin.
-
- #$(SRC)/Zystem.def: $(DLLOBJECTS) ZystemImp.o
- #$(LD) --base-file Zystem.base --dll -o rxtxZystem.dll $(DLLOBJECTS) ZystemImp.o _divdi3.o $(LIBS) -lcygwin -e _dll_entry@12
- #xcopy /Y $(DOSSRC)\\Zystem.def gnu\\io\\
-
-
- $(SRC)/Serial.def: $(DLLOBJECTS)
- $(LD) --base-file Serial.base --dll -o rxtxSerial.dll $(DLLOBJECTS) $(LIBS) -lmingw32 -e _dll_entry@12
- xcopy /Y $(DOSSRC)\\Serial.def gnu\\io\\
-
- # echo EXPORTS >$(SRC)/Serial.def;for i in `nm rxtxSerial.dll | grep "T _Java"|cut -b 13-`;do echo -n $$i|sed s#@.*##;echo "="$$i;done >> $(SRC)/Serial.def
-
-
- $(SRC)/Parallel.def: $(PARALLELOBJECTS)
- $(LD) --base-file Parallel.base --dll -o rxtxParallel.dll $(PARALLELOBJECTS) $(LIBS) -lmingw32 -e _dll_entry@12
- xcopy $(DOSSRC)\\Parallel.def gnu\\io\\
- # echo EXPORTS >$(SRC)/Parallel.def;for i in `nm rxtxParallel.dll | grep "T _Java"|cut -b 13-`;do echo -n $$i|sed s#@.*##;echo "="$$i;done >> $(SRC)/Parallel.def
-
-
- rxtxZystem.dll: RXTXcomm.jar $(DLLOBJECTS) #ZystemImp.o $(SRC)/Zystem.def
- gcc -c -DBUILDING_DLL=1 -D_DLL=1 -I. -Ic:/jdk13/include -Ic:/jdk13/include/win32 -Wall -O2 -D __int64="long long" -o ZystemImp.o $(SRC)/ZystemImp.c
- dllwrap --verbose --no-default-excludes --export-all-symbols --output-exp Zystem.exp --output-def Zystem.def --add-stdcall-alias --driver-name gcc -o rxtxZystem.dll ZystemImp.o -Wl,-e,__cygwin_noncygwin_dll_entry@12 -s
-
- #rxtxZystem.dll: RXTXcomm.jar $(DLLOBJECTS) ZystemImp.o $(SRC)/Zystem.def
- #$(LD) --base-file Zystem.base --dll -o rxtxZystem.dll $(DLLOBJECTS) \
- #ZystemImp.o _divdi3.o $(LIBS) -lcygwin -e _dll_entry@12
- #$(DLLTOOL) --as=$(AS) --dllname rxtxZystem.dll --def $(SRC)/Zystem.def \
- #--base-file Zystem.base --output-exp Zystem.exp
- #$(LD) --base-file Zystem.base Zystem.exp -dll -o rxtxZystem.dll \
- #$(DLLOBJECTS) ZystemImp.o _divdi3.o $(LIBS) -lcygwin -e _dll_entry@12
- #$(DLLTOOL) --as=$(AS) --dllname rxtxZystem.dll --def $(SRC)/Zystem.def \
- #--base-file Zystem.base --output-exp Zystem.exp
- #$(LD) --base-file Zystem.base Zystem.exp -dll -o rxtxZystem.dll \
- #$(DLLOBJECTS) ZystemImp.o _divdi3.o $(LIBS) -lcygwin -e _dll_entry@12
-
- rxtxSerial.dll: RXTXcomm.jar $(DLLOBJECTS) $(SRC)/Serial.def
- $(LD) --base-file Serial.base --dll -o rxtxSerial.dll $(DLLOBJECTS) \
- $(LIBS) -lmingw32 -e _dll_entry@12
- $(DLLTOOL) --as=$(AS) --dllname rxtxSerial.dll --def $(SRC)/Serial.def \
- --base-file Serial.base --output-exp Serial.exp
- $(LD) --base-file Serial.base Serial.exp -dll -o rxtxSerial.dll \
- $(DLLOBJECTS) $(LIBS) -lmingw32 -e _dll_entry@12
- $(DLLTOOL) --as=$(AS) --dllname rxtxSerial.dll --def $(SRC)/Serial.def \
- --base-file Serial.base --output-exp Serial.exp
- $(LD) --base-file Serial.base Serial.exp -dll -o rxtxSerial.dll \
- $(DLLOBJECTS) $(LIBS) -lmingw32 -e _dll_entry@12
- #
- # This should replace the mess above if it worked.
- # nm shows no symbols in the dll produced. The old stuff above works ok.
- # $(DLLWRAP) --output-def $*.def --output-exp $*.exp \
- # --add-stdcall-alias --driver-name gcc -mwindows \
- # --target=i386-mingw32 -o $*.dll $(DLLOBJECTS) $(LIBS) -s
- # -mno-cygwin
-
- rxtxParallel.dll: $(PARALLELOBJECTS)
- $(LD) --base-file Parallel.base --dll -o rxtxParallel.dll $(PARALLELOBJECTS) \
- $(LIBS) -lmingw32 -e _dll_entry@12
- $(DLLTOOL) --as=$(AS) --dllname rxtxParallel.dll --def $(SRC)/Parallel.def \
- --base-file Parallel.base --output-exp Parallel.exp
- $(LD) --base-file Parallel.base Parallel.exp -dll -o rxtxParallel.dll \
- $(PARALLELOBJECTS) $(LIBS) -lmingw32 -e _dll_entry@12
- $(DLLTOOL) --as=$(AS) --dllname rxtxParallel.dll --def $(SRC)/Parallel.def \
- --base-file Parallel.base --output-exp Parallel.exp
- $(LD) --base-file Parallel.base Parallel.exp -dll -o rxtxParallel.dll \
- $(PARALLELOBJECTS) $(LIBS) -lmingw32 -e _dll_entry@12
-
- RXTXcomm.jar: gnutimestamp
- $(JAVAC) gnu\\io\\*.java
- $(JAR) -cf RXTXcomm.jar gnu\\io\\*.class
- $(JAVAH) $(JAVAHFLAGS) $(patsubst gnu/io/%.java,gnu.io.%,$(wildcard gnu/io/*.java))
-
- include/config.h: gnutimestamp
- echo "#define HAVE_FCNTL_H 1" > include\\\config.h
- echo "#define HAVE_SIGNAL_H 1" >> include\\\config.h
- echo "#define HAVE_SYS_FCNTL_H 1" >> include\\\config.h
- echo "#define HAVE_SYS_FILE_H 1" >> include\\\config.h
- echo "#undef HAVE_SYS_SIGNAL_H" >> include\\\config.h
- echo "#undef HAVE_TERMIOS_H" >> include\\\config.h
-
- install: all
- xcopy RXTXcomm.jar $(COMMINSTALL)
- xcopy RXTXcomm.jar "e:\matlab~1\java\jarext\commapi\win32"
- xcopy $(TARGETLIBS) $(LIBINSTALL)
- xcopy $(TARGETLIBS) "e:\matlab~1\bin\win32"
-
- uninstall:
- del $(COMMINSTALL)\\\RXTXcomm.jar
- del $(LIBINSTALL)\\\$(TARGETLIBS)
-
- clean:
- deltree gnu\\\io\\\*.*
- deltree include
- del Serial.* gnutimestamp *.o *.O RXTXcomm.jar rxtxSerial.*
|