如何在Solaris/Linux服务器上为Oracle创建makefile?

问题描述:

我有一个适用于Informix数据库的应用程序。但现在我想让它为Oracle编译它。在下面显示的生成文件中应该对Informix正确运行进行哪些更改?如何在Solaris/Linux服务器上为Oracle创建makefile?

ESQL:=esql 
CFLAGS:=$(CFLAGS) -DSOLARIS 
PROCFLAGS:=$(PROCFLAGS) -DSOLARIS 
HEADERS= $(HOME)/tmiD/headers 
target = $(HOME) 
CC=gcc 

%.o :%.ec ; $(ESQL) -I$(HEADERS) -c $(CFLAGS) -DINFORMIX -EDINFORMIX -I/usr/local/include $< 

%.o :%.c ; $(CC) -I$(HEADERS) -c $(CFLAGS) $< 

MAKEC= mv $(target)/$(@F) $(target)/$(@F).old; \ 
$(ESQL) -DINFORMIX -EDINFORMIX \ 
$^ $(CFLAGS) -lnsl -L $(target) \ 
-o $(target)/$(@F) 

$(target)/%:%.o $(CLIBFILES); $(MAKEC) 
%:%.o $(CLIBFILES); $(MAKEC) 

all: a tw_interface clean 

tw_interface: tcp.o trace.o global.o rmi.o License.o purge.o libswx.a 

ap: tcp.o trace.o global.o rmi.o License.o purge.o 

clean: 
     -rm tcp.o trace.o global.o rmi.o purge.o License.o\ 
     trace.c global.c rmi.c 
a: 
     -rm tw_interface 

我对这些东西很陌生。所以请帮助我。

预先感谢您。

+0

可能更多的东西放到'CFLAGS' –

+0

确定。我想知道究竟需要做什么。你能告诉我,还是给我任何有用的链接? –

+1

你能否编辑你的问题来添加你得到的任何错误?如果这样做,则包含_all_错误,并进行复制/粘贴,以便不修改任何消息。 –

嗯....你说你对这些东西很陌生。

如果你不是一个有经验的程序员,重写一个Makefile是一个不平凡的练习。但是,如果您想尝试一下,我建议您首先在ORACLE_HOME中安装Pro * C演示程序。一旦完成,并且已经验证,通过构建示例Pro * C程序,我建议使用demo_proc.mk makefile(将与演示程序一起安装)作为模板来转换makefile。另外,请注意,我对Informix一无所知,但代码本身可能需要转换为Pro * C,因为我认为Informix有一些其他的预编译器,或者用于数据库访问的备用库集合。

希望有所帮助。

我觉得PRO * C预编译器调用与 “过程”,所以第一线

ESQL:=esql 

应该成为

PRO_C:=proc 

它看起来像PRO * C文件通常有一个.PC文件延期。假设你的PRO * C文件会比您的Informix * .ES文件略有不同,您将创建他们一个.PC扩展,那么这行

%.o :%.ec ; $(ESQL) -I$(HEADERS) -c $(CFLAGS) -DINFORMIX -EDINFORMIX -I/usr/local/include $< 

将成为

%.o :%.pc ; $(PRO_C) CONFIG=proc_c_config.txt -I$(HEADERS) -c $(CFLAGS) -I/usr/local/include $< 

以上行有“proc_c_config.txt”这是一个文件来创建任何需要的Pro * C选项。如果除默认值之外没有其他选项,则可以删除该部分。

$(ESQL) -DINFORMIX -EDINFORMIX \ 

将成为

$(PRO_C) CONFIG=pro_c_config.txt \ 

他们谈论Pro*C options here