diff options
author | Ludovic Courtès <ludo@gnu.org> | 2012-11-22 18:22:48 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2012-11-22 18:22:48 +0100 |
commit | e2b2c46693896bfc715afa2ff6f5f34ba73158aa (patch) | |
tree | 03ecc20b932f5a345907bbd17350d16ebb9ec386 | |
parent | cf153fc4726c616f5c5608797f02bb71b573140b (diff) | |
download | guix-e2b2c46693896bfc715afa2ff6f5f34ba73158aa.tar.gz guix-e2b2c46693896bfc715afa2ff6f5f34ba73158aa.zip |
distro: Add Flex.
* distro/packages/flex.scm,
distro/packages/patches/flex-bison-tests.patch: New files.
* Makefile.am (MODULES): Add `flex.scm'.
(dist_patch_DATA): Add `flex-bison-tests.patch'.
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | distro/packages/flex.scm | 58 | ||||
-rw-r--r-- | distro/packages/patches/flex-bison-tests.patch | 24 |
3 files changed, 84 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am index e1dec5340d..a7a30abba3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -48,6 +48,7 @@ MODULES = \ distro/packages/bootstrap.scm \ distro/packages/compression.scm \ distro/packages/ed.scm \ + distro/packages/flex.scm \ distro/packages/gawk.scm \ distro/packages/gdbm.scm \ distro/packages/gnupg.scm \ @@ -84,6 +85,7 @@ patchdir = $(pkgdatadir)/patches dist_patch_DATA = \ distro/packages/patches/binutils-ld-new-dtags.patch \ distro/packages/patches/diffutils-gets-undeclared.patch \ + distro/packages/patches/flex-bison-tests.patch \ distro/packages/patches/glibc-no-ld-so-cache.patch \ distro/packages/patches/guile-1.8-cpp-4.5.patch \ distro/packages/patches/guile-default-utf8.patch \ diff --git a/distro/packages/flex.scm b/distro/packages/flex.scm new file mode 100644 index 0000000000..aa4dd00ef5 --- /dev/null +++ b/distro/packages/flex.scm @@ -0,0 +1,58 @@ +;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- +;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; +;;; This file is part of Guix. +;;; +;;; 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. +;;; +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (distro packages bison) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (distro) + #:use-module (distro packages m4) + #:use-module (distro packages bison)) + +(define-public flex + (package + (name "flex") + (version "2.5.37") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/flex/flex-" + version ".tar.bz2")) + (sha256 + (base32 + "0ah5mi4j62b85a9rllv1004mzjb5cd0mn4glvz13p88rpx77pahp")))) + (build-system gnu-build-system) + (arguments + '(#:patches (list (assoc-ref %build-inputs "patch/bison-tests")))) + (inputs `(("patch/bison-tests" ,(search-patch "flex-bison-tests.patch")) + ("bison" ,bison))) + (propagated-inputs `(("m4" ,m4))) + (home-page "http://flex.sourceforge.net/") + (synopsis "A fast lexical analyser generator") + (description + "Flex is a tool for generating scanners. A scanner, sometimes +called a tokenizer, is a program which recognizes lexical patterns in +text. The flex program reads user-specified input files, or its standard +input if no file names are given, for a description of a scanner to +generate. The description is in the form of pairs of regular expressions +and C code, called rules. Flex generates a C source file named, +\"lex.yy.c\", which defines the function yylex(). The file \"lex.yy.c\" +can be compiled and linked to produce an executable. When the executable +is run, it analyzes its input for occurrences of text matching the +regular expressions for each rule. Whenever it finds a match, it +executes the corresponding C code.") + (license "BSD"))) diff --git a/distro/packages/patches/flex-bison-tests.patch b/distro/packages/patches/flex-bison-tests.patch new file mode 100644 index 0000000000..0f372f83bf --- /dev/null +++ b/distro/packages/patches/flex-bison-tests.patch @@ -0,0 +1,24 @@ +The `test-bison-yyl{loc,val}' tests fail with "conflicting types for +'testparse'" because `YYPARSE_PARAM' is undefined; work around that. + +--- flex-2.5.37/tests/test-bison-yylloc/main.c 2012-11-22 18:17:01.000000000 +0100 ++++ flex-2.5.37/tests/test-bison-yylloc/main.c 2012-11-22 18:17:07.000000000 +0100 +@@ -21,6 +21,7 @@ + * PURPOSE. + */ + ++#define YYPARSE_PARAM scanner + #include "parser.h" + #include "scanner.h" + + +--- flex-2.5.37/tests/test-bison-yylval/main.c 2012-11-22 18:17:42.000000000 +0100 ++++ flex-2.5.37/tests/test-bison-yylval/main.c 2012-11-22 18:17:49.000000000 +0100 +@@ -21,6 +21,7 @@ + * PURPOSE. + */ + ++#define YYPARSE_PARAM scanner + #include "parser.h" + #include "scanner.h" + |