At 17:35 Uhr +0100 13.03.2002, Bernd Kuemmerlen wrote:
>Hi there,
>
>today I stumbled upon a problem in the dcmtk-3.5.1 package I made (which
>is included in finks unstable branch):
>
>dcmtk installs a bunch of headers into a directory structure which is
>normally located at /usr/local/dicom/include/
>
>There are some header files which go directly into this directory, and a
>lot more in subdirectories for the different parts of dcmtk.
>
>In my package, I just set the prefix=%i, so a few headers are installed
>to %p/include. And this is the problem because one of these headers is
>config.h. Obviously this is a BadThing and breaks compilation of a lot
>of packages because their config.h is not included... :-( (This also
>violates one of fink's filesystem rules, I know).

Yeah, config.h should never be installed. Also, installation (during 
package build time I mean) should always occur into %i/include. Files 
should only be moved into %p/include by Fink... maybe you meant that, 
it wasn't quite clear to me.


>I want to fix this, but I have some questions about that:
>What would be the best way to put the headers into a new location? I
>can't just set prefix to something like %i/include/dcmtk because this
>results in a wrong hierarchy from there (%p/include/dcmtk/include and
>%p/include/dcmtk/lib). It seems that I can't set the includedir from the
>commandline, this is set in a global Makefile.def.
>
>The two options I see are:
>- patch Makefile.def to put the headers somewhere else, not in
>$(prefix)/include
>- move the headers to a different directory in the InstallScript
>
>Any other hints/suggestions?

No, what you say makes sense. In these cases, I usually prefer to fix 
the build system of the package. Ideally, you do that in a clear 
fashion, i.e. so that it remains usable on other systems, then you 
can try to submit it back to the upstream maintainer for future 
versions of that software. While you are at it, you could even try to 
implement DESTDIR, but don't bother if it's to much work.

On Unix, it's sort of a convention to suppor the 
prefix/bindir/libdir/... etc. variables, even in build systems not 
based on autoconf/automake. Supporting it, or a functionaly 
equivalent, is paramount for a truly portable package, try to to 
explain that to them in nice words, and they might listen to you :-)


>Another question is: How do I make sure that the "bad" headers are
>removed when somebody updates to the new version of the package?

Where are the "bad" headers located right now? I am not quite sure I 
understood it... do you mean they are in..
a) /usr/local/include
b) /sw/include
c) somewhere else;

and do they include config.h ? For each scenario I'd treat it 
slightly different.


>Sorry if some of the questions seem to obvious, but I am just
>starting...

No, it's perfectly OK to ask this (sorry, I just kind of overlooked 
your mail previously.)


Cheers,

Max
-- 
-----------------------------------------------
Max Horn
Software Developer

email: <mailto:[EMAIL PROTECTED]>
phone: (+49) 6151-494890

_______________________________________________
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to