# Makefile to build occjava for Windows on Linux. # Only tested on Debian Squeeze. # # - Install mingw packages: # apt-get install mingw32 mingw32-binutils mingw32-runtime # - Edit set CASROOT and JAVA variables bellow. # - Run make -f Makefile.mingw # CASROOT?=/home/robert/occ6.3/opencascade/ros/ JAVA?=/home/robert/.wine/drive_c/Java/jdk1.6.0_21 LIBS := -L$(CASROOT)/mingw/lib -lTKBRep -lTKBool -lTKG2d -lTKG3d -lTKGeomBase -lTKIGES -lTKMath -lTKOffset -lTKXSBase -lTKernel -lTKSTEP -lTKPrim -lTKTopAlgo -lTKFillet -lTKMesh -lTKBO -lTKGeomAlgo -lTKShHealing -lTKSTEPBase CXX := i586-mingw32msvc-g++ CC := i586-mingw32msvc-gcc #strict-aliasing optimization break all Upcast swig function. The return upcasted pointer is always NULL. So we disable this optimization. CXXFLAGS := -O2 -g -march=pentium3 -fno-strict-aliasing LDFLAGS := -shared -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,-export-all-symbols -Wl,--add-stdcall-alias CPPFLAGS := -I$(JAVA)/include -I$(JAVA)/include/win32 -I$(CASROOT)/inc -DWNT -D__MATH_WNT_H -DHAVE_NO_DLL JAVAGENSRCDIR := src-java/org/jcae/opencascade/jni/ Release/OccJava.dll : src/OccJava_wrap.o src/jnistream.o mkdir -p Release $(CXX) $(LDFLAGS) -o $@ $^ $(LIBS) src/jnistream.o : src/jnistream.cxx $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ src/OccJava_wrap.o : src/OccJava_wrap.cxx $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ src/OccJava_wrap.cxx : $(wildcard src/*.i) swig -c++ -v $(CPPFLAGS) -Wall -java -package org.jcae.opencascade.jni -outdir $(JAVAGENSRCDIR) -o $@ -Isrc src/OccJava.i