Author: kkallio
Date: Thu Mar 24 19:22:30 2011
New Revision: 26497
URL: https://svn.nixos.org/websvn/nix/?rev=26497&sc=1

Log:
Add the PAKCS (Portland Aachen Kiel Curry System) Curry compiler to Nixpkgs.

Added:
   nixpkgs/trunk/pkgs/development/compilers/pakcs/
   nixpkgs/trunk/pkgs/development/compilers/pakcs/default.nix
Modified:
   nixpkgs/trunk/pkgs/top-level/haskell-packages.nix

Added: nixpkgs/trunk/pkgs/development/compilers/pakcs/default.nix
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ nixpkgs/trunk/pkgs/development/compilers/pakcs/default.nix  Thu Mar 24 
19:22:30 2011        (r26497)
@@ -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;
+  };
+}

Modified: nixpkgs/trunk/pkgs/top-level/haskell-packages.nix
==============================================================================
--- nixpkgs/trunk/pkgs/top-level/haskell-packages.nix   Thu Mar 24 16:23:28 
2011        (r26496)
+++ nixpkgs/trunk/pkgs/top-level/haskell-packages.nix   Thu Mar 24 19:22:30 
2011        (r26497)
@@ -951,6 +951,10 @@
 
   idris = callPackage ../development/compilers/idris {};
 
+  pakcs = callPackage ../development/compilers/pakcs {
+    syb = self.syb02;
+  };
+
   # Development tools.
 
   alex_2_3_1 = callPackage ../development/tools/parsing/alex/2.3.1.nix {};
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits

Reply via email to