mirror of
https://github.com/Hamlib/Hamlib.git
synced 2024-09-22 19:07:22 +00:00
9210621c75
No longer depend on libltdl from the libtool package. The winradio/linradio/wg313api backend still depends on libdl, but since it is only compiled on POSIX, it will use the POSIX supplied libdl. Update documentation to remove references to libltdl.
210 lines
6.8 KiB
Bash
210 lines
6.8 KiB
Bash
#!/bin/bash
|
|
|
|
# A script to build a set of VB.NET 2002 Framework 1.1 binary DLLs from a
|
|
# Hamlib tarball. This script assumes that the Hamlib tarball has been
|
|
# extracted to the directory specified in $build_dir and that
|
|
# libusb-win32-bin-1.x.y.z has also been extracted to $build_dir and a
|
|
# libusb.pc file has been created. The MS VC++ Toolkit must also be
|
|
# installed.
|
|
#
|
|
# See README.build-VB.NET for complete details.
|
|
|
|
|
|
# Set this to a desired directory
|
|
BUILD_DIR=~/builds
|
|
|
|
# Set this to LibUSB archive extracted in $BUILD_DIR
|
|
LIBUSB_VER=libusb-win32-bin-1.2.4.0
|
|
|
|
|
|
# Error return codes. See /usr/include/sysexits.h
|
|
EX_USAGE=64
|
|
EX_NOINPUT=66
|
|
|
|
|
|
# Pass name of Hamlib archive extracted in $BUILD_DIR
|
|
if [ $# -ne 1 ]; then
|
|
echo -e "\nUsage: `basename $0` hamlib-version\n"
|
|
echo -e "See README.build-VB.NET for more information.\n"
|
|
exit $EX_USAGE
|
|
fi
|
|
|
|
# Make sure the Hamlib archive is where we expect
|
|
if [ -d ${BUILD_DIR}/$1 ]; then
|
|
echo -e "\nBuilding VB.NET binaries in ${BUILD_DIR}/$1\n\n"
|
|
cd ${BUILD_DIR}/$1
|
|
else
|
|
echo -e "\nBuild directory, ${BUILD_DIR}/$1 not found!\nCheck path for $1 or correct the version number.\n"
|
|
exit $EX_NOINPUT
|
|
fi
|
|
|
|
# FIXME: Determine RELEASE only from AC_INIT line to avoid any other similar
|
|
# values and avoid hard coded version number.
|
|
RELEASE=`/usr/bin/awk 'BEGIN{FS="["; RS="]"} /\[3\./ {print $2}' ./configure.ac`
|
|
INST_DIR=`pwd`/mingw-inst
|
|
ZIP_DIR=`pwd`/hamlib-VB.NET-${RELEASE}
|
|
LIBUSB_WIN32_BIN_PATH=${BUILD_DIR}/${LIBUSB_VER}
|
|
|
|
|
|
# Create VB.NET specific README.VB.NET-bin file
|
|
cat > README.VB.NET-bin <<END_OF_README
|
|
What is it?
|
|
===========
|
|
|
|
This ZIP archive contains a build of Hamlib-$RELEASE
|
|
cross-compiled for VB.NET 2002 Framework 1.1 using MinGW under
|
|
Debian GNU/Linux (nice, heh!).
|
|
|
|
The DLL has a stdcall interface for MS VB.NET 2002 Framework 1.1.
|
|
|
|
This material is copyrighted. The library license is LGPL, and the *.EXE
|
|
files licenses are GPL. Hamlib comes WITHOUT ANY WARRANTY. See LICENSE.txt
|
|
COPYING.txt, and COPYING.LIB.txt files.
|
|
|
|
|
|
Usage
|
|
=====
|
|
|
|
The following originates from a mail by Michael Benz who did the work. It
|
|
explains how to proceed to have the VB Wrapper used with VB.NET 2002 with
|
|
Framework 1.1 (others not tested)
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
In the newer VB Modules (.BAS) don't exist anymore. So they were replaced by
|
|
the Classes (.VB) The Wrapper is not in final Condition, many DLL Function
|
|
are still not covered now, but it will be a good start.
|
|
|
|
To Import the "Wrapper" use the Folder "Project" and "Import existing
|
|
Element" Now import the Class "Hamlib.VB". It alsough seems to import into
|
|
Sharpdevelop, so anybody can try it out for free!
|
|
|
|
http://www.icsharpcode.net/OpenSource/SD/Default.aspx
|
|
|
|
This Class contains Your Enumeration as well as the DLLImport to get Access
|
|
to the Hamlib DLL.
|
|
|
|
Covered are:
|
|
- Init Rig with Comport and Speed
|
|
- set/ get Frequency
|
|
- set/get Mode
|
|
- set/get VFO
|
|
- get Riginfo
|
|
|
|
-rig_debug_level_e not verified (Function is Void, VB Dokumentation
|
|
sais this is not possible to be marshaled, but Compiler is still accapting this)
|
|
|
|
|
|
To get access to the Class you have to add something like this in your Main Class
|
|
Dim RigLib As RigControll = New RigControll 'get Acces to RigLib Klass
|
|
|
|
|
|
|
|
here is an Example how to use the Class:
|
|
|
|
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
|
|
'Dim tokenlookup As String = "rig_pathname"
|
|
'Dim tokenlookup As Object = "serial_speed"
|
|
'Dim Info As String
|
|
Dim Frequenz As Double
|
|
Dim ZeichenOut As String
|
|
Dim TokenPointer As System.Int32
|
|
Dim VFO As Integer
|
|
Dim Mode As RigControll.RMode_t
|
|
Dim Bandbreite As Long
|
|
' Dim RigLib As RigControll = New RigControll
|
|
|
|
Button3.Enabled() = True
|
|
Button2.Enabled() = False
|
|
|
|
|
|
RigLib.rig_set_debug(RigControll.rig_debug_level_e.RIG_DEBUG_TRACE)
|
|
myrig = RigLib.rig_init(RigNumber.Text)
|
|
|
|
TBmyrig.Text = myrig.ToString 'convert myrig to String
|
|
|
|
TokenPointer = RigLib.rig_token_lookup(myrig, "rig_pathname")
|
|
TBZeichen.Text = RigLib.rig_set_conf(myrig, TokenPointer, ComboBox2.Text)
|
|
Token.Text = TokenPointer
|
|
|
|
TokenPointer = RigLib.rig_token_lookup(myrig, "serial_speed")
|
|
TBZeichen.Text = RigLib.rig_set_conf(myrig, TokenPointer, ComboBox3.Text)
|
|
Token.Text = TokenPointer
|
|
|
|
RigLib.rig_open(myrig)
|
|
TB_Riginfo.Text = RigLib.rig_get_info(myrig)
|
|
|
|
RigLib.rig_get_vfo(myrig, VFO)
|
|
TextBox8.Text = VFO.ToString
|
|
|
|
RigLib.rig_get_freq(myrig, VFO, Frequenz)
|
|
TextBox2.Text() = Frequenz
|
|
|
|
RigLib.rig_get_mode(myrig, VFO, Mode, Bandbreite)
|
|
TextBox3.Text = [Enum].GetName(GetType(RigControll.RMode_t), Mode)
|
|
TextBox4.Text = Bandbreite
|
|
|
|
End Sub
|
|
|
|
+++++++++++++++++++++++++++++++++
|
|
|
|
kind Regard
|
|
|
|
Michael
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
Thank You!
|
|
==========
|
|
|
|
Patches, feedback, and contributions are welcome.
|
|
|
|
Please report problems, success to hamlib-developer@lists.sourceforge.net
|
|
|
|
Cheers,
|
|
Stephane Fillod - F8CFE
|
|
Nate Bargmann - N0NB
|
|
http://www.hamlib.org
|
|
|
|
END_OF_README
|
|
|
|
|
|
# Edit include/hamlib/rig_dll.h for __stdcall
|
|
mv include/hamlib/rig_dll.h include/hamlib/rig_dll.h.orig
|
|
sed -e 's/__cdecl/__stdcall/' <include/hamlib/rig_dll.h.orig >include/hamlib/rig_dll.h
|
|
rm include/hamlib/rig_dll.h.orig
|
|
|
|
# Configure and build hamlib for mingw32, with libusb-win32
|
|
|
|
./configure --host=i586-mingw32msvc \
|
|
--prefix=`pwd`/mingw-inst \
|
|
--without-cxx-binding \
|
|
PKG_CONFIG_LIBDIR=${LIBUSB_WIN32_BIN_PATH}/lib/pkgconfig
|
|
|
|
make install
|
|
|
|
mkdir -p ${ZIP_DIR}/bin ${ZIP_DIR}/lib/msvc ${ZIP_DIR}/lib/gcc ${ZIP_DIR}/include
|
|
cp -a src/libhamlib.def ${ZIP_DIR}/lib/msvc/libhamlib-2.def; todos ${ZIP_DIR}/lib/msvc/libhamlib-2.def
|
|
cp -a ${INST_DIR}/include/hamlib ${ZIP_DIR}/include/.; todos ${ZIP_DIR}/include/hamlib/*.h
|
|
|
|
# C++ binding is useless on win32 because of ABI
|
|
rm ${ZIP_DIR}/include/hamlib/{rig,rot}class.h
|
|
|
|
for f in AUTHORS ChangeLog COPYING COPYING.LIB LICENSE README README.betatester README.VB.NET-bin THANKS ; do \
|
|
cp -a ${f} ${ZIP_DIR}/${f}.txt ; todos ${ZIP_DIR}/${f}.txt ; done
|
|
|
|
# Copy build files into specific locations for Zip file
|
|
cp -a ${INST_DIR}/lib/hamlib/hamlib-*.dll ${ZIP_DIR}/bin/.
|
|
cp -a ${INST_DIR}/bin/libhamlib-?.dll ${ZIP_DIR}/bin/.
|
|
cp -a ${INST_DIR}/lib/libhamlib.dll.a ${ZIP_DIR}/lib/gcc/.
|
|
|
|
# NB: Do not strip libusb0.dll
|
|
i586-mingw32msvc-strip ${ZIP_DIR}/bin/*.exe ${ZIP_DIR}/bin/*hamlib-*.dll
|
|
cp -a ${LIBUSB_WIN32_BIN_PATH}/bin/x86/libusb0_x86.dll ${ZIP_DIR}/bin/libusb0.dll
|
|
|
|
# Need VC++ free toolkit installed (default Wine directory installation shown)
|
|
( cd ${ZIP_DIR}/lib/msvc/ && wine ~/.wine/drive_c/Program\ Files/Microsoft\ Visual\ C++\ Toolkit\ 2003/bin/link.exe /lib /machine:i386 /def:libhamlib-2.def )
|
|
zip -r hamlib-VB.NET-${RELEASE}.zip `basename ${ZIP_DIR}`
|
|
|