[Gauche-devel-jp] gauche.configure

アーカイブの一覧に戻る

Shiro Kawai shiro****@gmail*****
2015年 12月 6日 (日) 14:10:08 JST


もともとのconfigure.acだとcase $target in *-linux-*) ... ;; *-darwin-*) ... ;;
esacとか
するところですから、少し野暮ったくてもrxmatch-caseでマッチを明示しても
いいんじゃないかなあという気もします。

(rxmatch-case (gauche-architecture)
  (#/-darwin(\d+)\./ (#f major) (if (>= (x->integer major) 15) ...))
  (#/-linux/ (#f) ....)
  ...)

それほど煩雑ではないように思うのですが、いかがでしょう。




2015-12-05 18:26 GMT-10:00 SHIGENOBU KIMURA <skimu****@mac*****>:

> 今までインストールの度にいちいち 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*****> wrote:
>
> あれ、その表記は対応してるはず、と思ったら値の方にスペースを許してませんでした。
>
> 7534e6d でどうですか。
>
> 2015-11-26 16:20 GMT-10:00 SHIGENOBU KIMURA <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*****
>> 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
>
>
> _______________________________________________
> Gauche-devel-jp mailing list
> 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 メーリングリストの案内
アーカイブの一覧に戻る