Re: How to provide header files for 0compile
Thomas Leonard <[email protected]> Sat, 15 Jul 2017 19:42:27 +0100
| Newsgroups | gmane.comp.file-systems.zero-install.devel |
|---|---|
| Message-ID | <CAG4opy-zKapiK8sr3HebB0iF5Qh4m3+UGNqJ-i_7eesnbk4Aeg@mail.gmail.com> |
On 15 July 2017 at 01:26, Eric Duhamel <[email protected]> wrote: > On Thu, 2017-07-06 at 20:43 +0100, Thomas Leonard wrote: >> On 5 July 2017 at 14:57, Eric Duhamel <[email protected]> wrote: >> > I've gotten pretty handy with 0install when it comes to packaging >> > binaries >> > with required libraries, but I don't yet know how to do the same >> > for >> > 0compile. >> > >> > Documentation for 0compile says "For header files (-dev packages), >> > there >> > will often be a source implementation that generates the header >> > files...". >> > In my case I don't think there is a source implementation and I'm >> > not sure >> > how to make one. >> > >> > I want to write a feed that can tell 0compile how to build a >> > program from >> > source. The program source uses Make, but it requires several -dev >> > packages. >> > I have access to said packages and the header files inside. How do >> > I tell >> > 0compile to use the header files when compiling from source? >> >> Just use <requires> as for any other dependency, and depend on the >> interface that provides the header files. You can either add the >> headers to the include path directly with an environment variable or, >> if the header files use pkg-config, add the .pc file to the pkg- >> config >> path. Make sure you use relative paths in the .pc files in that case >> (e.g. ${pcfiledir}/../../include). > > Thank you. After a lot of digging I found some of the environment > variables I need to insert to are CPATH and LIBRARY_PATH (not > LD_LIBRARY_PATH). pkg-config sounds automagical which would be great, > but I haven't tried it yet. > > For this particular program (Eureka 1.21) I couldn't get 0compile to > build it. The applicable error line returned was > > [code]make: *** No rule to make target 'obj_linux/e_basis.o', needed by > 'eureka'. Stop.[/code] > > I was able to make it compile without using 0install by adding the > appropriate paths to CPATH and LIBRARY_PATH and calling make, so don't > know why 0compile would fail. You can use: 0compile build --shell to get a shell with the same environment as the build, which might help to debug it. If nothing else works, you can always run "env" in there and in the environment that works and compare. -- talex5 (GitHub/Twitter) http://roscidus.com/blog/ GPG: 5DD5 8D70 899C 454A 966D 6A51 7513 3C8F 94F6 E0CC ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot