18

Linux ( ) と OS X Intel ( ) でmakefile透過的に動作する があります。これは、64 ビット固有の GCC オプションを使用します。x86_64x86_64

32 ビットおよび 64 ビットの OS X PPC ( ppc, ppc64) 用にビルドできるようにメイクファイルを調整する方法はありますか?建てる前の建築?

4

6 に答える 6

20
ARCH := $(shell getconf LONG_BIT)

CPP_FLAGS_32 := -D32_BIT ...  Some 32 specific compiler flags ...
CPP_FLAGS_64 := -D64_BIT

CPP_FLAGS := $(CPP_FLAGS_$(ARCH))  ... all the other flags ...
于 2011-04-15T15:50:51.990 に答える
2

ファイルを含めてみてください。これは、標準の Makefile 構文 (Single Unix v3 仕様のもの) の一部ではありませんが、広くサポートされています。GNU make では、これは次のようになります。

include otherfile

これにより、次のような x86 Makefile を作成できます。

ARCHFLAGS = -m64 -mtune=core2
include common.mk

および PowerPC Makefile:

ARCHFLAGS = -mcpu=g3
include common.mk

また、コンパイル ルールの大部分は、必要に応じcommon.mkて使用して 1 つのファイル ( ) に格納されます$(ARCHFLAGS)

于 2010-11-04T12:48:11.380 に答える
1

cmake や GNU autotools などのビルド システムを使用することで、より少ない作業 (および痛み) で目標を達成できると思います。

于 2010-11-04T11:44:26.403 に答える
1

これを行う 1 つの方法は次のとおりです。

  • アーキテクチャごとに makefile フラグメントがあります (場合によっては累積的): posixwin32win32-gccなど。
  • フラグメントがホストに適している理由を実行して判断するスクリプトがある
  • それらのメイクファイルのフラグメントをメインのメイクファイルに含めます
  • 環境変数を使用して手動でオーバーライドできるようにする (クロスコンパイラを考えるなど、複雑な場合があるため)

私はこれを小規模から中規模のプロジェクト (数年間コードに取り組んでいる 2 人または 3 人) で使用してきました。

于 2011-01-03T17:59:01.303 に答える
0

これを見てください:

http://mad-scientist.net/make/multi-arch.html

少し古いですが、役に立つ情報が含まれていると思います。

于 2010-11-04T12:59:52.510 に答える