Cabal package description sytax
ekarttun at cs.helsinki.fi
Mon Nov 29 06:59:45 EST 2004
Ross Paterson <ross at soi.city.ac.uk> writes:
> There's an opportunity here to make another small extension to the
> simple build infrastructure, namely to preprocess package descriptions
> with cpp, possibly using header files generated by the configure step.
> That would be enough for the simple build to handle packages like X11,
> HGL, GLUT, OpenGL and OpenAL, where building is system-dependent. Indeed
> almost all of the packages in fptools/libraries could be handled this
Using cpp does not help with many packages, using e.g. programs like
foo-config. This is true for at least gtk, fltk, and so on. Also to
include the headers containing the definitions on needs system dependent
-I options for cpp... Currently I am using a Setup.description.in from
which a dummy Makefile creates the real Setup.description:
LFL=`fltk-config --libs | xargs dirname`
cp Setup.description.in Setup.description
sh -c "[ $(LFL) = /usr/lib ] || echo Extra-Lib-Dirs: $(LFL) >> Setup.description"
I don't think there is a really elegant way of doing this. Preprocessing
could be done in Setup.lhs too, but isn't that even more dirty?
> It would help if (at least) the name, version and maintainer fields
> allowed optional quotes as Sven suggests, so one could use the PACKAGE_*
> defines straight from configure. Also, the package description would need
> a few more fields (extra-ld-opts, extra-cc-opts and extra-frameworks)
> and a flag to say whether all Haskell sources should be preprocessed
> with cpp. It would also need to ignore blank lines (as GHC does),
> because #if's tend to generate quite a few of them, and these are even
> useful inside fields (e.g. module lists). I realize that this conflicts
> with the current stanza idea.
There is currently a pending patch to add support for Extra-Lib-Dirs.
- Einar Karttunen
More information about the Libraries