blob: 1fd2225a1ecd73f422b6733bc4bfdfc3aaa2fa2c [file] [log] [blame]
Tang Cheng03c0b0a2015-01-12 11:19:45 +08001#/bin/make
2###############################################################################
3# Make file for OCI and OCCI demos
4###############################################################################
5# Usage :
6# For compiling & linking the cdemo81.c file
7# make -f demo.mk buildoci EXE=cdemo81 OBJS=cdemo81.o
8#
9# For compiling & linking the occidml.cpp
10# make -f demo.mk buildocci EXE=occidml OBJS=occidml.o
11#
12# For compiling & linking the occiobj.cpp
13# make -f demo.mk occiobj
14#
15# In general, for any occi program
16# make -f demo.mk buildocci EXE=<exename> OBJS="<list of dependent objs>"
17#
18# For compiling all demos
19# make -f demo.mk
20#
21# NOTE: Please change cc and CC to point to the appropiate location on your
22# machine.
23#
24###############################################################################
25
26.SUFFIXES: .o .c .cpp
27
28CC=/opt/SunProd/SUNWspro6.1/bin/CC
29cc=/opt/SunProd/SUNWspro6.1/bin/cc
30
31ICINCHOME=../
32ICLIBHOME=../../
33ICLIBPATH=-L$(ICLIBHOME)
34THREADLIBS=-lthread
35CCLIB=$(ICLIBPATH) -locci -lclntsh $(THREADLIBS)
36
37CCINCLUDES = -I$(ICINCHOME)include
38
39CCFLAGS=$(CCINCLUDES) -D_REENTRANT -g -xs
40LDFLAGS=
41SO_EXT=.so
42
43REMOVE=rm -rf
44MKLINK=ln
45MAKE=make
46MAKEFILE=demo.mk
47CLNCACHE=cleancache
48CACHEDIR=SunWS_cache
49
50CDEMOEXE=cdemo81
51CDEMOOBJS=cdemo81.o
52OCCIDEMO=occidml
53OCCIOBJDEMO=occiobj
54OTT=../ott
55OCCIOTTUSR=hr
56OCCIOTTPWD=hr
57
58.cpp.o:
59 $(CC) -c -I$(ICINCHOME)include $(CCFLAGS) $<
60
61.c.o:
62 $(cc) -c -I$(ICINCHOME)include $(CCFLAGS) $<
63
64all: clean buildoci $(OCCIDEMO) $(OCCIOBJDEMO)
65
66buildoci: $(CLNCACHE) $(LIBCLNT) $(CDEMOOBJS)
67 $(MKLINK) $(ICLIBHOME)libclntsh$(SO_EXT).11.1 $(ICLIBHOME)libclntsh$(SO_EXT)
68 $(MKLINK) $(ICLIBHOME)libocci$(SO_EXT).11.1 $(ICLIBHOME)libocci$(SO_EXT)
69 $(CC) -o $(CDEMOEXE) $(LDFLAGS) $(CDEMOOBJS) $(CCLIB)
70 $(REMOVE) $(ICLIBHOME)libclntsh$(SO_EXT)
71 $(REMOVE) $(ICLIBHOME)libocci$(SO_EXT)
72
73buildocci: $(CLNCACHE) $(LIBCLNT) $(OBJS)
74 $(MKLINK) $(ICLIBHOME)libclntsh$(SO_EXT).11.1 $(ICLIBHOME)libclntsh$(SO_EXT)
75 $(MKLINK) $(ICLIBHOME)libocci$(SO_EXT).11.1 $(ICLIBHOME)libocci$(SO_EXT)
76 $(CC) -o $(EXE) $(LDFLAGS) $(OBJS) $(CCLIB)
77 $(REMOVE) $(ICLIBHOME)libclntsh$(SO_EXT)
78 $(REMOVE) $(ICLIBHOME)libocci$(SO_EXT)
79
80$(OCCIDEMO):
81 $(MAKE) -f $(MAKEFILE) buildocci OBJS=$@.o EXE=$@
82
83$(OCCIOBJDEMO):
84 $(OTT) userid=$(OCCIOTTUSR)/$(OCCIOTTPWD) \
85 intype=$@.typ \
86 outtype=$@out.type \
87 code=cpp \
88 hfile=$@.h \
89 cppfile=$@o.cpp \
90 attraccess=private \
91 unicode=none
92 $(MAKE) -f $(MAKEFILE) buildocci OBJS="$@.o $@m.o $@o.o" EXE=$@
93
94cleancache:
95 $(REMOVE) $(CACHEDIR)
96 $(REMOVE) $(ICLIBHOME)libclntsh$(SO_EXT)
97 $(REMOVE) $(ICLIBHOME)libocci$(SO_EXT)
98
99clean: $(CLNCACHE)
100 $(REMOVE) cdemo81 cdemo81.o occidml occidml.o occiobj occiobj.o occiobjo* occiobjm* occiobj.h occiobjout.type
101
102
103
104#
105# This port-specific file is currently empty on Solaris. Product
106# lines may use this file to override compiler definitions and
107# flags used in occi.mk.
108#
109
110# Linux compiler definitions
111CC=/usr/bin/gcc
112cc=/usr/bin/gcc
113
114# including m32 flag for testing 32-bit client demos on Linux.X64 arch
115# This change is not to be ported to Linux.X64 branch of this file
116MTYPE=`if [ "$(shell uname -m)" = "x86_64" ]; then echo "-m32" ; fi`
117CCFLAGS=$(CCINCLUDES) -DLINUX -D_GNU_SOURCE -D_REENTRANT -g $(MTYPE)
118LDFLAGS=-g $(MTYPE)
119CLNCACHE=
120
121# This macro CCINCLUDES has to be redefined on Linux because of
122# the existence of the 'new' directory in t_work. The name new
123# clashes with a system header file.
124CCINCLUDES = -I$(SRCHOME)/rdbms/public/ \
125-I$(SRCHOME)/oracore/include -I$(SRCHOME)/oracore/public \
126-I$(SRCHOME)/oracore/port/include \
127-I$(SRCHOME)/nlsrtl/include -I$(SRCHOME)/plsql/public \
128-I$(SRCHOME)/plsql/include -I$(SRCHOME)/network/public \
129-I$(SRCHOME)/network/include -I$(SRCHOME)/otrace/public \
130-I$(SRCHOME)/otrace/include/ -I$(SRCHOME)/precomp/public \
131-I$(SRCHOME)/precomp/include/ -I$(SRCHOME)/slax/include \
132-I$(SRCHOME)/ordts/public -I$(SRCHOME)/ordts/include \
133-I$(SRCHOME)/javavm/include \
134-I$(SRCHOME)/javavm/include/osds/unix/solaris \
135-I$(SRCHOME)/ctx/public -I$(SRCHOME)/ordvir/public \
136-I$(SRCHOME)/ordvir/include -I$(SRCHOME)/rdbms/src/hdir \
137-idirafter .
138
139THREADLIBS=-lpthread
140
141ifdef BUILD_CCC296
142CC=/usr/bin/g++296
143endif