(This text has been extracted from the manual in XML format IrScrutinizer.xml
. Do not edit this file.)
"IrScrutinizer" is one subproject (corresponding to a Java package) within harctoolbox.org.
It depends on several other subprojects within harctoolbox. The repository IrScrutinizer
consists
of this subproject.
The released versions are found on the download page. The development sources are maintained on my GitHub repository. Forking and pull requests are welcome!
I go to great lengths ensuring that the program runs equally well on all supported platforms. I do not care too much that all aspects of the build runs equally well on all platforms. I build with Linux (Fedora), the continuous integration build runs on Travis (Ubunto). Other platforms are treated stepmotherly.
As any program of substantial size, IrScrutinizer uses a number of third-party components.
All of these are also free software, carrying compatible licenses.
The dependent packages need to be installed also in
maven in order for the build to work. With the dependencies available, the script tools/install-deps.sh
can be used to install them in the local maven repository before building.
This library is used to access /dev/lirc
-hardware. It is used by the Linux version only.
It is a Java JNI library, written in Java and C++. It is written by myself,
and available here.
The subdirectories native/Linux-amd64
,
native/Linux-i386
, and
native/Linux-arm
contain compiled versions for the x86_64, x86_32, and ARM processors respectively.
The package can be downloaded, and the Java part built, by the script tools/build-DevSlashLirc.sh
.
These are all pure Java packages that are required to build IrScrutinizer.
They can be downloaded and built by the scripts
tools/build-IrpTransmogrifier.sh
,
tools/build-Girr.sh
,
tools/build-HarcHardwareBundle.sh
, and
tools/build-Jirc.sh
.
The serial communication packate RXTX is also included in the source package. This builds a shared library and a jar file.
On Linux, if there is a system supported RXTX (librxtxSerial
really), it should be preferred,
in particular since it knows the preferred lock direcory for the present operating system.
The distribution contains pre-compiled binaries for Linux, Windows, and Mac OS X, both in 32- and 64-bit versions.
To compile the C sources, see the sub-directory rxtx-pre2h
and the instructions therein.
Note that the system supplied RXTX jar on many system (e.g. Fedora 21) has some issues
(version number incompatible with the shared library, does not recognize
the /dev/ttyACM*
-ports required by IrToy and many Arduinos, unflexible library loading),
so using our RXTX jar together with the system supplied shared library can be sensible.
Normally, these components are downloaded and installed automatically by maven.
If the system supports Tonto, use the system version. (On recent Fedora, use sudo dnf install tonto
.)
Otherwise, it can be downloaded and installed by the script tools/build-tonto.sh
.
Note that the shared library libjnijcomm
,
which is required by the program Tonto for communicating with a Pronto remote through a serial interface,
is not required for use with IrScrutinizer, and can therefore be left out.
As of version 1.1.2, the Maven "software
project management and comprehension tool" is used as building system.
Modern IDEs like Netbeans and Eclips integrate Maven, so build etc can be initiated from the IDE.
Of course, the shell command mvn install
can also be used. It creates some artifacts which can
be used to run IrScrutinizer in the IrScrutinizer/target
directory.
To prepare the Windows version, some shell tools are needed. These are:
-
The
unix2dos
anddos2unix
utilities, typically in thedos2unix
package. -
The
icotool
utility, typically in theicoutils
package
For building the Windows setup.exe, the Inno Installer version 6
is needed. To build the Windows setup.exe
file, preferably the work area should
be mounted on a Windows computer. Then, on the Windows computer, open
the generated file IrScrutinizer/target/IrScrutinizer_inno.iss
with
the Inno installer, and start the compile. This will generate the desired file
IrScutinizer-
version.exe
.
Alternatively, the "compatibility layer capable of running
Windows applications" software application Wine (included in most Linux
distributions) can run the ISCC compiler of Inno. The Maven file
IrScrutinizer/pom.xml
contains an
invocation along these lines, conditional upon the existence of the file ../Inno Setup 6/ISCC.exe
.
The Maven build creates a file
IrScrutinizer-
version-macOS.zip
.
This file can be directly distributed to the users, to be installed according to
these instructions.
The icon file IrScrutinizer.icns
was produced from the Crystal-Clear
icon babelfish.png
in 128x128 resolution, using the procedure
described
here.
To build the x86_64 AppImage, define bundledjdk_url_sans_file
and bundledjdk
in pom.xml
to point to a suitable JDK distrubution file.
If a file with name given by bundledjdk
is not present in the top level directory, it can be downloaded by the script tools/get-jdk-tar.sh
.
Then the maven goal make-appimage
(which will be invoked during a normal build) will build an appimage for x86_64.
For testing purposes, the programs can be invoked from their different target directories. IrScrutinizer can be invoked as
$ java -jar target/IrScrutinizer-jar-with-dependencies.jar
or, if the shared libraries are required, with path-to-shared-libraries denoting the path to a directory containing the shared libraries.
$ java -Djava.library.path=_path-to-shared-libraries_ -jar target/IrScrutinizer-jar-with-dependencies.jar
IrScrutinizer can also be started by double clicking the mentioned jar file, provided that the desktop has been configured to start executable jar with "java".
Maven does not support something like make install
for deployment installing a
recently build program on the local host.
Instead, the supplied tools/Makefile
can
install the program to normal Linux locations (in the Makefile INSTALLDIR
),
sudo make -f tools/Makefile install
Equivalently, the just created generic-binary package
IrScrutinizer/target/IrScrutinizer-*-bin.zip
) can be installed using these instructions.