[Gauche-devel-jp] gauche.configure

アーカイブの一覧に戻る

SHIGENOBU KIMURA skimu****@mac*****
2015年 12月 6日 (日) 13:26:50 JST


今までインストールの度にいちいち Makefile を書き
換えていたのを  gauche.configure を使うように直してます。

大抵の場合、 linux か Mac かを区別するだけでいいので
(gauche-architecture)からすぐに分岐できるのですが、
一つだけ、MacOSX のバージョンによってリンクオプションを
変える必要が出てきました。
そうなってくると(gauche-architechture)をパーズして
バージョン番号を取り出す手続きが欲しくなります。
そこで、添付したようなのを書いたのですが、
実は、同様の機能が既にあったりするでしょうか?
なんかそんな気がしてきたので。

ただ、linux か Mac かの区別は cond-expand で出来ると
嬉しいのですが、どうでしょう?

以下、該当する configure スクリプトの一部です。
;;;
;;; target-triplet : cpu-vendor-os where os can be kernel-system
;;; https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Specifying-Target-Triplets.html
;;;
(use srfi-11) ; let*-values

(define (parse-target-triplet str)
  (let*-values (((cpu   str) (string-scan str #\- 'both))
                ((vendor os) (string-scan str #\- 'both)))
    (let ((version (cond ((rxmatch->string #/\d+(\.\d+)*$/ os)
                          => (lambda (v)
                               (map x->number (string-split v #\.))))
                         (else #f))))
      (list :cpu cpu :vendor vendor :os os :version version))))

(define (version-number target-kv n)
  (cond ((get-keyword :version target-kv)
         => (lambda (v) (list-ref v n)))
        (else #f)))

;;; TEST
;(parse-target-triplet "x86_64-apple-darwin15.0.0")
; => (:cpu "x86_64" :vendor "apple" :os "darwin15.0.0" :version (15 0 0))
;(parse-target-triplet "i686-pc-linux-gnu")
; => (:cpu "i686" :vendor "pc" :os "linux-gnu" :version #f)

;;;
;;;
;;;
(unless (cf-have-subst? 'LAPACKLIBS)

  (let ((target (parse-target-triplet (gauche-architecture))))

    (define (os~ str) (string-scan (get-keyword :os target) str))
    (define (version-major) (version-number target 0))
    (define (version-minor) (version-number target 1))
    (define (version-patch) (version-number target 2))

    (cond ((os~ "darwin")
           (cond ((>= (version-major) 15) (cf-subst 'LAPACKLIBS "-framework Accelerate"))
                 (else                    (cf-subst 'LAPACKLIBS "-framework veclib"))))
          ((os~ "netbsd1.6") (cf-subst 'LAPACKLIBS "-Wl,-rpath /usr/pkg/lib -L/usr/pkg/lib -llapack -lblas -lg2c"))
          ((os~ "solaris2")  (cf-subst 'LAPACKLIBS "-L/usr/local/lib -llapack -lblas"))
          ((os~ "linux")     (cf-subst 'LAPACKLIBS "-Wl,-rpath /apps/free/lapack/3.4.2/lib -L/apps/free/lapack/3.4.2/lib -llapack -lblas"))
          (else              (cf-subst 'LAPACKLIBS "-llapack -lblas")))

    ))




> On Nov 27, 2015, at 9:26 AM, SHIGENOBU KIMURA <skimu****@mac*****> wrote:
> 
> バッチリです。ありがとうございます。
> 
> ちなみに、—with の方は —with-mylib=' -L/usr/lib -lmylib’ のように先頭にスペースを入れるとうまくいきました。
> 
>> On Nov 27, 2015, at 9:54 AM, Shiro Kawai <shiro****@gmail***** <mailto:shiro****@gmail*****>> wrote:
>> 
>> あれ、その表記は対応してるはず、と思ったら値の方にスペースを許してませんでした。
>> 
>> 7534e6d でどうですか。
>> 
>> 2015-11-26 16:20 GMT-10:00 SHIGENOBU KIMURA <skimu****@mac***** <mailto:skimu****@mac*****>>:
>> こんにちは、 gauche.configure で
>> 
>> $ ./configure MYLIB='-L/home/skimu/lib -lmylib'
>> 
>> とかできると嬉しいのですが…
>> 
>> $ ./configure  MYLIB="-L/home/skimu/lib -lmylib"
>> Invalid argument: MYLIB=-L/home/skimu/lib -lmylib
>> Type `./configure --help' for usage.
>> 
>> make  で
>> 
>> $ make MYLIB='-L/home/skimu/lib -lmylib'
>> 
>> とすればいいんですが、.gpd に ./configure した時のオプションが保存されるので
>> できたら ./configure で対応したいのです。
>> 
>> できたら ―with-mylib='-L/home/skimu/lib -lmylib' もできると嬉しいです。
>> 
>> よろしくお願いします。
>> 
>> 木村栄伸
>> 
>> 
>> _______________________________________________
>> Gauche-devel-jp mailing list
>> Gauch****@lists***** <mailto:Gauch****@lists*****>
>> http://lists.osdn.me/mailman/listinfo/gauche-devel-jp <http://lists.osdn.me/mailman/listinfo/gauche-devel-jp>
>> 
>> _______________________________________________
>> Gauche-devel-jp mailing list
>> Gauch****@lists***** <mailto:Gauch****@lists*****>
>> http://lists.osdn.me/mailman/listinfo/gauche-devel-jp
> 
> _______________________________________________
> Gauche-devel-jp mailing list
> Gauch****@lists*****
> http://lists.osdn.me/mailman/listinfo/gauche-devel-jp

-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
ダウンロード 



Gauche-devel-jp メーリングリストの案内
アーカイブの一覧に戻る