百度空间 | 百度首页 
 
查看文章
 
Oracle Makefile(转)
2008-10-24 10:03

操作系统:

红帽子Linux 2.4.21-4.EL

数据库:oracle10g

配置步骤:

1,在$HOME下建立一个etc目录,在此目录下简历一个配置文件Make.defines文件,编辑该文件,写入以下内容:

include $(ORACLE_HOME)/precomp/lib/env_precomp.mk

PROC=proc
GCC=gcc

BINDIR=$(HOME)/bin

#oracle的include目录

ORAIFLAG=-I$(ORACLE_HOME)/rdbms/public -I$(ORACLE_HOME)/rdbms/demo -I$(ORACLE_HOME)/precomp/public -I$(ORACLE_HOME)/plsql/public

#oracle的库文件路径

ORALFLAG=-L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/precomp/lib -L$(ORACLE_HOME)/rdbms/lib -L$(ORACLE_HOME)/sqlplus/lib -L$(ORACLE_HOME)/network/lib -L$(ORACLE_HOME)/plsql/lib

IFLAG=-I$(HOME)/include $(ORAIFLAG)
LFLAG=-L$(HOME)/lib $(ORALFLAG) -lclntsh

PROCFLAGS=char_map=string

.SUFFIXES: .pc .c .o
.pc.c:
$(PROC) $(PROCFLAGS) iname=$*
rm *.lis
.pc.o:
$(PROC) $(PROCFLAGS) iname=$*
rm *.lis
$(GCC) $(IFLAG) -c $*.c
.c.o:
$(GCC) $(IFLAG) -c $*.c


2,确保.bash_profile文件中有如下环境变量配置:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

3,在自己的makefile文件中第一行写入如下语句:

include $(HOME)/etc/Make.defines

其他的makefile书写方式不变。

例子:

我有一个源程序test.pc,我的makefile文件内容如下:

include $(HOME)/etc/Make.defines
all:test
test:test.o
$(GCC) $? -o $@ $(LFLAG)
rm ./tp* ./*.c ./*.o
编译时执行:make test

产生test可执行程序。

作者注:以上配置方法跟作者的的程序组织习惯有关(一般将通用的编译参数放在一个文件中,具体的makefile文件再将这个定义包含进去)。总之在makefile文件内将以上提到的语句均写入即可。

下面是我在HP-UX下写的,是改的,说实话,感觉很差的,现在只能保证我的测试程序能过去。还得再改进:

.SUFFIXES:
.SUFFIXES: .pc .c .o

include $(ORACLE_HOME)/precomp/lib/env_precomp.mk


RM = rm -f
CC = cc -g
PROC = proc

CCOBJ= cc -DRHEL -c -w

#procflag = sqlcheck=full userid=easycon/easycon
ORAINC          =       ${ORACLE_HOME}/precomp/public
LIBS = $(ORACLE_HOME)/lib32
LD_RUN_PATH = $(ORACLE_HOME)/lib32
VPATH= $(ORACLE_HOME)/lib32
PROCFLAG= -lclntsh

LIBDIR=$(HOME)/lib -L$(ORACLE_HOME)/lib32
INCLDIR=-I$(HOME)/include \
        -I/usr/local/include \
        -I$(ORACLE_HOME)/rdbms/demo \
        -I$(ORACLE_HOME)/rdbms/public \
        -I$(ORACLE_HOME)/precomp/public \
        -I$(TUXDIR)/include
LIBS = -lclntsh

FLAGS= -mt $(INCLDIR) -L$(LIBDIR) $(LIBS) -DTUXEDO

###################################


###################################
###################################

#${FLAGS} $(INCLDIR) $(LIBDIR) ${LIBS}
LINUXCC =       $(CC) $@.c -o $@ $(FLAGS)
LINUXOCC =      $(CCOBJ) $(<:.pc=.c)
LINUXPCC=       $(PROC) $<


PGM:    unload

.pc.o:
        $(LINUXPCC)

        $(LINUXOCC)
.c.o:
        $(LINUXOCC)

all     :       PGM
                $(RM) tp*
                $(RM) *.lis
                $(RM) *.o


unload :       unload.o
        $(LINUXCC)
        rm unload.c


类别:程序设计 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu