メインコンテンツに移動

automakeなど

あなたのMacをLinuxもどきに

以下のライブラリをインストールすると, Linux用のソースコードが簡単に configure, make コマンドでインストールできるようになります.ほれ,HomebrewとかMacportとか,甘い言葉に釣られてうっかりインストールするとシステムが不安定化するし,あんたがシステム管理しなきゃじゃないですか.全部MacOSネイティブなら,それを避けることができるようになる.管理はAppleがやってくれるから, OSX10とかのでも問題なく動くしね.

もしかすると, gawk, gmake あたりもインストールした方が良いのか?


以下は自力でインストールする変人向け

autoconf

cd autoconf-2.71
./configure
make
fswatch -x /usr/local/ > files.log &
sudo make install
kill %1
fswatch_analyze.sh -c _binary < files.log
pkgbuild --identifier autoconf-2.71-osx13.0.1 --root _binary autoconf-2.71-osx13.0.pkg

automake

なにこれ. auto的にmakeするかもしれない.

cd automake-1.16.5
./configure
make
fswatch -x /usr/local/ > files.log &
sudo make install
kill %1
fswatch_analyze.sh -c _binary < files.log
pkgbuild --identifier automake-1.61.5-osx13.0.1 --root _binary automake-1.61.5-osx13.0.pkg

doxygen

ごくまれにdoxygenを欲しがる馬鹿がいる. ここで良いのでは. インストールできたら

sudo ln -s /Applications/Doxygen.app/Contents/Resources/doxygen /usr/local/bin/

gettext

たまにgettextが必要な人もいる.

ARM64ビルド

cd gettext-0.21/
./configure
make
fswatch -x /usr/local > files.log &
sudo make install
kill %1
fswatch_analyze.sh -c _binary files.log

なるほど,結構いっぱいであるな.
_binary/usr/local/bin/envsubst
_binary/usr/local/bin/gettext
_binary/usr/local/bin/msgattrib
_binary/usr/local/bin/msgcat
_binary/usr/local/bin/msgcmp
_binary/usr/local/bin/msgcomm
_binary/usr/local/bin/msgconv
_binary/usr/local/bin/msgen
_binary/usr/local/bin/msgexec
_binary/usr/local/bin/msgfilter
_binary/usr/local/bin/msgfmt
_binary/usr/local/bin/msggrep
_binary/usr/local/bin/msginit
_binary/usr/local/bin/msgmerge
_binary/usr/local/bin/msgunfmt
_binary/usr/local/bin/msguniq
_binary/usr/local/bin/ngettext
_binary/usr/local/bin/recode-sr-latin
_binary/usr/local/bin/xgettext
_binary/usr/local/lib/libasprintf.0.dylib
_binary/usr/local/lib/libgettextlib-0.21.dylib
_binary/usr/local/lib/libgettextpo.0.dylib
_binary/usr/local/lib/libgettextsrc-0.21.dylib
_binary/usr/local/lib/libintl.8.dylib
_binary/usr/local/lib/libtextstyle.0.dylib

これが豚化の対象ですね. pig.txt に入れておきます.

X86ビルド

cd gettext-0.21/
./configure
make

豚ビルド

対象を豚にする.

cd arm64/gettext-0.21
./pig.txt|while read line;do lipo -info $line;done
Non-fat file: /usr/local/bin/envsubst is architecture: arm64
Non-fat file: /usr/local/bin/gettext is architecture: arm64
Non-fat file: /usr/local/bin/msgattrib is architecture: arm64
Non-fat file: /usr/local/bin/msgcat is architecture: arm64
Non-fat file: /usr/local/bin/msgcmp is architecture: arm64
Non-fat file: /usr/local/bin/msgcomm is architecture: arm64
Non-fat file: /usr/local/bin/msgconv is architecture: arm64
Non-fat file: /usr/local/bin/msgen is architecture: arm64
Non-fat file: /usr/local/bin/msgexec is architecture: arm64
Non-fat file: /usr/local/bin/msgfilter is architecture: arm64
Non-fat file: /usr/local/bin/msgfmt is architecture: arm64
Non-fat file: /usr/local/bin/msggrep is architecture: arm64
Non-fat file: /usr/local/bin/msginit is architecture: arm64
Non-fat file: /usr/local/bin/msgmerge is architecture: arm64
Non-fat file: /usr/local/bin/msgunfmt is architecture: arm64
Non-fat file: /usr/local/bin/msguniq is architecture: arm64
Non-fat file: /usr/local/bin/ngettext is architecture: arm64
Non-fat file: /usr/local/bin/recode-sr-latin is architecture: arm64
Non-fat file: /usr/local/bin/xgettext is architecture: arm64
Non-fat file: /usr/local/lib/libasprintf.0.dylib is architecture: arm64
Non-fat file: /usr/local/lib/libgettextlib-0.21.dylib is architecture: arm64
Non-fat file: /usr/local/lib/libgettextpo.0.dylib is architecture: arm64
Non-fat file: /usr/local/lib/libgettextsrc-0.21.dylib is architecture: arm64
Non-fat file: /usr/local/lib/libintl.8.dylib is architecture: arm64
Non-fat file: /usr/local/lib/libtextstyle.0.dylib is architecture: arm64

では,

get_arch(){
    A=`lipo -info $1`
    if [ "${A%%:*}" == "Non-fat file" ];then N1=1;else N1=0;fi
    V1="${A##*:}"
    echo $V1
}
cat pig.txt|while read line
do
    fn=`basename $line`
    dn=`dirname $line`
    bn=`basename $dn`
    XF=`find ../../x86_64/gettext-0.21/gettext-runtime -name $fn |grep .libs`
    if [ "$XF" == "" ];then
        XF=`find ../../x86_64/gettext-0.21/gettext-tools -name $fn |grep .libs`
    fi
    if [ "$XF" == "" ];then
        XF=`find ../../x86_64/gettext-0.21 -name $fn |grep .libs`
    fi
    A1=`get_arch $line`
    A2=`get_arch $XF`
    lipo -create -arch $A1 $line -arch $A2 $XF -output $bn/$fn
    lipo -info $line
    lipo -info $XF
    lipo -info $bn/$fn
done

これをやってみると,

Non-fat file: /usr/local/bin/envsubst is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-runtime/src/.libs/envsubst is architecture: x86_64
Architectures in the fat file: bin/envsubst are: x86_64 arm64
Non-fat file: /usr/local/bin/gettext is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-runtime/src/.libs/gettext is architecture: x86_64
Architectures in the fat file: bin/gettext are: x86_64 arm64
Non-fat file: /usr/local/bin/msgattrib is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/src/.libs/msgattrib is architecture: x86_64
Architectures in the fat file: bin/msgattrib are: x86_64 arm64
Non-fat file: /usr/local/bin/msgcat is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/src/.libs/msgcat is architecture: x86_64
Architectures in the fat file: bin/msgcat are: x86_64 arm64
Non-fat file: /usr/local/bin/msgcmp is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/src/.libs/msgcmp is architecture: x86_64
Architectures in the fat file: bin/msgcmp are: x86_64 arm64
Non-fat file: /usr/local/bin/msgcomm is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/src/.libs/msgcomm is architecture: x86_64
Architectures in the fat file: bin/msgcomm are: x86_64 arm64
Non-fat file: /usr/local/bin/msgconv is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/src/.libs/msgconv is architecture: x86_64
Architectures in the fat file: bin/msgconv are: x86_64 arm64
Non-fat file: /usr/local/bin/msgen is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/src/.libs/msgen is architecture: x86_64
Architectures in the fat file: bin/msgen are: x86_64 arm64
Non-fat file: /usr/local/bin/msgexec is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/src/.libs/msgexec is architecture: x86_64
Architectures in the fat file: bin/msgexec are: x86_64 arm64
Non-fat file: /usr/local/bin/msgfilter is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/src/.libs/msgfilter is architecture: x86_64
Architectures in the fat file: bin/msgfilter are: x86_64 arm64
Non-fat file: /usr/local/bin/msgfmt is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/src/.libs/msgfmt is architecture: x86_64
Architectures in the fat file: bin/msgfmt are: x86_64 arm64
Non-fat file: /usr/local/bin/msggrep is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/src/.libs/msggrep is architecture: x86_64
Architectures in the fat file: bin/msggrep are: x86_64 arm64
Non-fat file: /usr/local/bin/msginit is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/src/.libs/msginit is architecture: x86_64
Architectures in the fat file: bin/msginit are: x86_64 arm64
Non-fat file: /usr/local/bin/msgmerge is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/src/.libs/msgmerge is architecture: x86_64
Architectures in the fat file: bin/msgmerge are: x86_64 arm64
Non-fat file: /usr/local/bin/msgunfmt is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/src/.libs/msgunfmt is architecture: x86_64
Architectures in the fat file: bin/msgunfmt are: x86_64 arm64
Non-fat file: /usr/local/bin/msguniq is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/src/.libs/msguniq is architecture: x86_64
Architectures in the fat file: bin/msguniq are: x86_64 arm64
Non-fat file: /usr/local/bin/ngettext is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-runtime/src/.libs/ngettext is architecture: x86_64
Architectures in the fat file: bin/ngettext are: x86_64 arm64
Non-fat file: /usr/local/bin/recode-sr-latin is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/src/.libs/recode-sr-latin is architecture: x86_64
Architectures in the fat file: bin/recode-sr-latin are: x86_64 arm64
Non-fat file: /usr/local/bin/xgettext is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/src/.libs/xgettext is architecture: x86_64
Architectures in the fat file: bin/xgettext are: x86_64 arm64
Non-fat file: /usr/local/lib/libasprintf.0.dylib is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-runtime/libasprintf/.libs/libasprintf.0.dylib is architecture: x86_64
Architectures in the fat file: lib/libasprintf.0.dylib are: x86_64 arm64
Non-fat file: /usr/local/lib/libgettextlib-0.21.dylib is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/gnulib-lib/.libs/libgettextlib-0.21.dylib is architecture: x86_64
Architectures in the fat file: lib/libgettextlib-0.21.dylib are: x86_64 arm64
Non-fat file: /usr/local/lib/libgettextpo.0.dylib is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/libgettextpo/.libs/libgettextpo.0.dylib is architecture: x86_64
Architectures in the fat file: lib/libgettextpo.0.dylib are: x86_64 arm64
Non-fat file: /usr/local/lib/libgettextsrc-0.21.dylib is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-tools/src/.libs/libgettextsrc-0.21.dylib is architecture: x86_64
Architectures in the fat file: lib/libgettextsrc-0.21.dylib are: x86_64 arm64
Non-fat file: /usr/local/lib/libintl.8.dylib is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/gettext-runtime/intl/.libs/libintl.8.dylib is architecture: x86_64
Architectures in the fat file: lib/libintl.8.dylib are: x86_64 arm64
Non-fat file: /usr/local/lib/libtextstyle.0.dylib is architecture: arm64
Non-fat file: ../../x86_64/gettext-0.21/libtextstyle/lib/.libs/libtextstyle.0.dylib is architecture: x86_64
Architectures in the fat file: lib/libtextstyle.0.dylib are: x86_64 arm64 

できたな.

sudo cp bin/* /usr/local/bin/ 
sudo cp lib/* /usr/local/lib/

ではパッケージを作成

fswatch_analyze.sh -c _pig files.log
pkgbuild --identifier gettext-0.21 --root _pig gettext-0.21-osx12.4.pkg

help2man

cd help2man-1.47.10
./configure
make
fswatch -x /usr/local/ >  files.log &
sudo make install
kill %1
fswatch_analyze.sh -c _binary < files.log
pkgbuild  --identifier help2man-1.47.10 --root _binary help2man-1.47.10-osx10.14.pkg

libtool

libtoolはversion 2.4.6で十分に新しいようであるが, 大昔にコンパイルしたままなので, 再コンパイルしてみる.

cd libtool-2.4.6
make distclean
./configure CC=clang CXX=clang++
fswatch -x /usr/local > files.log
sudo make install
kill %1
fswatch_analyze.sh -c _binary files.log
pkgbuild --identifier libtool --root _binary libtool-2.4.6-osx10.14.pkg

こんなんでいいのかな. でも時々, -c オプションが無いとかいって怒られる.

git clone git://git.savannah.gnu.org/libtool.git cd libtool
./bootstrap
./configure
make

ReadLine

ReadなLineをインストールします.

INTEL

cd x86_64
tar zxf ../readline-8.2.tar.gz
cd readline-8.2
./configure
make
fswatch -x /usr/local/ >  files.log &
sudo make install
kill %1
fswatch_analyze.sh -c _binary files.log

ARM64

cd arm64
tar zxf readline-8.2.tar.gz
cd readline-8.2
./configure
make
fswatch -x /usr/local/ >  files.log &
kill %1
fswatch_analyze.sh -c _binary files.log

豚ビルド

$ cd universal
$ mkdir readline-8.2
$ cd readline-8.2
$ fatty_apple.sh ../../x86_64/readline-8.2/_binary/usr/local/lib\
               ../../arm64/readline-8.2/_binary/usr/local/lib\
    universal libreadline.8.2.dylib libhistory.8.2.dylib
Architectures in the fat file: universal/libreadline.8.2.dylib are: x86_64 arm64
Architectures in the fat file: universal/libhistory.8.2.dylib are: x86_64 arm64
$ mv universal/*dylib ../../arm64/readline-8.2/_binary/usr/local/lib
$ cd ../../arm64/readline-8.2
$ lipo -info _binary/usr/local/lib/*dylib
Architectures in the fat file: _binary/usr/local/lib/libhistory.8.2.dylib are: x86_64 arm64
Architectures in the fat file: _binary/usr/local/lib/libhistory.8.dylib are: x86_64 arm64
Architectures in the fat file: _binary/usr/local/lib/libhistory.dylib are: x86_64 arm64
Architectures in the fat file: _binary/usr/local/lib/libreadline.8.2.dylib are: x86_64 arm64
Architectures in the fat file: _binary/usr/local/lib/libreadline.8.dylib are: x86_64 arm64
Architectures in the fat file: _binary/usr/local/lib/libreadline.dylib are: x86_64 arm64
$ pkgbuild --identifier readline-8.2 --root _binary readline-8.2-osx13.0.pkg

XZ

cd xz-5.2.4 ./configure
make
fswatch -x /usr/local/ >  files.log &
sudo make install
kill %1
fswatch_analyze.sh -c _binary < files.log
pkgbuild  --identifier xz-5.2.4 --root _binary xz-5.2.4-osx10.14.pkg

 

File attachments
添付 サイズ
gettext-0.21-osx12.4.pkg 6.14 MB