namazu-dev(ring)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

AC_REPLACE_FUNCS



以前、 SunOS に memmove() が存在しないという理由で、 util.c
に次のような代替用の関数を用意しましたが、

| #if !defined(HAVE_MEMMOVE)
| 
| void *memmove(void *d, void *s, size_t n)
| {
|     size_t i;
| 
|     if (s > d) {
|         for (i = 0; i < n; i++) {
|             *((char *)d + i) = *((char *)s + i);
|         }
|     } else {
|         for (i = n - 1; ; i--) {
|             *((char *)d + i) = *((char *)s + i);
|             if (i == 0) {
|                 break;
| 	    }
|         }
|     }
|     return d;
| }
| 
| #endif

autoconf には AC_REPLACE_FUNCS という便利な機能があることに
気づいたので、こちらを利用したいと思います。

Ruby 1.4.2 の configure.in には

| AC_REPLACE_FUNCS(dup2 memmove mkdir strcasecmp strncasecmp strerror strftime\
|                  strchr strstr strtoul strdup crypt flock vsnprintf\
|                  fnmatch isinf isnan finite)

と定義され、 missing ディレクトリにそれぞれの代替用の関数が
用意されています。というわけで、 Namazu で必要な

  memmove strcasecmp strncasecmp strchr strstr strdup vsnprintf

あたりをもらってこようと思います。いかがでしょう?

# 野首さんが vsnprintf を導入したのをきっかけに気づきました。
# (IRIX 6.3 で make が通らなかった)

p.s.
ナマズ縫いぐるみとは何でしょう? > 野首さん
<199909170344.MAA04816@xxxxxxxxxxxxxxxxxxx>

-- Satoru Takabayashi