Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

It's frustrating that the Makefile can't install as a relocatable package #376

Open
madscientist opened this issue Jan 7, 2025 · 4 comments

Comments

@madscientist
Copy link
Contributor

The only way to install lcov using its makefile install target, forces options like --fixlibdir, --fixbindir, and --fixscriptdir, which means that the installation contains hardcoded paths and is not relocatable. Without these options the installation is relocatable, as long as you keep the relative paths of the package correct.

I understand that the current install allows the files in bin to be copied somewhere else, by themselves, and still work. I'm not really sure who would use this feature (you can't move the bin directory since bindir is a hardcoded path) versus something like symlinks, but OK.

It would be great if there were a makefile target that allowed installation in a relocatable fashion. I originally thought maybe it could be done by just moving a lot of these options into a make variable that could be overridden on the command line, but it seems the combination of options is complex enough to make that tricky. A separate target, like install-reloc or something, might be simpler.

@madscientist
Copy link
Contributor Author

Looks like it's not quite so simple, since in an installation the @inc path needs to be ../lib/lcov, not just ../lib.

Sigh. A relocatable lcov is something I really need. I will investigate more.

@hartwork
Copy link
Contributor

hartwork commented Jan 7, 2025

A relocatable lcov is something I really need.

@madscientist how so?

@henry2cox
Copy link
Collaborator

henry2cox commented Jan 7, 2025

If you are willing to hack the locations of stuff, then the implementation is fairly happy with an install layout that looks like the hierarchy in git (apart from man pages - which won't work quite right) - but that might or might not meet your requirements (I do not know what your requirements are).

@madscientist
Copy link
Contributor Author

madscientist commented Jan 7, 2025

Because I check in my toolchain into a Git repository, so that I can have it easily available on any system via git clone. But, this means I cannot know the fully-qualified pathname to any of my tools at install time. They all need to use relative pathnames to find their libraries, etc. at runtime.

I'm doing some hacking on my toolchain build script for lcov. I can work around it. Still would be nice to be natively supported :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants