From 23153c907bb2de46e517343ab43c08e0cfe4ef90 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 12 Mar 2015 11:35:16 +0100 Subject: gnu: Add SLOCCount. * gnu/packages/code.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu/packages/code.scm | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 gnu/packages/code.scm (limited to 'gnu/packages/code.scm') diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm new file mode 100644 index 0000000000..7eb2cc3bb8 --- /dev/null +++ b/gnu/packages/code.scm @@ -0,0 +1,82 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages code) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix licenses) + #:use-module (guix build-system gnu) + #:use-module (gnu packages perl)) + +;;; Tools to deal with source code: metrics, cross-references, etc. + +(define-public sloccount + (package + (name "sloccount") + (version "2.26") + (source (origin + (method url-fetch) + (uri (string-append "http://www.dwheeler.com/sloccount/sloccount-" + version ".tar.gz")) + (sha256 + (base32 + "0ayiwfjdh1946asah861ah9269s5xkc8p5fv1wnxs9znyaxs4zzs")))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (delete configure) + (add-before build make-dotl-files-older + (lambda _ + ;; Make the '.l' files as old as the '.c' + ;; files to avoid triggering the rule that + ;; requires Flex. + (define ref + (stat "README")) + + (for-each (lambda (file) + (set-file-time file ref)) + (find-files "." "\\.[chl]$")) + #t)) + (add-before install make-target-directories + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/bin")) + (mkdir-p (string-append out + "/share/man/man1")) + (mkdir-p (string-append out + "/share/doc"))))) + (replace check + (lambda _ + (setenv "HOME" (getcwd)) + (setenv "PATH" + (string-append (getcwd) ":" + (getenv "PATH"))) + (zero? (system* "make" "test"))))) + + #:make-flags (list (string-append "PREFIX=" + (assoc-ref %outputs "out"))))) + (inputs `(("perl" ,perl))) + (home-page "http://www.dwheeler.com/sloccount/") + (synopsis "Count physical source lines of code (SLOC)") + (description + "SLOCCount is a set of the programs for counting source lines of +code (SLOC) in large software systems. It can automatically identify and +measure a wide range of programming languages. It automatically estimates the +effort, time, and money it would take to develop the software, using the +COCOMO model or user-provided parameters.") + (license gpl2+))) -- cgit v1.2.3 From 99e64a6e7742b8c3727968e5d094e71d33c5cb3f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 12 Mar 2015 11:40:27 +0100 Subject: gnu: Move cflow, Complexity, and GLOBAL to (gnu packages code). * gnu/packages/code.scm (cflow, complexity, global): New variables. * gnu/packages/cflow.scm, gnu/packages/complexity.scm, gnu/packages/global.scm: Remove. * gnu-system.am (GNU_SYSTEM_MODULES): Adjust accordingly. --- gnu-system.am | 3 -- gnu/packages/cflow.scm | 49 ---------------------- gnu/packages/code.scm | 100 +++++++++++++++++++++++++++++++++++++++++++- gnu/packages/complexity.scm | 50 ---------------------- gnu/packages/global.scm | 67 ----------------------------- 5 files changed, 98 insertions(+), 171 deletions(-) delete mode 100644 gnu/packages/cflow.scm delete mode 100644 gnu/packages/complexity.scm delete mode 100644 gnu/packages/global.scm (limited to 'gnu/packages/code.scm') diff --git a/gnu-system.am b/gnu-system.am index bd63deb66b..aa37726b6a 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -57,13 +57,11 @@ GNU_SYSTEM_MODULES = \ gnu/packages/ccache.scm \ gnu/packages/cdrom.scm \ gnu/packages/certs.scm \ - gnu/packages/cflow.scm \ gnu/packages/check.scm \ gnu/packages/cmake.scm \ gnu/packages/code.scm \ gnu/packages/commencement.scm \ gnu/packages/compression.scm \ - gnu/packages/complexity.scm \ gnu/packages/conkeror.scm \ gnu/packages/cook.scm \ gnu/packages/cpio.scm \ @@ -123,7 +121,6 @@ GNU_SYSTEM_MODULES = \ gnu/packages/gkrellm.scm \ gnu/packages/gl.scm \ gnu/packages/glib.scm \ - gnu/packages/global.scm \ gnu/packages/gnome.scm \ gnu/packages/gnunet.scm \ gnu/packages/gnupg.scm \ diff --git a/gnu/packages/cflow.scm b/gnu/packages/cflow.scm deleted file mode 100644 index 2bb1fefda3..0000000000 --- a/gnu/packages/cflow.scm +++ /dev/null @@ -1,49 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -(define-module (gnu packages cflow) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (guix licenses) - #:use-module (gnu packages emacs)) - -(define-public cflow - (package - (name "cflow") - (version "1.4") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/cflow/cflow-" - version ".tar.bz2")) - (sha256 - (base32 - "1jkbq97ajcf834z68hbn3xfhiz921zhn39gklml1racf0kb3jzh3")))) - (build-system gnu-build-system) - - ;; Needed to have cflow-mode.el installed. - (native-inputs `(("emacs" ,emacs))) - - (home-page "http://www.gnu.org/software/cflow/") - (synopsis "Create a graph of control flow within a program") - (description - "GNU cflow analyzes C source files and produces a graph charting the -control flow of the program. It can output the graph in several styles and -in either the POSIX format or in an extended GNU format. cflow also includes -a major mode for Emacs for examining the flowcharts that it produces.") - (license gpl3+))) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index 7eb2cc3bb8..544681212b 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2013, 2015 Ludovic Courtès +;;; Copyright © 2015 Andreas Enge ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,10 +22,105 @@ #:use-module (guix download) #:use-module (guix licenses) #:use-module (guix build-system gnu) - #:use-module (gnu packages perl)) + #:use-module (gnu packages emacs) + #:use-module (gnu packages perl) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages autogen) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages autotools)) ;;; Tools to deal with source code: metrics, cross-references, etc. +(define-public cflow + (package + (name "cflow") + (version "1.4") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/cflow/cflow-" + version ".tar.bz2")) + (sha256 + (base32 + "1jkbq97ajcf834z68hbn3xfhiz921zhn39gklml1racf0kb3jzh3")))) + (build-system gnu-build-system) + + ;; Needed to have cflow-mode.el installed. + (native-inputs `(("emacs" ,emacs))) + + (home-page "http://www.gnu.org/software/cflow/") + (synopsis "Create a graph of control flow within a program") + (description + "GNU cflow analyzes C source files and produces a graph charting the +control flow of the program. It can output the graph in several styles and +in either the POSIX format or in an extended GNU format. cflow also includes +a major mode for Emacs for examining the flowcharts that it produces.") + (license gpl3+))) + +(define-public complexity + (package + (name "complexity") + (version "1.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/complexity/complexity-" + version ".tar.gz")) + (sha256 + (base32 + "0pmlhlj1chl4caaqffvn1cy9z8gwmjbx97syi7pdfa0vqygkql6d")))) + (build-system gnu-build-system) + (native-inputs + `(("texinfo" ,texinfo) + ("autogen" ,autogen))) + (home-page "http://www.gnu.org/software/complexity/") + (synopsis "Analyze complexity of C functions") + (description + "GNU complexity provides tools for finding procedures that are +convoluted, overly long or otherwise difficult to understand. This +may help in learning or reviewing unfamiliar code or perhaps +highlighting your own code that seemed comprehensible when you wrote it.") + (license gpl3+))) + +(define-public global ; a global variable + (package + (name "global") + (version "6.3.4") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/global/global-" + version ".tar.gz")) + (sha256 + (base32 + "0hcplcayyjf42d8ygzla6142b5dq4ybq4wg3n3cgx3b5yfhvic85")))) + (build-system gnu-build-system) + (inputs `(("ncurses" ,ncurses) + ("libltdl" ,libltdl))) + (arguments + `(#:configure-flags + (list (string-append "--with-ncurses=" + (assoc-ref %build-inputs "ncurses"))) + + #:phases (alist-cons-after + 'install 'post-install + (lambda* (#:key outputs #:allow-other-keys) + ;; Install the Emacs Lisp file in the right place. + (let* ((out (assoc-ref outputs "out")) + (data (string-append out "/share/gtags")) + (lisp (string-append out "/share/emacs/site-lisp"))) + (mkdir-p lisp) + (copy-file (string-append data "/gtags.el") + (string-append lisp "/gtags.el")) + (delete-file (string-append data "/gtags.el")) + #t)) + %standard-phases))) + (home-page "http://www.gnu.org/software/global/") + (synopsis "Cross-environment source code tag system") + (description + "GLOBAL is a source code tagging system that functions in the same way +across a wide array of environments, such as different text editors, shells +and web browsers. The resulting tags are useful for quickly moving around in +a large, deeply nested project.") + (license gpl3+))) + (define-public sloccount (package (name "sloccount") diff --git a/gnu/packages/complexity.scm b/gnu/packages/complexity.scm deleted file mode 100644 index f0cd11e245..0000000000 --- a/gnu/packages/complexity.scm +++ /dev/null @@ -1,50 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès -;;; Copyright © 2015 Andreas Enge -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -(define-module (gnu packages complexity) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix licenses) - #:use-module (guix build-system gnu) - #:use-module (gnu packages texinfo) - #:use-module (gnu packages autogen)) - -(define-public complexity - (package - (name "complexity") - (version "1.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/complexity/complexity-" - version ".tar.gz")) - (sha256 - (base32 - "0pmlhlj1chl4caaqffvn1cy9z8gwmjbx97syi7pdfa0vqygkql6d")))) - (build-system gnu-build-system) - (native-inputs - `(("texinfo" ,texinfo) - ("autogen" ,autogen))) - (home-page "http://www.gnu.org/software/complexity/") - (synopsis "Analyze complexity of C functions") - (description - "GNU complexity provides tools for finding procedures that are -convoluted, overly long or otherwise difficult to understand. This -may help in learning or reviewing unfamiliar code or perhaps -highlighting your own code that seemed comprehensible when you wrote it.") - (license gpl3+))) diff --git a/gnu/packages/global.scm b/gnu/packages/global.scm deleted file mode 100644 index 99d83f4f9b..0000000000 --- a/gnu/packages/global.scm +++ /dev/null @@ -1,67 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2015 Ludovic Courtès -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -(define-module (gnu packages global) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (guix licenses) - #:use-module (gnu packages ncurses) - #:use-module (gnu packages autotools) - #:use-module (gnu packages)) - -(define-public global ; a global variable - (package - (name "global") - (version "6.3.4") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/global/global-" - version ".tar.gz")) - (sha256 - (base32 - "0hcplcayyjf42d8ygzla6142b5dq4ybq4wg3n3cgx3b5yfhvic85")))) - (build-system gnu-build-system) - (inputs `(("ncurses" ,ncurses) - ("libltdl" ,libltdl))) - (arguments - `(#:configure-flags - (list (string-append "--with-ncurses=" - (assoc-ref %build-inputs "ncurses"))) - - #:phases (alist-cons-after - 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - ;; Install the Emacs Lisp file in the right place. - (let* ((out (assoc-ref outputs "out")) - (data (string-append out "/share/gtags")) - (lisp (string-append out "/share/emacs/site-lisp"))) - (mkdir-p lisp) - (copy-file (string-append data "/gtags.el") - (string-append lisp "/gtags.el")) - (delete-file (string-append data "/gtags.el")) - #t)) - %standard-phases))) - (home-page "http://www.gnu.org/software/global/") - (synopsis "Cross-environment source code tag system") - (description - "GLOBAL is a source code tagging system that functions in the same way -across a wide array of environments, such as different text editors, shells -and web browsers. The resulting tags are useful for quickly moving around in -a large, deeply nested project.") - (license gpl3+))) -- cgit v1.2.3