この記事は自分のメモ書きとして残します。
Ageneauさんによるecl-androidをコンパイルしていて、対処方法に気がつくのが難しいエラーに遭遇したので、その症状と対処方法です。
症状
上記のソースをダウンロードしてmake udpate; make androidすると次のようなエラーが発生することがある。
Making all in src
make[1]: Entering directory `/home/yasube/ecl-android/build/host/libatomic_ops/src'
sed -e s:_XBAR::g -e s:XGCCBAR:RELAXED:g \
-e s:XSIZE:char:g -e s:XCTYPE:unsigned/**/char:g /home/yasube/ecl-android/libatomic_ops/src/atomic_ops/sysdeps/gcc/generic-arithm.template > atomic_ops/sysdeps/gcc/generic-arithm.h
/bin/bash: atomic_ops/sysdeps/gcc/generic-arithm.h: No such file or directory
make[1]: *** [atomic_ops/sysdeps/gcc/generic-arithm.h] Error 1
make[1]: Leaving directory `/home/yasube/ecl-android/build/host/libatomic_ops/src'
make: *** [all-recursive] Error 1
ただしエラーになるファイル名はgeneric-arithm.h以外のこともあります。sedでxx.templateからxx.hを作る際に発生するエラーです。
対処方法
ecl-androidのインストールディレクトリを$ECL_ANDROIDとして、
% cd $ECL_ANDROID/libatomic_ops/src/atomic_ops/sysdeps
% touch *.h */*.h
このようにすると既に生成済みのヘッダファイルを使うのでエラーを避けられます。その後、
% cd $ECL_ANDROID
% maek android
とすればコンパイルは最後まで通り、eclのバイナリが作成できます。