Changes to make fptools insfrastructure usable for standalone
libraries
Alastair Reid
alastair at reid-consulting-uk.ltd.uk
Thu May 22 07:57:46 EDT 2003
[I know you're busy with the new release at the moment - so feel free to delay
until it's out the door.]
After setting up the X11/mk/*.mk files you suggested (see recent commits in
fptools/libraries/X11) things worked pretty well (with your modified
package.mk file).
That is, I can now:
cd fptools
autoconf
./configure --with-greencard
cd libraries/X11
make install
Some remaining issues:
1) There was nothing including version.mk so it tried to install in
/usr/lib/ghc-6.0.
I couldn't figure out what was making it pick up the ghc
settings (presumably from ghc/mk/version.mk) but adding:
-include $(TOP)/mk/version.mk
at the end of fptools/libraries/X11/boilerplate.mk seemed to fix this.
2) For some reason, the code at the head of package.mk wasn't working.
ifneq "$(GHC_DRIVER_DIR)" ""
STANDALONE_PACKAGE = NO
else
STANDALONE_PACKAGE = YES
endif
That is, it was setting STANDALONE_PACKAGE to NO.
This may well be connected with erroneously picking up the ghc
version info?
For now I have fixed this by putting this in target.mk:
# This is a standalone library. That is, it is not (and cannot be)
# built as part of the ghc build process but is built later after
# you have installed GHC.
STANDALONE_PACKAGE = YES
But that would require changes to all existing packages. (This may not
be unreasonable though?)
3) Given the choice of install location
(usr/lib/${ProjectNameShort}-${ProjectVersion}), I decided that
X11 was a bad name for the project and settled on HSX11. This means
it gets installed in
/usr/local/lib/HSX11-1.0
This directory name isn't bad but better ones may well exist.
(I'm also thinking that including the compiler name and version number
would be a good idea.)
4) The little TOP/FPTOOLS_TOP/THIS_PACKAGE_TOP dance:
LIBRARY_TOP := $(TOP)
TOP:=$(TOP)/..
include $(TOP)/mk/boilerplate.mk
TOP:=$(LIBRARY_TOP)
is a bit awkward (and confuses the hell out of me when I go looking at
fptools/mk files). Any chance of fixing this properly by having each
standalone project (eg ghc, HSX11, happy, etc.) setup:
PROJECT_TOP = .
FPTOOLS_TOP = <wherever you feel like>
GHC_TOP = $(FPTOOLS_TOP)/ghc # optional
and replace all current uses of $(TOP) with the appropriate choice of TOP?
5) A possibly related issue is that when I distribute the X11 library, I'd
prefer to have fptools be a subdirectory of X11 not the other way around (or
have it as a debian package that I install before building X11). Then I'd
set
FPTOOLS_TOP=$(TOP)/fptools
or, maybe,
FPTOOLS_TOP=/usr/lib/fptools-1.0
in X11/mk/boilerplate.mk
6) It's not a big deal but...
It looks to me as though bootstrap.mk only exists for installing
ghc from .hc files so maybe it ought to be in fptools/ghc/mk.
(I guess it's not because fptools/libraries probably builds from .hc
files too?)
As I say, no big deal.
--
Alastair Reid
More information about the Glasgow-haskell-bugs
mailing list