[racket-dev] advice on the 6.x build system.
Hi David,
If I understand correctly, you're trying to base the build on a
checkout of the Racket git repository. I think it's better to base it
on a release source distribution, instead:
* The source distribution embeds a reference to a release-specific
package catalog, which effectively freezes certain packages to that
release. (Which packages and exactly how they should freeze will be
an ongoing experiment, but the source distribution will be set up
the right way, in any case).
* We plan to split up the current Racket repository into many
package-specific repositories. The current structure was intended as
a stop-gap, and it's not clear that anything like `make
local-source-catalog` will continue to exist.
That said, is there a particular reason that basing the build on the
git repo would be better?
Matthew
At Thu, 16 Oct 2014 23:23:37 +0200, David Bremner wrote:
>
> I've been been trying to rework the debian racket packaging, and to
> understand the new racket build system. I need to have the two seperate
> targets, which most of the package installation is done in the the
> "build-indep-stamp" target.
>
> The following makefile snippet is _almost_ working, except that I'm
> missing a launcher for drracket. After installing debian/tmp, running
> /usr/lib/racket/gracket and (require drracket) seems to work ok to start
> drracket, so I take that as indicating most of the packages / collects
> are in the right place. Can anyone see what I'm doing wrong here?
>
> I should say that I tried to make better use of the top level makefile,
> but I ended up with wrong default collects paths (probably just a
> different error on my part).
>
> I tried all of this (most recently) with the current release branch
> (c326c21b73356e)
>
> destdir:=$(CURDIR)/debian/tmp
> base_build_dir:=$(CURDIR)/racket/src/build
> PRERACKET:=${destdir}/usr/bin/racket -X ${destdir}/usr/share/racket/collects
>
> raco_args:=--catalog build/local/catalog --auto -i --skip-installed
>
>
> ${base_build_dir}/Makefile:
> mkdir -p ${base_build_dir}
> cd ${base_build_dir} && $(CURDIR)/racket/src/configure --prefix=/usr
>
> build-arch-stamp: ${base_build_dir}/Makefile
> $(MAKE) -C ${base_build_dir}
> $(MAKE) -C ${base_build_dir} DESTDIR=${destdir} install
> touch $@
>
> build-indep-stamp: build-arch-stamp
> $(MAKE) RACKET="${PRERACKET}" \
> local-source-catalog
> ${PRERACKET} -N raco -l- \
> pkg install ${raco_args} main-distribution racket-lib
> touch $@
> _________________________
> Racket Developers list:
> http://lists.racket-lang.org/dev