all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Alex Kost <alezost@gmail.com>
To: Jan Nieuwenhuizen <janneke@gnu.org>
Cc: guix-devel@gnu.org
Subject: Re: [PATCH 08/11] gnu: cross-base: Add cross-libtool.
Date: Tue, 09 Aug 2016 11:08:04 +0300	[thread overview]
Message-ID: <87invacql7.fsf@gmail.com> (raw)
In-Reply-To: <20160809064139.27872-9-janneke@gnu.org> (Jan Nieuwenhuizen's message of "Tue, 9 Aug 2016 08:41:36 +0200")

Jan Nieuwenhuizen (2016-08-09 09:41 +0300) wrote:

> * 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)

It looks like 'native-inputs' is not needed, as it is not used further.

> +                      (let ((xgcc (assoc-ref inputs "xgcc")))
> +                        (setenv "CPP" (string-append xgcc "/bin/"
> +                                                     ,target "-cpp"))
> +                        (setenv "CXXCPP" (string-append xgcc "/bin/"
> +                                                        ,target "-cpp")))

Since the values are the same, what about:

  (let* ((xgcc     (assoc-ref inputs "xgcc"))
         (xgcc-bin (string-append xgcc "/bin/" ,target "-cpp")))
    (setenv "CPP" xgcc-bin)
    (setenv "CXXCPP" xgcc-bin))

> +                      (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"))

I have already seen this list of environment variables in an earlier
patch.  Perhaps it would be reasonable to make some global variable with
this list and to put it in (guix build utils) or another appropriate
place, WDYT?

> +                      #t)))))))
> +
>  (define (native-libc target)
>    (if (mingw-target? target)
>        mingw-w64

-- 
Alex

  reply	other threads:[~2016-08-09  8:08 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-09  6:41 mingw guile.exe cross build patch series v9 Jan Nieuwenhuizen
2016-08-09  6:41 ` [PATCH 01/11] gnu: Add gcc-cross-x86_64 packages for testing Jan Nieuwenhuizen
2016-08-09  6:41 ` [PATCH 02/11] gnu: Add mingw-w64 Jan Nieuwenhuizen
2016-08-09  7:28   ` Alex Kost
2016-08-09 15:56     ` Jan Nieuwenhuizen
2016-08-10 10:37       ` Alex Kost
2016-08-09  6:41 ` [PATCH 03/11] gnu: cross-build: i686-w64-mingw32: new cross target Jan Nieuwenhuizen
2016-08-09  6:41 ` [PATCH 04/11] gnu: Add function libiconv-if-needed Jan Nieuwenhuizen
2016-08-09  6:41 ` [PATCH 05/11] gnu: libunistring: support mingw: propagate libiconv if needed Jan Nieuwenhuizen
2016-08-09  7:37   ` Alex Kost
2016-08-09 16:00     ` Jan Nieuwenhuizen
2016-08-09  6:41 ` [PATCH 06/11] gnu: gmp: build shared library for mingw Jan Nieuwenhuizen
2016-08-09  6:41 ` [PATCH 07/11] gnu: ncurses: support mingw Jan Nieuwenhuizen
2016-08-09  7:53   ` Alex Kost
2016-08-09 15:59     ` Jan Nieuwenhuizen
2016-08-10 10:47       ` Alex Kost
2016-08-10 13:08         ` Jan Nieuwenhuizen
2016-08-10 18:04           ` Mark H Weaver
2016-08-14 16:54   ` Mark H Weaver
2016-08-15 16:37     ` Jan Nieuwenhuizen
2016-08-16 10:26       ` Ricardo Wurmus
2016-08-16 11:53         ` Guile question ... " Jan Nieuwenhuizen
2016-08-16 18:24           ` Jan Nieuwenhuizen
2016-08-09  6:41 ` [PATCH 08/11] gnu: cross-base: Add cross-libtool Jan Nieuwenhuizen
2016-08-09  8:08   ` Alex Kost [this message]
2016-08-09 16:04     ` Jan Nieuwenhuizen
2016-08-10 11:12       ` Alex Kost
2016-08-09  6:41 ` [PATCH 09/11] gnu: libtool: support cross-libtool mingw Jan Nieuwenhuizen
2016-08-09  6:41 ` [PATCH 10/11] gnu: ncurses: build mingw with libtool Jan Nieuwenhuizen
2016-08-09  6:41 ` [PATCH 11/11] gnu: readline: support mingw Jan Nieuwenhuizen
2016-08-09  8:30 ` mingw guile.exe cross build patch series v9 Andy Wingo
2016-08-09 15:41   ` Jan Nieuwenhuizen
2016-08-10 11:03   ` Alex Kost

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87invacql7.fsf@gmail.com \
    --to=alezost@gmail.com \
    --cc=guix-devel@gnu.org \
    --cc=janneke@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.