Ludovic Courtès writes: > Hello Marius, > > Marius Bakke skribis: > >> Ludovic Courtès writes: >> >>> There’s no such function, which is unfortunate. But I agree it’s nicer >>> to preserve symlinks in this case. >>> >>> Perhaps we should actually do: >>> >>> (with-directory-excursion libdir >>> (symlink … "libbz2.so")) >> >> Thanks for the feedback everyone. I settled on a slightly different >> solution, that first extracts the (full) soversion from the built >> library, then creates symlinks for each "sub-version". >> >> It assumes that the major version is "1". That could be circumvented >> with a regex, but I'm not sure if it's worth the effort. >> >> As an added bonus, this also creates "libbz2.so.1" which was missing too. >> >> WDYT of this approach? Can it be made simpler? > > Sounds reasonable to me. I have a suggestion: [...] > To avoid ‘set!’, I’d write it along these lines: > > ;; Create symlinks libbz2.so.1.2 -> libbz2.so.1, etc. > (let loop ((base "libbz2.so") > (numbers (string-split soversion #\.))) > (unless (null? numbers) > (let ((so-file (string-append base "." (car numbers)))) > (symlink so-file base) > (loop so-file (cdr numbers))))) This is much nicer, thanks! I've pushed the patch with this improvement.