silnrsi / teckit

A Text Encoding Conversion toolkit
Other
17 stars 11 forks source link

Build with system expat? #5

Closed spl closed 5 years ago

spl commented 5 years ago

Is it possible to build with the system expat library? Or is the bundled library always included?

devosb commented 5 years ago

I don't think so. I only maintain TECkit, I did not do most of the work on it, so I am not real familiar with all the code. Looking at the history of configure.ac there are mentions of a system expat library, so it might be possible.

spl commented 5 years ago

I saw that, too, but I couldn't figure out how to do it. Using ./configure --with-system-expat didn't seem to have an effect. Anyway, it's not that important. I thought that, if the option was there, I could use it, but I don't think you or I need to spend the time to figure it out. Thanks!

neilmayhew commented 5 years ago

If there's a system expat available, TECkit will use it automatically.

Specifically, the configure script tries to link a small program with -lexpat that uses the XML_ExpatVersion() function. If the link succeeds, the SFConv build will use the system expat.

I tried it both ways, and the build does the right thing in each case.

spl commented 5 years ago

@neilmayhew Okay, that's great! I wasn't sure. I'm on macOS, and I think it must be using the system expat even if I didn't want it to.

Is there a quick change to the configure script that would allow me to pass --with-system-expat to force usage of the system expat library? That is, I'd expect to see configure fail if passed --with-system-expat and the -lexpat check fails. Likewise, the flag --without-system-expat without the -lexpat check would be useful, too.

With the flags, I think it would be better to make --with-system-expat enabled by default rather than have the current use-it-if-it's-there/use-the-bundled-expat-it-if-it's-not setting. The former is more explicit and self-documenting, whereas the latter is not as easy to discover or determine what's happening.

I'm don't know autoconf, which is why I didn't think it was worth the time, but if you do, and it's not too difficult, I think this would be a good change.

devosb commented 5 years ago

I don't have enough autoconf skills to do this, even if I wanted to.