To build a stable or latest version of kstars, I recommend using the script from https://gitea.nouspiro.space/nou/astro-soft-build
The script creates two folder trees: one for the source code and another one for the build folders, that will include all the compiled objects and artifacts.
Once the script has created the build folder structure, you can manually build other parts of the application, like custom drivers or a new feature you would like to contribute.
I use the script to bootstrap the development and thus having a working copy of the app.
You can modify the original scripts and use your own repository or branch. Copy the original scripts and fine tune them for your repository and branch.
If you modify a driver, make sure to also edit file $INDIROOT/drivers.xml
to sync the version.
Use make help
to get a list of all available targets
You can also manually rebuild parts of the components. Here there are some tips.
Create build folder structure
You first need to create the building folder structure. This is the way the scripts create the build structure, so you can also make your own customization.
$ [ ! -d ../build-indi ] && \
{ cmake -B ../build-indi ../indi -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release || \
{ echo "INDI configuration failed"; exit 1; } }
$ cd ../build-indi
Workflow for testing a new version of a driver
In order to run your own version of a driver, you need to first build it. Here are the steps I follow:
- Make your changes on the corresponding code.
- Build the driver from the build folder.
- Copy the driver to the driver install folder.
Use make help
to get a list of all available targets in case of doubt.
For example, to build SnapCap driver:
$ cd ~/astro-soft-stable/build-indi/drivers/auxiliary
$ make indi_snapcap
[ 0%] Built target hid
[ 9%] Built target indicore
[ 22%] Built target indidevice
[ 22%] Built target eventloop
[ 31%] Built target dsp
[ 36%] Built target fpack
[ 95%] Built target indidriver_OBJECT
[ 95%] Built target indidriver
[100%] Built target indi_snapcap
To build a single driver:
- go to the build-* driver folder
- run
make
- to install run
sudo make install
For example, to build Rolloffino driver on the indi-3rdparties
repository:
$ cd ~/astro-soft-stable/build-indi-3rdparty/indi-rolloffino
$ make
Scanning dependencies of target indi_rolloffino
Building CXX object indi-rolloffino/CMakeFiles/indi_rolloffino.dir/rolloffino.cpp.o
Linking CXX executable indi_rolloffino
Built target indi_rolloffino
To install it you can use sudo make install
or manually copy the driver to the driver folder (at /usr/bin
for a RaspberryPi).
Start indiserver
It is better to manually start indiserver so you can see logs and other debugging information. For example, this will start a server listing on port 7624 and starting two drivers: Snapcap and Simultar filter wheel.
/usr/bin/indiserver -v -p 7624 -m 2048 -r 0 indi_snapcap indi_simulator_wheel
Once you manually started the server, you can run kstars
and create a profile to connect to the indiserver
, in this case you should consider it a remote server running on your local computer. The profile should include the devices you used to manually start indiserver
, and it is mandatory to include a CCD. In this example, the devices are Filter Simulator, SnapCap and the mandatory CCD, in this case, the Simulator.