- Binding to Libusb 1.0
- Adding version information to the library git-svn-id: https://svn.code.sf.net/p/libusbjava/code/trunk@281 94ad28fe-ef68-46b1-9651-e7ae4fcf1c4c
This commit is contained in:
@@ -1,97 +1,125 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- ======================================================================
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project name="LibusbJava" basedir=".">
|
||||
<!-- ======================================================================
|
||||
|
||||
Build file for LibusbJava Shared Library
|
||||
|
||||
REQUIREMENTS:
|
||||
winres (only on windows)
|
||||
g++
|
||||
|
||||
http://libusbJava.sourceforge.net
|
||||
====================================================================== -->
|
||||
<project name="LibusbJava" basedir=".">
|
||||
<description>
|
||||
Build file for LibusbJava Shared Library
|
||||
</description>
|
||||
|
||||
<property file="project.properties" />
|
||||
Build file for libusbJava Shared Library
|
||||
|
||||
REQUIREMENTS:
|
||||
g++
|
||||
|
||||
http://libusbJava.sourceforge.net
|
||||
====================================================================== -->
|
||||
<description>
|
||||
Build file for libusbJava Shared Library
|
||||
</description>
|
||||
|
||||
<property file="version.properties" />
|
||||
<property name="version.win.rc" value="${version.major},${version.minor},${version.micro},${version.nano}" />
|
||||
<property name="version" value="${version.major}.${version.minor}.${version.micro}.${version.nano}" />
|
||||
<property name="abi" value="0" />
|
||||
<property name="version" value="${abi}.0.0" />
|
||||
<property name="ver_info" value="${basedir}/out/LibusbJava.res" />
|
||||
|
||||
<patternset id="buildfiles">
|
||||
<include name="**/*.o" />
|
||||
<include name="**/*.dll" />
|
||||
<include name="**/*.so.*" />
|
||||
</patternset>
|
||||
<patternset id="buildfiles">
|
||||
<include name="**/*.o" />
|
||||
<include name="**/*.dll" />
|
||||
<exclude name="lib/*.dll" />
|
||||
<include name="**/*.so.*" />
|
||||
</patternset>
|
||||
|
||||
<target name="clean" description="--> Clean build files">
|
||||
<delete>
|
||||
<fileset dir=".">
|
||||
<patternset refid="buildfiles" />
|
||||
</fileset>
|
||||
</delete>
|
||||
</target>
|
||||
|
||||
<target name="windows" description="--> Build ${build.shlib.win.shlibname}">
|
||||
<!-- The RC_VERSION_STR string is not recognized by windres as command line argument.
|
||||
I think this is a bug. The only (nasty) workaround I found is to write it directly to the file. -->
|
||||
<!--
|
||||
<exec dir="." executable="${build.win.windres}">
|
||||
<arg value="-o${build.win.resource.obj}" />
|
||||
<arg value="${build.win.resource.rc}" />
|
||||
<arg value="-DRC_VERSION=${version.rc}" />
|
||||
<arg value="-DRC_VERSION_STR='\"${version.str}\"'" />
|
||||
</exec>
|
||||
-->
|
||||
<echo level="warning" message="WARNING: If the version has changed -> change the RC_VERSION_STR define in resource.rc to "${version}"" />
|
||||
<exec dir="." executable="${build.win.windres}">
|
||||
<arg value="-o${build.win.resource.obj}" />
|
||||
<arg value="${build.win.resource.rc}" />
|
||||
<arg value="-DRC_VERSION=${version.win.rc}" />
|
||||
</exec>
|
||||
<exec dir="." executable="${build.win.compiler}">
|
||||
<arg value="-Wall" />
|
||||
<arg value="-D_JNI_IMPLEMENTATION_" />
|
||||
<arg value="-Wl,--kill-at" />
|
||||
<arg value="-mwindows" />
|
||||
<arg value="-shared" />
|
||||
<arg value="-I${basedir}" />
|
||||
<arg value="${build.shlib.srcname}" />
|
||||
<arg value="-o${build.shlib.win.shlibname}" />
|
||||
<arg value="${build.win.resource.obj}" />
|
||||
<arg value="${build.lib.libusb}" />
|
||||
</exec>
|
||||
</target>
|
||||
<target name="clean" description="--> Clean build files">
|
||||
<delete>
|
||||
<fileset dir=".">
|
||||
<patternset refid="buildfiles" />
|
||||
</fileset>
|
||||
</delete>
|
||||
</target>
|
||||
|
||||
<target name="linux" depends="clean" description="--> Build ${build.shlib.linux.shlibname}">
|
||||
<exec dir="." executable="${build.linux.compiler}">
|
||||
<target name="linux" depends="clean" description="--> Build libusbJava-1.0.so">
|
||||
<echo level="info" message="Building Library" />
|
||||
<exec dir="." executable="g++">
|
||||
<arg value="-Wno-write-strings" />
|
||||
<arg value="-shared" />
|
||||
<arg value="-fPIC" />
|
||||
<arg value="-Wl,-soname,${build.shlib.linux.shlibname}" />
|
||||
<arg value="-I${build.linux.includes}" />
|
||||
<arg value="-I${build.linux.includes2}" />
|
||||
<arg value="-I${build.linux.includes3}" />
|
||||
<arg value="${build.shlib.srcname}" />
|
||||
<arg value="-o${build.shlib.linux.shlibname}.${version}" />
|
||||
<arg value="${build.linux.includes}/${build.linux.lib.libusb}" />
|
||||
<arg value="${build.linux.includes}/${build.linux.lib.libusbpp}" />
|
||||
<arg value="-Wl,-soname,libusbJava-1.0.so" />
|
||||
<arg value="-I/usr/lib" />
|
||||
<arg value="-I/usr/lib/jvm/java-6-openjdk/include/" />
|
||||
<arg value="${basedir}/LibusbJava.cpp" />
|
||||
<arg value="-o${basedir}/out/libusbJava-1.0.so.${version}" />
|
||||
<arg value="/usr/lib/libusb-1.0.so" />
|
||||
</exec>
|
||||
</target>
|
||||
</target>
|
||||
|
||||
<target name="Windows 32Bit" depends="clean, Windows Resource" description="--> Build LibusbJava-1_0.dll">
|
||||
<echo level="info" message="Building Library" />
|
||||
<exec dir="." executable="g++">
|
||||
<arg value="-Wno-write-strings" />
|
||||
<arg value="-D_JNI_IMPLEMENTATION_" />
|
||||
<arg value="-Wl,--kill-at" />
|
||||
<arg value="-mwindows" />
|
||||
<arg value="-static" />
|
||||
<arg value="-shared" />
|
||||
<arg value="-IC:/Program Files/Java/jdk${java.version}/include" />
|
||||
<arg value="-IC:/Program Files/Java/jdk${java.version}/include/win32" />
|
||||
<arg value="-I${basedir}" />
|
||||
<arg value="${basedir}/LibusbJava.cpp" />
|
||||
<arg value="${ver_info}" />
|
||||
<arg value="-o" />
|
||||
<arg value="${basedir}/out/x86/LibusbJava-1_0.dll" />
|
||||
<arg value="-L${basedir}/MinGW32/static" />
|
||||
<arg value="-lusb-1.0" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="Windows 64Bit" depends="clean, Windows Resource" description="--> Build LibusbJava-1_0.dll">
|
||||
<echo level="info" message="Building Library" />
|
||||
<exec dir="." executable="g++">
|
||||
<arg value="-Wno-write-strings" />
|
||||
<arg value="-D_JNI_IMPLEMENTATION_" />
|
||||
<arg value="-Wl,--kill-at" />
|
||||
<arg value="-mwindows" />
|
||||
<arg value="-static" />
|
||||
<arg value="-shared" />
|
||||
<arg value="-IC:/Program Files/Java/jdk${java.version}/include" />
|
||||
<arg value="-IC:/Program Files/Java/jdk${java.version}/include/win32" />
|
||||
<arg value="-I${basedir}" />
|
||||
<arg value="${basedir}/LibusbJava.cpp" />
|
||||
<arg value="${ver_info}" />
|
||||
<arg value="-o" />
|
||||
<arg value="${basedir}/out/LibusbJava-1_0.dll" />
|
||||
<arg value="-L${basedir}/MinGW64/static" />
|
||||
<arg value="-lusb-1.0" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="mac" depends="clean" description="--> Build ${build.shlib.mac.shlibname}">
|
||||
<exec dir="." executable="${build.mac.compiler}">
|
||||
<!-- arguments to pass to gcc -->
|
||||
<arg value="-v" />
|
||||
<arg value="-dynamiclib" />
|
||||
<arg line="-I ${build.mac.jni}" />
|
||||
<arg value="${build.shlib.srcname}" />
|
||||
<arg line="-o ${build.shlib.mac.shlibname}" />
|
||||
<arg line="-current_version ${version}" />
|
||||
<arg line="-l ${build.mac.stdclib}" />
|
||||
<arg value="${build.mac.includes}/${build.mac.lib.libusb}" />
|
||||
<arg value="${build.mac.includes}/${build.mac.lib.libusbpp}" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
</project>
|
||||
<target name="Windows Resource" description="--> Build Version resource">
|
||||
<property name="rc_file" value="${basedir}/out/LibusbJava.rc" />
|
||||
<basename property="filename" file="${rc_file}"/>
|
||||
<echo level="info" message="Generating rc-File: ${filename}" />
|
||||
<exec dir="." executable="build_rc.cmd">
|
||||
<arg value="${rc_file}" />
|
||||
<arg value="${version.major}" />
|
||||
<arg value="${version.minor}" />
|
||||
<arg value="${version.micro}" />
|
||||
<arg value="${version.nano}" />
|
||||
</exec>
|
||||
<basename property="target_file" file="${ver_info}"/>
|
||||
<echo level="info" message="Compiling res-File: ${target_file}" />
|
||||
<exec dir="." executable="windres">
|
||||
<arg value="-Ocoff" />
|
||||
<arg value="-o${ver_info}" />
|
||||
<arg value="${rc_file}" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="mac" depends="clean" description="--> Build LibusbJava-1.0.jnilib">
|
||||
<exec dir="." executable="g++">
|
||||
<arg value="-v" />
|
||||
<arg value="-dynamiclib" />
|
||||
<arg line="-I /System/Library/Frameworks/JavaVM.framework/Headers/" />
|
||||
<arg value="ch_ntb_inf_libusbJava_LibusbJava.cpp" />
|
||||
<arg line="-o LibusbJava-1_0.jnilib" />
|
||||
<arg line="-l stdc++" />
|
||||
<arg value="/usr/local/lib/libusb.dylib" />
|
||||
<arg value="/usr/local/lib/libusbpp.dylib" />
|
||||
</exec>
|
||||
</target>
|
||||
</project>
|
||||
|
||||
Reference in New Issue
Block a user