Gauche > Archives > 2013/01/04

2013/01/04 05:36:12 UTCmaru
#
Gaucheビルドするときに外からEXEEXTを指定してやる簡単な方法ってないでしょうか。MacPortsのリリース版と併存できるようなHEADの追っ掛け版を作りたくてPortfileでっち上げてるんですけど、HEAD版の実行ファイルに.0.9.4_pre2みたいな拡張子を付けちゃうのが一番簡単かなぁと思って。
#
q-v-p:maru% cat lang/guche-devel/Portfile                                                                                [~/macports]
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
# $Id: Portfile 96552 2012-08-14 04:32:45Z ryandesign@macports.org $

PortSystem 1.0

name                gauche-devel
version             0.9.4_pre2
categories          lang scheme
license             BSD
maintainers         gmail.com:kiyoshi.mizumaru
description         A script interpreter based on Scheme (development version)
long_description    Gauche is a script interpreter based on Scheme.  \
                    Gauche conforms the language standard 'Revised^5 \
                    Report on the Algorithmic Language Scheme' and \
                    supports various common libraries defined in SRFIs. \
                    The goal of Gauche is to provide a handy tool for \
                    programmers and system administrators to handle \
                    daily works conveniently and efficiently in the \
                    production environment.\
                    There are lots of Scheme implementations available, \
                    and each of them has its design emphasis and \
                    weeknesses.  Gauche is designed with emphasis on \
                    Quick startup, Multibyte strings, Modular \
                    development, Integrated object system, System \
                    interface and Enhanced I/O.
platforms           darwin
homepage            http://practical-scheme.net/gauche/
fetch.type          git
git.url             git://gauche.git.sourceforge.net/gitroot/gauche/Gauche


depends_build       port:gauche
depends_lib         port:gdbm \
                    port:libiconv \
                    port:slib

pre-configure {
    system "cd ${worksrcpath} && ./DIST gen"
}

configure.env-append EXEEXT=.${version}
configure.args      --with-local=${prefix} --enable-multibyte=utf-8 \
                    --with-
#
autotoolsが良きに計らってくれるところに手を突っ込むのはやめた方が無難かなぁ...
#
あれ。コピペ途中でちぎれてる。変なの。
#
https://gist.github.com/4450218
#
こんなんです。これでビルド&インストールすると0.9.3.3を上書きしちゃう。gaucheとgauche-develは共存できませんよ(conflict)にするとビルド時にgoshがないからHEADがビルドできない、とw
#
depends_buildとかを使えばビルド時にだけ0.9.3.3を存在させてインストール時にgauche-develだけを生かすとかできそうな気もしなくはないけど折角だから共存させたいところ。
2013/01/04 06:23:41 UTCshiro
#
ふーむ。EXEEXTだけを上書きするには本来make EXEEXT=-devel でいい筈なんですが、今ext/以下のビルドで../../src/goshが実行できることを前提にしちゃってるのが問題ですね。
#
共存させたい場合、私は--prefixから別にすることを想定してたんですが、それだとうまくない? というのはリリース直前になるまでバージョン番号を上げないので、実行ファイルだけリネームしてもライブラリを上書きしちゃう危険が。
2013/01/04 07:51:18 UTCmaru
#
なるほど。MacPortsって/opt/local以下に全部集約させたいような文化があるみたいなんでその流儀に従っておこうかと思ったんですけどprefix分けちゃってunstableなのまとめた方が扱い易いですね。そっちの方向で検討してみまする。
2013/01/04 10:11:24 UTCshiro
#
いかん、正月休みのちょっとした息抜きのつもりがアルゴリズムを実装するのがおもしろくてついいじってしまう
2013/01/04 10:38:56 UTCshiro
#
もうやめとこうと思ったけどやっぱり決定的素数判定は欲しいな。それがあると素因数分解の病的なケースをさっさと除外できる。
#
とはいえ一体何に使うのか、というと自分的には「おもしろいから」という理由しか無いわけだが。