diff options
author | Karn Kallio <tierpluspluslists@gmail.com> | 2011-03-24 19:22:30 +0000 |
---|---|---|
committer | Karn Kallio <tierpluspluslists@gmail.com> | 2011-03-24 19:22:30 +0000 |
commit | 7df7521dd1d138261d0d0e052697edef23949ea9 (patch) | |
tree | 79bfde5d2254a8440eeee6987776030e06249955 /pkgs/development/compilers/pakcs | |
parent | a3fb3b00cea75561ac224ec13e3bd3093e72c657 (diff) | |
download | nixpkgs-7df7521dd1d138261d0d0e052697edef23949ea9.tar nixpkgs-7df7521dd1d138261d0d0e052697edef23949ea9.tar.gz nixpkgs-7df7521dd1d138261d0d0e052697edef23949ea9.tar.bz2 nixpkgs-7df7521dd1d138261d0d0e052697edef23949ea9.tar.lz nixpkgs-7df7521dd1d138261d0d0e052697edef23949ea9.tar.xz nixpkgs-7df7521dd1d138261d0d0e052697edef23949ea9.tar.zst nixpkgs-7df7521dd1d138261d0d0e052697edef23949ea9.zip |
Add the PAKCS (Portland Aachen Kiel Curry System) Curry compiler to Nixpkgs.
svn path=/nixpkgs/trunk/; revision=26497
Diffstat (limited to 'pkgs/development/compilers/pakcs')
-rw-r--r-- | pkgs/development/compilers/pakcs/default.nix | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/pkgs/development/compilers/pakcs/default.nix b/pkgs/development/compilers/pakcs/default.nix new file mode 100644 index 00000000000..8d166584451 --- /dev/null +++ b/pkgs/development/compilers/pakcs/default.nix @@ -0,0 +1,81 @@ +{ stdenv, fetchurl, ghc, swiProlog, syb, mtl, makeWrapper, rlwrap, tk }: + +stdenv.mkDerivation rec { + pname = "pakcs"; + version = "1.9.2"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "http://www.informatik.uni-kiel.de/~pakcs/download/pakcs_src.tar.gz"; + sha256 = "1sa6k4s5avn3qvica3a5zvb6q9vnawpp00zviqjwncwwd4a9bcwm"; + }; + + buildInputs = [ ghc swiProlog syb mtl makeWrapper rlwrap tk ]; + + prePatch = '' + # Remove copying pakcsrc into $HOME. + sed -i '/update-pakcsrc/d' Makefile + + # Remove copying pakcsinitrc into $HOME + sed -i '68d' configure-pakcs + ''; + + preConfigure = '' + # Path to GHC and SWI Prolog + sed -i 's@GHC=@GHC=${ghc}/bin/ghc@' bin/.pakcs_variables + sed -i 's@SWIPROLOG=@SWIPROLOG=${swiProlog}/bin/swipl@' bin/.pakcs_variables + ''; + + postInstall = '' + cp pakcsrc $out/ + cp update-pakcsrc $out/ + cp -r bin/ $out/ + cp -r cpns/ $out/ + cp -r curry2prolog/ $out/ + cp -r docs/ $out/ + cp -r examples/ $out/ + cp -r include/ $out/ + cp -r lib/ $out/ + cp -r mccparser/ $out/ + cp -r tools/ $out/ + cp -r www/ $out/ + + # The Prolog sources must be built in their final directory. + (cd $out/curry2prolog/ ; make) + + ensureDir $out/share/emacs/site-lisp/curry-pakcs + for e in $out/tools/emacs/*.el ; do + ln -s $out/tools/emacs/$e $out/share/emacs/site-lisp/curry-pakcs/; + done + + sed -i 's@which@type -P@' $out/bin/.pakcs_wrapper + + # Get the program name from the environment instead of the calling wrapper (for rlwrap). + sed -i 's@progname=`basename "$0"`@progname=$PAKCS_PROGNAME@' $out/bin/.pakcs_wrapper + + wrapProgram $out/bin/.pakcs_wrapper \ + --prefix PATH ":" "${rlwrap}/bin" \ + --prefix PATH ":" "${tk}/bin" \ + --run 'export PAKCS_PROGNAME=`basename "$0"`' + ''; + + meta = { + description = "PAKCS is an implementation of the multi-paradigm declarative language Curry."; + longDescription = '' + PAKCS is an implementation of the multi-paradigm declarative language + Curry jointly developed by the Portland State University, the Aachen + University of Technology, and the University of Kiel. Although this is + not a highly optimized implementation but based on a high-level + compilation of Curry programs into Prolog programs, it is not a toy + implementation but has been used for a variety of applications (e.g., + graphical programming environments, an object-oriented front-end for + Curry, partial evaluators, database applications, HTML programming + with dynamic web pages, prototyping embedded systems). + ''; + + homepage = http://www.informatik.uni-kiel.de/~pakcs/; + license = stdenv.lib.licenses.bsd3; + maintainers = [ stdenv.lib.maintainers.kkallio ]; + platforms = stdenv.lib.platforms.linux; + }; +} |