-
Notifications
You must be signed in to change notification settings - Fork 42
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'release-1.3' into release
- Loading branch information
Showing
224 changed files
with
15,270 additions
and
8,297 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,3 +10,4 @@ nbactions.xml | |
repos | ||
nbactions-*.xml | ||
appimagekit | ||
hs_err*.log |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
(This text has been extracted from the manual in XML format `IrScrutinizer.xml`. Do not edit this file.) | ||
|
||
# Building from sources | ||
|
||
"IrScrutinizer" is one subproject (corresponding to a Java _package_) within [harctoolbox.org](http://harctoolbox.org). | ||
It depends on several other subprojects within harctoolbox. The project `harctoolboxbundle` consists | ||
of these subproject bundled together, with some dependent third-party components added. | ||
|
||
The released versions are found on the [download page](http://www.harctoolbox.org/downloads/index.html). | ||
The development sources are maintained on [my GitHub repository](https://github.com/bengtmartensson/harctoolboxbundle). | ||
Forking and pull requests are welcome! | ||
|
||
## Dependencies | ||
|
||
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. | ||
|
||
### DevSlashLirc | ||
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](https://github.com/bengtmartensson/DevSlashLirc). | ||
|
||
|
||
### The Crystal icons | ||
A subset of the Crystal icons are included, and will be included in a built jar. | ||
Most Linux distributions contain these too, so a Linux packaging may like to use the system icons instead. | ||
|
||
### RXTX | ||
The serial communication packate RXTX is also included in the source package. This builds a shared library and a jar file. | ||
If there is a system supported RXTX (`librxtxSerial` really), it should be preferred. | ||
The distribution constains 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. | ||
|
||
### DecodeIR | ||
If the system supports DecodeIR, use the system version. On recent Fedora, this can be installed with the command | ||
`sudo dnf install DecodeIR`. This will install both the shared | ||
library `libDecodeIR` as well as the jar file `DecodeIrCaller.jar`. | ||
To download and compile the sources, see (or execute) the script `tools/build-decodeir.sh`. | ||
|
||
### ExchangeIR | ||
It the system supports ExchangeIR, use the system version. (On recent Fedora, use `sudo dnf install ExchangeIR`.) | ||
Otherwise, it can be downloaded and installed by the script `tools/build-exchangeir.sh`. | ||
|
||
### minimal-json | ||
It the system supports minimal-json, use the system version. (On recent Fedora, use `sudo dnf install minimal-json`.) | ||
Otherwise, it can be downloaded and installed by the script `tools/build-minimal-json.sh`. | ||
|
||
### jcommander | ||
It the system supports jcommander, use the system version. (On recent Fedora, use `sudo dnf install beust-jcommander`.) | ||
Otherwise, it can be downloaded and installed by the script `tools/build-jcommander.sh`. | ||
|
||
### Tonto | ||
It the system support 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. | ||
|
||
## Building | ||
As of version 1.1.2, the [Maven](http://maven.apache.org/index.html) "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. | ||
|
||
It also creates a `package/dist` directory containing jars | ||
(without dependencies), docs, and configurations files. This is intended to support | ||
packaging. | ||
|
||
To prepare the Windows version, some shell tools are needed. These are: | ||
|
||
|
||
|
||
* The `unix2dos` and `dos2unix` utilities, typically in the `dos2unix` package. | ||
|
||
* The `icotool` utility, typically in the `icoutils` package | ||
|
||
|
||
## Windows setup.exe creation | ||
For building the Windows setup.exe, the [Inno Installer version 5](http://www.jrsoftware.org/download.php/is.exe) | ||
is needed. To build the Windows `setup.exe` file, preferrably 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](https://www.winehq.org) (included in most Linux | ||
distributions) can run the ISCC compiler of Inno. The Maven file | ||
`IrScrutinizer/pom.xml` contains an experimental | ||
invocation along these lines. | ||
|
||
## Mac OS X app creation | ||
The Maven build creates a file | ||
`IrScrutinizer-`_version_`-app.zip`. | ||
This file can be directly distributed to the users, to be installed according to | ||
[these instructions](http://harctoolbox.org/IrScrutinizer.html#Mac+OS+X+app). | ||
|
||
The icon file `IrScrutinizer.icns` was produced from the Crystal-Clear | ||
icon `babelfish.png` in 128x128 resolution, using the procedure | ||
described | ||
[here](http://stackoverflow.com/questions/11770806/why-doesnt-icon-composer-2-4-support-the-1024x1024-size-icon-any-more). | ||
|
||
|
||
## Test invocation | ||
For testing purposes, the programs can be invoked from their different target directories. | ||
IrScrutinizer can be invoked as | ||
|
||
|
||
$ cd IrScrutinizer | ||
$ java -jar target/IrScrutinizer-jar-with-dependencies.jar | ||
|
||
and IrpMaster as | ||
|
||
|
||
$ cd IrpMaster | ||
$ java -jar target/IrpMaster-jar-with-dependencies.jar _[arguments...]_ | ||
|
||
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". | ||
|
||
## Installation | ||
For reasons unclear to me, Maven does not support something like `make install` for installing a | ||
recently build program on the local host. Instead, the supplied script `tools/install-irscrutinizer.sh` | ||
installs the program to normal Linux/autotools locations. | ||
(Actually, invoking Maven with the "deploy" target will invoke this script too.) | ||
Alternativelly, the just created generic-binary package | ||
(`IrScrutinizer/target/IrScrutinizer-bin.zip`) can be installed using [these instuctions](http://harctoolbox.org/IrScrutinizer.html#Generic+Binary). | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.