gnu: ghostscript: Support cross-compilation.

* gnu/packages/ghostscript.scm (ghostscript)[arguments]: Pass "CCAUX"
and "--enable-save_confaux" to #:configure-flags.  Add 'add-native-lz'
phase when cross-compiling.
[native-inputs]: Add ZLIB, LIBJPEG, and LCMS when cross-compiling.
This commit is contained in:
Ludovic Courtès 2017-07-11 15:28:51 +02:00
parent 0a3aca47d9
commit 49d035ff96
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -2,7 +2,7 @@
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2013, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
@ -165,7 +165,18 @@ (define-public ghostscript
"LIBS=-lz"
(string-append "ZLIBDIR="
(assoc-ref %build-inputs "zlib") "/include")
"--enable-dynamic")
"--enable-dynamic"
,@(if (%current-target-system)
'(;; Specify the native compiler, which is used to build 'echogs'
;; and other intermediary tools when cross-compiling; see
;; <https://ghostscript.com/FAQ.html>.
"CCAUX=gcc"
;; Save 'config.log' etc. of the native build under
;; auxtmp/, useful for debugging.
"--enable-save_confaux")
'()))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-doc-dir
@ -189,6 +200,15 @@ (define-public ghostscript
(substitute* "base/unixhead.mak"
(("/bin/sh") (which "sh")))
#t))
,@(if (%current-target-system)
`((add-after 'configure 'add-native-lz
(lambda _
;; Add missing '-lz' for native tools such as 'mkromfs'.
(substitute* "Makefile"
(("^AUXEXTRALIBS=(.*)$" _ value)
(string-append "AUXEXTRALIBS = -lz " value "\n")))
#t)))
'())
(replace 'build
(lambda _
;; Build 'libgs.so', but don't build the statically-linked 'gs'
@ -207,7 +227,15 @@ (define-public ghostscript
(native-inputs
`(("perl" ,perl)
("python" ,python-wrapper)
("tcl" ,tcl)))
("tcl" ,tcl)
;; When cross-compiling, some of the natively-built tools require all
;; these libraries.
,@(if (%current-target-system)
`(("zlib/native" ,zlib)
("libjpeg/native" ,libjpeg)
("lcms2/native" ,lcms))
'())))
(inputs
`(("freetype" ,freetype)
("jbig2dec" ,jbig2dec)