OS_Linux&Unix

[Linux/Unix] Tuxedo Database XA 구성

최선을 다하자! 2022. 11. 1. 16:59

makefile을 make로 precompile하기.

 

complie이란? 

 

 사람이 이해하는 언어를 컴퓨터가 이해할 수 있는 언어로 바꾸어 주는 과정.
● 원시코드에서 목적코드(목적파일)로 바꾸어 주는 것이 컴파일이고 목적 파일을 실행 파일로 바꾸는 것이 링크.
● 원시코드는 우리가 작성한 코드, 목적코드는 컴퓨터가 이해할 수 있도록 번역한 코드.
● 컴파일과 링크의 기능을 하는 것이 컴파일러이다.

 

-> 컴파일이란.. 내가 필요한 목적물로 만들어주는 용어라고 생각하면 됨.

 

 

 

 

 

makefile을 프리컴파일하기 위해서 설정 하는 내용

 

1. makefile 내에서 tuxedo 환경변수 / oracle DB id/passwd / 라이브러리 절대경로 설정 



2. .bash_profile에서 buildserver의 절대경로를 환경변수로 잡아줘야함.

 

 

makefile

SPATH           =       ${PWD}
SRCINC          =       /sw/tp/tuxedo12.2.2.0.0/samples/atmi/simpapp/XA_test/serv
LIBHOME         =       /sw/tp/tuxedo12.2.2.0.0/lib

#RM             =       TMS_ORA19
RM              =       Oracle_XA
#CC             =       /usr/bin/cc
BUILDSVR        =       ${TUXDIR}/bin/buildserver
TUXINC          =       ${TUXDIR}/include
PROC            =       ${ORACLE_HOME}/bin/proc

# Oracle Environment ---------------------------------------------------------
ORAINCDIR=${ORACLE_HOME}/precomp/public
ORARDBDIR=${ORACLE_HOME}/rdbms/public
ORASQLDIR=${ORACLE_HOME}/plsql/public
ORALIBDIR=${ORACLE_HOME}/lib
ORABINDIR=${ORACLE_HOME}/bin

# Tuxedo Environment ---------------------------------------------------------
RM=Oracle_XA
TUXLIBDIR=${TUXDIR}/lib
TUXINCDIR=${TUXDIR}/include

# PROC Environment -----------------------------------------------------------
ORAID=jwchoi
ORAPW=welcome1
TUXINCDIR=${TUXDIR}/include
SYSINCDIR=${ONSE}/include
SYSHEADDIR=${ONSE}/header

#PROFLAGS=ireclen=132 oreclen=132 release_cursor=yes include='(${TUXINCDIR},${SYSINCDIR},${SYSHEADDIR})' userid=${ORAID}/${ORAPW} SQLCHECK=FULL
PROFLAGS=ireclen=132 oreclen=132 release_cursor=yes include='${TUXINCDIR}' userid=${ORAID}/${ORAPW} SQLCHECK=FULL

# CC Environment -------------------------------------------------------------

CC=gcc
#INCDIRS=-I. -I${ORAINCDIR} -I${ORARDBDIR} -I${ORASQLDIR} -I${TUXINCDIR} ${SYSINCDIR} -I${SYSHEADDIR}
INCDIRS=-I. -I${ORAINCDIR} -I${ORARDBDIR} -I${ORASQLDIR} -I${TUXINCDIR}
LIBDIRS=-L${ORALIBDIR} -L$(TUXLIBDIR)
CFLAGS=${INCDIRS} ${LIBDIRS}

all : XA_test

XA_test : ${SPATH}/XA_test.c ${SPATH}/XA_test.o
          CFLAGS="${CFLAGS}" buildserver -s SINGLE_DELETE -s SINGLE_UPDATE -s SINGLE_INSERT  -o XA_test -f XA_test.c -r ${RM}


#auth_carray: ${SPATH}/$$@.c ${SPATH}/$$@.o
#       CFLAGS="${CFLAGS}" \
#       buildserver -s CHECK_AUTH_C -o $@ \
#               -f $@.o  \
#               -r ${RM}

.SUFFIXES : .pc .c .o

# Rule for creating bookkigrams from embedded SQL Bookigrams
.pc.c:
        ${ORACLE_HOME}/bin/proc ${PROFLAGS} iname=$*.pc

 

 

make 커맨드 실행 

 

$ make
CFLAGS="-I. -I/orahome/db/product/19c/precomp/public -I/orahome/db/product/19c/rdbms/public -I/orahome/db/product/19c/plsql/public -I/sw/tp/tuxedo12.2.2.0.0/include -L/orahome/db/product/19c/lib -L/sw/tp/tuxedo12.2.2.0.0/lib" buildserver -s SINGLE_DELETE -s SINGLE_UPDATE -s SINGLE_INSERT  -o XA_test -f XA_test.c -r Oracle_XA

프리컴파일이 실행되면서 실행파일 / c 파일 / o 파일이 생성됨 

$ ls
XA_test  XA_test.c  XA_test.lis  XA_test.o  XA_test.pc  common.h  emp.flds  makefile