I’m continuing my journey in learning how to port for Haiku. At first it was hard, but I feel I’m improving (tnx to the support of the community!) and some of my ports were merged already (aye!)
I promise to collect what I’ve discovered so far in a Troubleshooting doc I hope other would benefit
Now with today’s problem.
I’ve ported this shared library: https://github.com/theclue/haikuports/blob/fits2png/sci-libs/cfitsio/cfitsio-3.47.recipe
Build, test and install ok. The produced library is called libcfitsio.so
But I’ve noticed that a couple of apps which make use of this library don’t work as they search for libcfitsio.so.8
Having a look at the Makefile generated for my Darwin host I see that two symbolic links are created:
lib${PACKAGE}${SHLIB_SUFFIX}: ${OBJECTS}
${SHLIB_LD} ${LDFLAGS} -o ${CFITSIO_SHLIB} ${OBJECTS} -lm ${LIBS_CURL} ${LIBS}
@if [ "x${CFITSIO_SHLIB_SONAME}" != x ]; then \
ln -sf ${CFITSIO_SHLIB} ${CFITSIO_SHLIB_SONAME}; \
ln -sf ${CFITSIO_SHLIB_SONAME} $@; \
fi
These links are not created into the Makefile generated for Haiku
Skipping all the intermediate steps, I’ve discovered that these links are not created because Haiku is not in a list of known $host
in configure.in
.
My questions:
- What is the purpose of these synbolic links in build?
- If I update
configure.in
, reconfigure and repackage, will those symbolic links be added to the package as well? - Should I patch
configure.in
then addautoreconf
in BUILD in recipe or execute autoreconf offline and patch the resultingconfigure
script instead?
as usual, tnx for support and happy patching!