2009-08-10 6 views

答えて

0

GCCを使用するためにESQL/C(ClientSDKまたはCSDKの一部)を入手することはできますが、それほど簡単ではありません。原則として、私がしていることは:

  1. 元のesqlスクリプトのコピーを作成します。
  2. 必要に応じてGCCオプションを提供するように元のスクリプトを変更します。

GCCだけを使用したい場合は、これで十分です。あなたがGCCと時にはXLC(ネイティブコンパイラ)の両方を使いたいのであれば、それは難しくなります。

私のプライベートbinディレクトリ($ INFORMIXDIR/binのようなものより先に私のPATH上にある)には、esqlという単一のスクリプトがあります。現在使用しているESQL/Cのバージョンを確認し、別のディレクトリに保存されている適切なパッチ適用前のバージョンを実行します。そして私のためにそのスクリプトの新しいバージョンを自動的に作成します。したがって、CSDK 3.00.UC2を1分、次にCSDK 3.50.FC3を使用すると、自動的にスイッチオーバーを処理します。

Solaris上のESQL/C 3.50に適用されるパッチは、AIXに適応する必要があります。

# @(#)$Id: patch.300.64,v 1.2 2007/09/02 21:46:55 jleffler Exp $ 
# GCC Patch for esql from CSDK 3.00.FC1 

--- esql  2007-09-02 14:44:18.739067000 -0700 
+++ esql.new 2007-09-02 14:44:26.812149000 -0700 
@@ -23,10 +23,33 @@ 
INFDIR=${INFORMIXDIR=/usr/informix} 
DB2CLIDIR=${INSTHOME=/usr/db2} 
PREPCC=${INFDIR}/lib/esql/esqlc 
-CC="${INFORMIXC=cc} -xarch=v9" 
-CC_TH="${INFORMIXC=cc} -xarch=v9" 
-CPP="${INFORMIXCPP=CC} -xarch=v9" 
-CPP_TH="${INFORMIXCPP=CC} -xarch=v9" 
+ 
+: ${INFORMIXC:=cc} 
+: ${INFORMIXCPP:=CC} 
+case "$INFORMIXC" in 
+*perl*esqlcc*) # Building DBD::Informix 
+ case "$ESQLCC" in 
+ *gcc*|*g++) 
+  CC_ARCHFLAGS="-m64" 
+  ;; 
+ *cc*|*CC*) 
+  CC_ARCHFLAGS="-xarch=v9" 
+  ;; 
+ esac 
+ ;; 
+*gcc*|*g++*) 
+ CC_ARCHFLAGS="-m64" 
+ ;; 
+# Beware - this normally needs to be last - because things like esqlcc and gcc match too! 
+*cc*|*CC*) 
+ CC_ARCHFLAGS="-xarch=v9" 
+ ;; 
+esac 
+ 
+CC="$INFORMIXC $CC_ARCHFLAGS" 
+CC_TH="$INFORMIXC $CC_ARCHFLAGS" 
+CPP="$INFORMIXCPP $CC_ARCHFLAGS" 
+CPP_TH="$INFORMIXCPP $CC_ARCHFLAGS" 
STATICFLAGS="" 

CP=${INFORMIXCP="$CC -E -C"}     # cpp which runs before esqlc 
@@ -51,9 +74,6 @@ 
then 
CC="$CC $CC_AMD32" 
CPP="$CPP $CC_AMD32" 
-else 
-CC=$CC 
-CPP=$CPP 
fi 

: ' 
@@ -922,7 +942,7 @@ 
       # Set the linker to CPP 
       # Set the source files to objects 
       # 
-    CC=$CPP 
+    CC="$CPP" 
       A="$AO $CPPOPTS" 
     fi 
fi 

レムあなたは私が(私のプロフィールを参照)を使用制御esqlスクリプトをしたい場合は知っています。私は9種類の32ビットスクリプトと8種類の64ビットスクリプトを用意しています。これは12種類のパッチファイルで作成されています(すべてSolaris用、私は恐れています)。バージョンは、ESQL/C 5.20(OnLine 5.20用)からESQL/C 7.2x(公式には長年にわたり死亡)からCSDKのさまざまなバージョンまでの範囲です。

関連する問題