pro*c makefile 编写
2010-05-13 13:24
190 查看
该makefile 只是在linux 中测试过, 若采用hu-ux 只要以下makefile中的gcc 改为aCC 但
hu-ux 未测试
1、首先确定pro*c 工程目录结构
proc/bin
proc/include
proc/lib
proc/src
src/libsrc
src/project_src
.........
以下makefile 相关文件都是放在底层文件夹下,需要新建源代码文件夹请在src 文件夹下创建
对应的makefile
对应的makeproc
将上面两个文件放到文件夹下,同时在文件夹下创建list文件,用来存放需要编译的作业名
例如pro*c 文件名为procname.pc 那么list就在一行中存放procname
使用方法:若需要对指定*.pc 编译采用./makeproc procname
若需要对批量*.pc编译 采用./makeproc 将编译依次编译list中列出的pc文件
若list 中某个指定PC需要跳过编译,只需要注释该作业名称 注释标识用#
编译后的日志文件会写在log_makefile.log 文件中
同时提醒该makefile 采用ansi 模式,故sqlca.sqlcode 空判断值为100 而非1043
对于pro*c多线程需要修改该makefile 将注释的参数释放 并加入到proc 命令行中去。
hu-ux 未测试
1、首先确定pro*c 工程目录结构
proc/bin
proc/include
proc/lib
proc/src
src/libsrc
src/project_src
.........
以下makefile 相关文件都是放在底层文件夹下,需要新建源代码文件夹请在src 文件夹下创建
对应的makefile
PRJHOME=../.. .SUFFIXES:.c .pc .o CC=gcc CFLAG=-c PROC=proc PFLAG=mode=ansi #PPOOL=cpool=yes #PTHREAD=threads=yes LIBDIR=-L${PRJHOME}/lib INCLDIR=-I${PRJHOME}/include ORA_INCL=-I${ORACLE_HOME}/precomp/public ORA_LIB=-L${ORACLE_HOME}/lib -lclntsh .c.o: ${CC} ${CFLAG} -o $@ $< ${INCLDIR} .pc.o: ${PROC} ${PFLAG} $< include=${PRJHOME}/include ${CC} ${CFLAG} -o $@ ${<:.pc=.c} ${INCLDIR} ${ORA_INCL} rm -f ${<:.pc=.c} LIBS= EXEC=${CC} -o $@ $^ ${INCLDIR} ${LIBDIR} ${LIBS} ${ORA_INCL} ${ORA_LIB};/ rm -f *.o / rm -f tp?????? / rm -f *.lis / mv $@ ${PRJHOME}/bin; BINS= ${LINE_NAME} / all: $(BINS) PC_SRC0= ${LINE_NAME}.pc OBJ0=$(PC_SRC0:.pc=.o) ${LINE_NAME}:${OBJ0} ${EXEC} clean: rm -f *.o rm -f tp?????? rm -f *.lis
对应的makeproc
#!/bin/sh if [ $# == 1 ] && [ $1 == 'clean' ] then rm -f *.c rm -f tp?????? rm -f *.lis rm -f *.o exit 0 fi typeset -i A=0 B=0 if [ $# != 0 ] then for i in `echo $@` do LINE_NAME=$i export LINE_NAME make >>log_make.log if [ $? = 0 ] then A=A+1 echo -e "[`date '+%Y-%m-%d %T'`][$LINE_NAME]:编译成功" else B=B+1 echo -e "[`date '+%Y-%m-%d %T'`][$LINE_NAME]:编译失败" fi done else while read LINE do LINE_NAME=$LINE if [ -z ${LINE_NAME} ] then continue fi if [ `echo ${LINE_NAME:0:1}` == '#' ] then continue fi export LINE_NAME make >>log_make.log if [ $? = 0 ] then A=A+1 echo -e "[`date '+%Y-%m-%d %T'`][$LINE_NAME]:编译成功" else B=B+1 echo -e "[`date '+%Y-%m-%d %T'`][$LINE_NAME]:编译失败" fi done<list fi echo -e "/n==============成功 $A 条 /n==============失败 $B 条 /n"
将上面两个文件放到文件夹下,同时在文件夹下创建list文件,用来存放需要编译的作业名
例如pro*c 文件名为procname.pc 那么list就在一行中存放procname
使用方法:若需要对指定*.pc 编译采用./makeproc procname
若需要对批量*.pc编译 采用./makeproc 将编译依次编译list中列出的pc文件
若list 中某个指定PC需要跳过编译,只需要注释该作业名称 注释标识用#
编译后的日志文件会写在log_makefile.log 文件中
同时提醒该makefile 采用ansi 模式,故sqlca.sqlcode 空判断值为100 而非1043
对于pro*c多线程需要修改该makefile 将注释的参数释放 并加入到proc 命令行中去。
相关文章推荐
- Makefile的编写
- Window简单makefile的编写
- Makefile的编写
- 内核模块加载&nbsp;及模块Makefile编写
- 关于QT的pro文件编写及英文文档
- make与makefile的编写
- Linux下C语言开发(Makefile编写)
- linux下makefile编写基础
- GCC:如何自己编写Makefile
- Makefile编写
- 如何编写makefile
- 教会你如何编写makefile文件
- 小型C/C++项目的makefile编写
- 小白用linux之makefile编写
- 海思osd+freetype+SDL+SDL_ttf编译成功后,Makefile的编写
- Makefile的编写
- Linux环境下MakeFile文件编写
- QT的pro文件编写,高效简洁,,路径设置 有空格 引入系统环境变量等
- makefile多文件如何编写
- Makefile编写