blob: 78dfb0caac0a64eb21f3a4463d4d9a77dc6a5de2 [file] [log] [blame]
Tang Cheng37650ea2014-10-20 16:14:41 +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
114ifeq ($(BUILD32),T)
115CCFLAGS=$(CCINCLUDES) -DLINUX -D_GNU_SOURCE -D_REENTRANT -g -m32
116LDFLAGS=-g -m32
117else
118CCFLAGS=$(CCINCLUDES) -DLINUX -D_GNU_SOURCE -D_REENTRANT -g
119LDFLAGS=-g
120endif
121CLNCACHE=
122
123# This macro CCINCLUDES has to be redefined on Linux because of
124# the existence of the 'new' directory in t_work. The name new
125# clashes with a system header file.
126CCINCLUDES = -I$(SRCHOME)/rdbms/public/ \
127-I$(SRCHOME)/oracore/include -I$(SRCHOME)/oracore/public \
128-I$(SRCHOME)/oracore/port/include \
129-I$(SRCHOME)/nlsrtl/include -I$(SRCHOME)/plsql/public \
130-I$(SRCHOME)/plsql/include -I$(SRCHOME)/network/public \
131-I$(SRCHOME)/network/include -I$(SRCHOME)/otrace/public \
132-I$(SRCHOME)/otrace/include/ -I$(SRCHOME)/precomp/public \
133-I$(SRCHOME)/precomp/include/ -I$(SRCHOME)/slax/include \
134-I$(SRCHOME)/ordts/public -I$(SRCHOME)/ordts/include \
135-I$(SRCHOME)/javavm/include \
136-I$(SRCHOME)/javavm/include/osds/unix/solaris \
137-I$(SRCHOME)/ctx/public -I$(SRCHOME)/ordvir/public \
138-I$(SRCHOME)/ordvir/include -I$(SRCHOME)/rdbms/src/hdir \
139-idirafter .
140
141THREADLIBS=-lpthread
142
143ifdef BUILD_CCC296
144CC=/usr/bin/g++296
145CCFLAGS = -include /ee/dev/bastring.h $(CCINCLUDES) -wchar-stdc++ -DLINUX -D_GNU_SOURCE -D_REENTRANT -g
146endif
147
148ifdef BUILD_ICC
149COMPDIR=/usr/local/packages/icc_remote/10.1.022
150CC=$(COMPDIR)/bin/icpc
151CCFLAGS += -DOCCI_NO_WSTRING=1
152endif
153