From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Nieuwenhuizen Subject: [PATCH 08/11] gnu: cross-base: Add cross-libtool. Date: Tue, 9 Aug 2016 08:41:36 +0200 Message-ID: <20160809064139.27872-9-janneke@gnu.org> References: <20160809064139.27872-1-janneke@gnu.org> Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38026) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bX0k0-0001yN-JY for guix-devel@gnu.org; Tue, 09 Aug 2016 02:42:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bX0jz-0001dA-7b for guix-devel@gnu.org; Tue, 09 Aug 2016 02:42:20 -0400 In-Reply-To: <20160809064139.27872-1-janneke@gnu.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org * gnu/packages/cross-base.scm (cross-libtool): New function. --- gnu/packages/cross-base.scm | 52 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 294de40..f6c30ec 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -21,6 +21,7 @@ (define-module (gnu packages cross-base) #:use-module (gnu packages) #:use-module (gnu packages base) + #:use-module (gnu packages autotools) #:use-module (gnu packages gcc) #:use-module (gnu packages commencement) #:use-module (gnu packages linux) @@ -35,6 +36,7 @@ #:use-module (ice-9 match) #:export (cross-binutils cross-libc + cross-libtool cross-gcc cross-newlib?)) @@ -477,6 +479,56 @@ XBINUTILS and the cross tool chain." ,@(package-inputs glibc) ;FIXME: static-bash ,@(package-native-inputs glibc)))))))) +(define* (cross-libtool target + #:optional + (xgcc (cross-gcc target + (cross-binutils target) + (cross-libc target))) + (xbinutils (cross-binutils target)) + (xlibc (cross-libc target))) + (package + (inherit libtool) + (name (string-append "cross-libtool-" target)) + (inputs `(("xlibc" ,xlibc))) + (native-inputs `(("xgcc" ,xgcc) + ("xbinutils" ,xbinutils) + ("xlibc" ,xlibc) + ,@(package-native-inputs libtool))) + (arguments + `(;; Libltdl is provided as a separate package, so don't install it here. + #:configure-flags + `("--disable-ltdl-install" + ;; The libtool script uses `host' rather than `target' to decide + ;; whether to use -lc, for example. + ,(string-append "--host=" ,target) + ,(string-append "--target=" ,target) + ,(string-append "--program-prefix=" ,target "-") + ,(string-append "CC=" ,target "-gcc")) + #:tests? #f + #:phases (modify-phases %standard-phases + ;; As we are setup as a cross package, PATHs get setup + ;; without the CROSS_ prefix. Change that here. + (add-before 'configure 'setenv + (lambda* (#:key inputs native-inputs #:allow-other-keys) + (let ((xgcc (assoc-ref inputs "xgcc"))) + (setenv "CPP" (string-append xgcc "/bin/" + ,target "-cpp")) + (setenv "CXXCPP" (string-append xgcc "/bin/" + ,target "-cpp"))) + (for-each (lambda (var) + (and=> (getenv var) + (lambda (value) + (let ((cross + (string-append "CROSS_" var))) + (setenv cross value)) + (unsetenv var)))) + '("C_INCLUDE_PATH" + "CPLUS_INCLUDE_PATH" + "OBJC_INCLUDE_PATH" + "OBJCPLUS_INCLUDE_PATH" + "LIBRARY_PATH")) + #t))))))) + (define (native-libc target) (if (mingw-target? target) mingw-w64 -- 2.9.2