aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorAntero Mejr <antero@mailbox.org>2023-02-24 03:22:20 +0000
committerLudovic Courtès <ludo@gnu.org>2023-03-10 14:49:59 +0100
commit344a0d2c11440dc7aa6b30c1633ed098b8d700cc (patch)
tree15195c08844b7ec020adbe621e28471de9504dc4 /gnu/packages
parentb924d89fceb4090229f2ee93ba1c81fee770707a (diff)
downloadguix-344a0d2c11440dc7aa6b30c1633ed098b8d700cc.tar.gz
guix-344a0d2c11440dc7aa6b30c1633ed098b8d700cc.zip
gnu: Add 9yacc.
* gnu/packages/suckless.scm (9yacc): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/suckless.scm31
1 files changed, 31 insertions, 0 deletions
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index 7f79e9d7e9..cfd70df027 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -1324,3 +1324,34 @@ environments, where no keyboard is available.")
It also contains the Plan 9 libbio, libregexp, libfmt and libutf libraries.")
(license (list license:expat ;modifications
license:lpl1.02))))) ;original plan9 code
+
+(define-public 9yacc
+ (package
+ (inherit lib9)
+ (name "9yacc")
+ (arguments
+ (substitute-keyword-arguments (package-arguments lib9)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (add-after 'patch 'patch-for-9yacc
+ (lambda _
+ (substitute* "yacc/yacc.c"
+ (("#9/yacc")
+ (string-append #$output "/lib")))
+ (substitute* "config.mk"
+ (("^CFLAGS.*+=.*$")
+ (string-append "CFLAGS+=-O2 -g -c -DPLAN9PORT "
+ "-DPREFIX=\\\"" #$output "\\\"\n")))))
+ (replace 'chdir
+ (lambda _
+ (chdir "yacc")))
+ (delete 'install-include)
+ (add-after 'install 'install-yaccpar
+ (lambda _
+ (install-file "yaccpar" (string-append #$output "/lib"))
+ (install-file "yaccpars" (string-append #$output "/lib"))))))))
+ (inputs (list lib9))
+ (synopsis "Port of Plan 9's yacc parser generator for Unix")
+ (description
+ "This package provides a ported version of the Plan 9 yacc parser
+generator.")))