Skip to content

Commit

Permalink
Merge branch 'release-1.3' into release
Browse files Browse the repository at this point in the history
  • Loading branch information
bengtmartensson committed Aug 30, 2016
2 parents f66fca5 + a45cc35 commit dbd0ba0
Show file tree
Hide file tree
Showing 224 changed files with 15,270 additions and 8,297 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ nbactions.xml
repos
nbactions-*.xml
appimagekit
hs_err*.log
7 changes: 4 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,18 @@ email: false
language: java
jdk:
- openjdk7
install:
before_install:
- sudo add-apt-repository ppa:dns/gnu -y
- sudo apt-get update -qq
- sudo apt-get install -y autoconf dos2unix icoutils python-requests
install:
- sudo apt-get install -y --force-yes autoconf dos2unix icoutils python-requests
script:
- tools/build-DevSlashLirc.sh
- tools/build-appimagekit.sh
- tools/build-decodeir.sh
- tools/build-exchangeir.sh
- tools/build-jcommander.sh
- tools/build-minimal-json.sh
- tools/build-java-readline.sh
- tools/build-tonto.sh -n
- mvn install -DskipTests=true -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -B -V
- tools/travis2github.py IrScrutinizer/target/IrScrutinizer-bin.zip IrScrutinizer/target/IrScrutinizer-*-app.zip IrScrutinizer/target/IrScrutinizer-*AppImage
138 changes: 138 additions & 0 deletions BUILD.md
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).

2 changes: 1 addition & 1 deletion Crystal-Clear-Icons/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.harctoolbox</groupId>
<artifactId>HarctoolboxBundle</artifactId>
<version>1.2</version>
<version>1.3</version>
<relativePath>..</relativePath>
</parent>
<licenses>
Expand Down
5 changes: 3 additions & 2 deletions Girr/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@
<groupId>org.harctoolbox</groupId>
<artifactId>Girr</artifactId>
<packaging>jar</packaging>
<version>1.2</version>
<version>1.3</version>
<name>Girr</name>
<parent>
<groupId>org.harctoolbox</groupId>
<artifactId>HarctoolboxBundle</artifactId>
<version>1.2</version>
<version>1.3</version>
<relativePath>..</relativePath>
</parent>
<licenses>
Expand Down Expand Up @@ -115,6 +115,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<!--descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
Expand Down
Loading

0 comments on commit dbd0ba0

Please sign in to comment.