reduce-algebra portfile

Ryan Schmidt ryandesign at
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.

> build.type 	    gnu

That's the default.

More information about the macports-dev mailing list