私はlibdog-dev
D 言語でプログラミングするためのユーティリティ ライブラリを作成していMakefile.am
ます。
sited2dir = /usr/include/d2/site
lib32dir = ${libdir}/i386-linux-gnu
# lib64dir = ${libdir}/x86_64-linux-gnu
lib32_LIBRARIES = \
i386/libdog.a
# lib64_LIBRARIES = \
# x86_64/libdog.a
i386/libdog.a:
mkdir -p i386
dmd -lib -m32 -of$@ -op -Hdi386/include/ `find src/ -name '*.d'`
x86_64/libdog.a:
mkdir -p x86_64
dmd -lib -m64 -of$@ -op -Hdx86_64/include/ `find src/ -name '*.d'`
# Since the header files for i386/x86_64 are the same, let's just pick the i386 one.
install-data-hook:
mkdir -p $(DESTDIR)$(sited2dir)
rsync -av i386-linux-gnu/include/ $(DESTDIR)$(sited2dir)
それは機能していますが、私はまだ不明です:
このプロジェクトには c/c++ ソースがないため、不要なはずの と
AC_PROG_CC
をAC_PROG_RANLIB
含める必要があります。configure.ac
2 つのステートメントがない場合、エラーが発生します。libdog.a
にはシングルしか含めることができませんMakefile.am
。上記のコードで x86-64 をコメントアウトしました。これを含めた場合、automake はエラーを表示します。cd . && /bin/bash /home/lenik/tasks/1-uni/devel/libdog-dev/missing --run automake-1.11 --gnu Makefile Makefile.am: object `libdog.$(OBJEXT)' created by `x86_64/libdog.c' and `i386/libdog.c' make: *** [Makefile.in] Error 1
dmd
Debianの公式パッケージと同様に、i386 と x86-64 の両方のバージョンを 1 つのパッケージに含めたいと考えています。... (install tree of the dmd-2.059-0 package) |-- lib/ | |-- i386-linux-gnu/ | | `-- libphobos2.a | `-- x86_64-linux-gnu/ | `-- libphobos2.a
アーチ名
i386-linux-gnu
とx86_64-linux-gnu
Makefile ソースをハードコーディングしましたが、何らかの方法で生成する必要があります..?