reduce-algebra portfile
Ryan Schmidt
ryandesign at macports.org
Sun Dec 11 18:02:14 PST 2011
On Dec 11, 2011, at 19:33, Mark Brethen wrote:
> I have a working portfile (included below) and verified that the psl variant builds. The user has two options : 1) Build Reduce using the CSL Lisp system [default] or 2) using the PSL Lisp system [variant]. Is this the preferred way of using a variant?
>
> At present "make install" is deeply broken and I get "Error: No files have been installed in the destroot directory!"
>
> The main directories supplied are
> as follows, where MACHINE stands for a machine identification, eg
> x86_64-mac_10.7_lion-darwin11.2.0.
>
> trunk The main version of everything
> bin Scripts to launch REDUCE etc
> csl/cslbase Main CSL Lisp sources
> fox the FOX GUI toolkit, an LGPL package
> cslbuild/generated-c Part of REDUCE compiled into C
> MACHINE/csl where REDUCE binaries are built
> fox where the FOX GUI toolkit is built
> csllogs/MACHINE/build logs from building REDUCE
> test logs from testing REDUCE
> packages/alg REDUCE sources, on package per directory
> ...
> ztrans
> psl/psl-amd64 Ready-build binaries of the PSL Lisp system ...
> ... ...
> psl/win32 ... for a variety of architectures
> pslbuild/MACHINE/. where REDUCE gets built
> psl copy of relevant architecture-specific PSL
> red REDUCE built binary "fasl" and image files
> deps used to record dependencies in the build
> psllogs/build logs from building REDUCE
> test logs from testing REDUCE
> scripts scripts used to maintain the system.
>
> Using something like:
>
> destroot {
> xinstall ${worksrcpath}/bin/redcsl ${destroot}${prefix}/bin
> }
>
> can be done, but the binaries are actually built within cslbuild/<MACHINE>/ or pslbuild/<MACHINE>/, and the scripts like bin/redcsl deduce where to look and
> chain to binaries there. Reduce needs some resources in the same directory as the bin executable so merely copying <MACHINE>/csl/reduce to somewhere else is not liable to be a good idea.
So you'll need to copy all the things it needs then. And not into ${prefix}/bin; that would be a mess. Copy them somewhere else (${prefix}/libexec/${name} maybe?), then make symlink(s) in bin to the program(s) users will actually want to run.
> license BSD License
Just say "BSD" here.
> maintainers mdb openmaintainer
Must be your complete email address (in our obfuscated form, preferably) since you are not a committer.
> depends_build port:pkgconfig \
> port:xorg-libX11 \
> port:Xft2 \
> port:xorg-libXext \
> port:ncurses
>
> depends_lib port:xorg-libX11 \
> port:xorg-libXext
No point listing things in depends_build which are already in depend_lib.
Xft2, xorg-libXext, and ncurses are libraries; are you sure they shouldn't be in depends_lib instead of depends_build?
> configure.args --with-csl #Build CSL version of REDUCE
>
> variant psl description { Build PSL version of REDUCE } {
> configure.args-replace s|--with-csl|--with-psl|
> }
What is the difference between CSL and PSL? Does the user care? Must we offer the choice at all?
If we must, then I prefer to offer two mutually-exclusive variants and make one the default.
https://trac.macports.org/wiki/PortfileRecipes#default_variants
> build.type gnu
That's the default.
http://guide.macports.org/chunked/reference.phases.html#reference.phases.build
More information about the macports-dev
mailing list