# 
# $Header: proc.mk.pp,v 6.70 91/01/09 17:46:21 epotteng Exp $ proc.mk.pp
# 

#
# proc.mk - Command file for "make" to compile and load OCI and Pro*C programs.
#
# Pro*C programs are assumed to have the extension ".pc"
#
#
# Usage for sample OCI program: 
#	make -f proc.mk sample
# Usage for sample Pro*C program: 
#	make -f proc.mk samplec
#

CC=/usr/5bin/cc

CFLAGS=-g -DDEBUG -I.
W3INC = -I./WWW -I./WWWCommon
W3OBJS = ./WWW/HTDaemon.o ./WWW/HTParse.o \
	./WWW/HTRetrieve.o ./WWW/HTRules.o ./WWW/HTString.o ./WWW/HTTCP.o  -O

LDFLAGS=-Bstatic

RANLIB=ranlib

ECHO=$(ORACLE_HOME)/bin/echodo

PCC=$(ORACLE_HOME)/bin/pcc
PCCINC=$(ORACLE_HOME)/c/lib
PCCFLAGS=include=$(PCCINC) ireclen=132 oreclen=132 select_error=no

LIBORA=$(ORACLE_HOME)/rdbms/lib/libora.a 

LIBSQL=$(ORACLE_HOME)/rdbms/lib/libsql.a

LIBOCIC=$(ORACLE_HOME)/rdbms/lib/libocic.a

LIBPCC=$(ORACLE_HOME)/rdbms/lib/libpcc.a

LIBPRO=$(ORACLE_HOME)/rdbms/lib/libpro.a

LIBPSD=$(ORACLE_HOME)/c/lib/libpsd.a

LIBPLUS=$(ORACLE_HOME)/sqlplus/lib/libplus.a

LIBPLS=$(ORACLE_HOME)/rdbms/lib/libpls.a

LIBKNL=$(ORACLE_HOME)/rdbms/lib/libknl.a

LIBFORMS=$(ORACLE_HOME)/forms/lib/libforms.a

LIBFORMS30=$(ORACLE_HOME)/forms30/lib/libforms30.a

LIBFORMS30P=$(ORACLE_HOME)/forms30/lib/libforms30p.a

LIBFORMS30C=$(ORACLE_HOME)/forms30/lib/libforms30c.a

LIBFORMS30X=$(ORACLE_HOME)/forms30/lib/libforms30x.a

LIBFORMS30M=$(ORACLE_HOME)/forms30/lib/libforms30m.a

LIBOKT=$(ORACLE_HOME)/orakit/lib/libokt.a

LIBOKTC=$(ORACLE_HOME)/orakit/lib/liboktc.a

LIBOKTX=$(ORACLE_HOME)/orakit/lib/liboktx.a

LIBOKTM=$(ORACLE_HOME)/orakit/lib/liboktm.a

OTHERLIBS=`cat $(ORACLE_HOME)/rdbms/lib/sysliblist`

CONFIG=$(ORACLE_HOME)/rdbms/lib/config.o

OSNTAB=$(ORACLE_HOME)/rdbms/lib/osntab.o

LIBTCP=$(ORACLE_HOME)/tcp/lib/libtcp.a

NETLIBS=$(OSNTAB) $(ORACLE_HOME)/rdbms/lib/libsqlnet.a 

STLIBS=$(ORACLE_HOME)/rdbms/lib/osntabst.o $(CONFIG)

PROLIBS=$(LIBOCIC) $(LIBSQL)

PCCLIBS=$(LIBPCC) $(LIBSQL) $(LIBOCIC) $(LIBPRO) $(LIBPCC)

FRMLIBS=$(ORACLE_HOME)/forms/lib/scp.o $(LIBFORMS)

XLIBS=-lXaw -lXt -lXmu -lX11 -lm

CLIBS=$(OTHERLIBS)

#
# NOTE:   ORACLE_HOME must be either:
#		. set in the user's environment
#		. passed in on the command line
#		. defined in a modified version of this makefile
#

.SUFFIXES: .exe .c .pc

# USERID = scott/tiger
PCCFLAGS = include=$(PCCINC) ireclen=132 oreclen=132 select_error=no sqlcheck=limited
# userid=$(USERID)

all:    HTOracle y

sample: sample.o
	@$(ECHO) $(CC) $(CFLAGS) -o $@ $@.o $(LIBOCIC) $(NETLIBS) $(LIBORA) \
	$(CLIBS)

samplest: sample.o
	@$(ECHO) $(CC) $(CFLAGS) -o $@ $? $(LIBOCIC) $(STLIBS) $(LIBORA) \
	$(LIBKNL) $(LIBORA) $(LIBPLS) $(LIBORA) $(LIBKNL) $(LIBORA) \
	$(LIBPLS) $(CLIBS)

samplec: samplec.c samplec.pc
	@$(ECHO) $(CC) $(CFLAGS) samplec.c -o $@ $(LIBSQL) $(NETLIBS) \
	$(LIBORA) $(CLIBS)

samplecst: samplec.c samplec.pc
	@$(ECHO) $(CC) $(CFLAGS) samplec.c -o $@ $(LIBSQL) $(STLIBS) \
	$(LIBORA) $(LIBKNL) $(LIBORA) $(LIBPLS) $(LIBORA) \
	$(LIBKNL) $(LIBORA) $(LIBPLS) $(CLIBS)

.pc.c:
	$(PCC) $(PCCFLAGS) iname=$*.pc 

install: clean pcc
	-chmod 755 $(ORACLE_HOME)/bin/pcc
	-mv pcc $(ORACLE_HOME)/bin/pcc
	-chmod 755 $(ORACLE_HOME)/bin/pcc

clean:
	-rm -f pcc

pcc: $(PCCLIBS) $(LIBORA) $(NETLIBS) $(LIBPLS) $(LIBPSD)
	@$(ECHO) $(CC) $(CFLAGS) $(LDFLAGS) -o $@  $(PCCLIBS) $(NETLIBS) $(LIBPSD) \
	$(LIBORA) $(LIBPLS) $(LIBPSD) $(LIBORA) $(LIBPLS) $(CLIBS)

#
# General suffix rule to build executables from .pc and .c files.
#
# Usage :
# 	make -f proc.mk USERID=<user/pass> <prog>.exe
#
# For example to build an executable from a Pro*C source file named 'abc.pc' 
# using scott/tiger for the ORACLE account name.  The make command line will 
# be:
# 	make -f proc.mk USERID=scott/tiger abc.exe
#
# Note:  scott/tiger is the default account/password, so that you could
#        also use the following command line:
#
#	make -f proc.mk abc.exe
#
# The executable will be named 'abc', not 'abc.exe'.
#

.pc.exe:
	-$(PCC) iname=$*.pc $(PCCFLAGS)
	@$(ECHO) $(CC) $(CFLAGS) -o $* $*.c $(LIBSQL) $(NETLIBS) $(LIBORA) \
	$(CLIBS)

.c.exe:
	@$(ECHO) $(CC) $(CFLAGS) -o $* $*.c $(LIBSQL) $(LIBOCIC) $(NETLIBS) \
	$(LIBORA) $(CLIBS)

#	W3 server                                      HTOracle
#
HTOracle.c : HTOracle.pc
HTOracle : HTOracle.c
	@$(ECHO) $(CC) $(W3INC) $(W3OBJS) $(CFLAGS) HTOracle.c -o $@ $(LIBSQL) $(NETLIBS) \
		$(LIBORA) $(CLIBS)

#	Test progrem for W3 server    y
#
y : y.c y.pc
	@$(ECHO) $(CC) $(CFLAGS) y.c -o $@ $(LIBSQL) $(NETLIBS) \
		$(LIBORA) $(CLIBS)
#
# A Pro*C demo that that uses dynamic SQL to execute arbitray
# interactive SQL commands.
#
dsql: dsql.c dsql.pc
	@$(ECHO) $(CC) $(CFLAGS) dsql.c -o $@ $(LIBSQL) $(NETLIBS) \
	$(LIBORA) $(CLIBS)

#
# Sample Pro*C demo programs with PL/SQL blocks.
#
PLSPCCFLAGS = include=$(PCCINC) ireclen=132 oreclen=132 select_error=no sqlcheck=full userid=plsqa/supersecret
examp6: examp6.pc
	$(PCC) iname=$@.pc $(PLSPCCFLAGS) 
	@$(ECHO) $(CC) $(CFLAGS) examp6.c -o $@ $(LIBSQL) $(NETLIBS) \
	$(LIBORA) $(CLIBS)
examp7: examp7.pc
	$(PCC) iname=$@.pc $(PLSPCCFLAGS) 
	@$(ECHO) $(CC) $(CFLAGS) examp7.c -o $@ $(LIBSQL) $(NETLIBS) \
	$(LIBORA) $(CLIBS)
sample5:sample5.pc
	$(PCC) iname=$@.pc $(PLSPCCFLAGS) 
	@$(ECHO) $(CC) $(CFLAGS) sample5.c -o $@ $(LIBSQL) $(NETLIBS) \
	$(LIBORA) $(CLIBS)
bank_demo:bank_demo.pc
	$(PCC) iname=$@.pc $(PLSPCCFLAGS) 
	@$(ECHO) $(CC) $(CFLAGS) bank_demo.c -o $@ $(LIBSQL) $(NETLIBS) \
	$(LIBORA) $(CLIBS)









