#**********************************************************************
#  Makefile file for the AS Facility
#**********************************************************************

OPTDIR=
SRCDIR= .
HDRDIR= ../../inc
OBJDIR= ../../obj$(OPTDIR)
BINDIR= ../../bin$(OPTDIR)
LIBDIR= ../../lib$(OPTDIR)

INCLUDES= -I $(HDRDIR) -I /usr/lpp/xlC/include -I /usr/include

DEFS= -DAIX -D_CMA_PROTO_ -D_CMA_NOWRAPPERS_ -D_THREAD_SAFE
OPT= -g -qinfo=enu:lan:rea:ret:und -qhalt=w
CFLAGS= $(OPT) -+ -c $(DEFS)
LDFLAGS= $(OPT)
LIBDCE=-ldce -lpthreads
LIBS= -lc_r -lbsd -las -loid -ltrace -lpd -lpdenv -lpdfilter -ldpo -lclient -L $(LIBDIR)

CXX=xlC

ASHDRS= $(HDRDIR)/as.h $(HDRDIR)/attset.h $(HDRDIR)/attribut.h \
        $(HDRDIR)/attlist.h $(HDRDIR)/attiter.h $(HDRDIR)/valiter.h \
        $(HDRDIR)/value.h
ASOBJ= $(OBJDIR)/attset.o $(OBJDIR)/attribut.o $(OBJDIR)/attiter.o \
       $(OBJDIR)/attlist.o $(OBJDIR)/asio.o $(OBJDIR)/attrptr.o \
       $(OBJDIR)/valnum.o $(OBJDIR)/valstr.o $(OBJDIR)/valoid.o \
       $(OBJDIR)/valoth.o $(OBJDIR)/valbjs.o $(OBJDIR)/as_utils.o \
       $(OBJDIR)/valcli.o
ASUT= $(BINDIR)/asmars_u $(BINDIR)/asvoth_u $(BINDIR)/asvstr_u \
      $(BINDIR)/asvnum_u $(BINDIR)/asvoid_u $(BINDIR)/asvbjs_u \
      $(BINDIR)/asatt_u $(BINDIR)/asas_u $(BINDIR)/as_u
ASLIB= $(LIBDIR)/libas.a
PDLIBS= $(ASLIB) $(LIBDIR)/libpd.a $(LIBDIR)/libtrace.a

UTLIB= $(LIBS) $(LIBDCE) $(OBJDIR)/oid_con.o $(OBJDIR)/oidpiobe.o

#--------------------------     all            ------------------------
all: obj exec

#--------------------------  Base Object Modules  ---------------------
obj: $(ASOBJ) $(ASLIB)

$(OBJDIR)/attset.o:  $(SRCDIR)/attset.cpp $(LISTINC) $(ASHDRS)
	rm -f $@
	$(CXX) -o $@ $(CFLAGS) $(SRCDIR)/attset.cpp $(INCLUDES)

$(OBJDIR)/attribut.o:  $(SRCDIR)/attribut.cpp $(LISTINC) $(ASHDRS)
	rm -f $@
	$(CXX) -o $@ $(CFLAGS) $(SRCDIR)/attribut.cpp $(INCLUDES)

$(OBJDIR)/attiter.o:  $(SRCDIR)/attiter.cpp $(LISTINC) $(ASHDRS)
	rm -f $@
	$(CXX) -o $@ $(CFLAGS) $(SRCDIR)/attiter.cpp $(INCLUDES)

$(OBJDIR)/attlist.o:  $(SRCDIR)/attlist.cpp $(LISTINC) $(ASHDRS)
	rm -f $@
	$(CXX) -o $@ $(CFLAGS) $(SRCDIR)/attlist.cpp $(INCLUDES)

$(OBJDIR)/attrptr.o:  $(SRCDIR)/attrptr.cpp $(LISTINC) $(ASHDRS)
	rm -f $@
	$(CXX) -o $@ $(CFLAGS) $(SRCDIR)/attrptr.cpp $(INCLUDES)

$(OBJDIR)/asio.o:  $(SRCDIR)/asio.cpp $(LISTINC) $(ASHDRS)
	rm -f $@
	$(CXX) -o $@ $(CFLAGS) $(SRCDIR)/asio.cpp $(INCLUDES)

$(OBJDIR)/valnum.o:  $(SRCDIR)/valnum.cpp $(LISTINC) $(ASHDRS)
	rm -f $@
	$(CXX) -o $@ $(CFLAGS) $(SRCDIR)/valnum.cpp $(INCLUDES)

$(OBJDIR)/valstr.o:  $(SRCDIR)/valstr.cpp $(LISTINC) $(ASHDRS)
	rm -f $@
	$(CXX) -o $@ $(CFLAGS) $(SRCDIR)/valstr.cpp $(INCLUDES)

$(OBJDIR)/valoid.o:  $(SRCDIR)/valoid.cpp $(LISTINC) $(ASHDRS)
	rm -f $@
	$(CXX) -o $@ $(CFLAGS) $(SRCDIR)/valoid.cpp $(INCLUDES)

$(OBJDIR)/valoth.o:  $(SRCDIR)/valoth.cpp $(LISTINC) $(ASHDRS)
	rm -f $@
	$(CXX) -o $@ $(CFLAGS) $(SRCDIR)/valoth.cpp $(INCLUDES)

$(OBJDIR)/valbjs.o:  $(SRCDIR)/valbjs.cpp $(LISTINC) $(ASHDRS)
	rm -f $@
	$(CXX) -o $@ $(CFLAGS) $(SRCDIR)/valbjs.cpp $(INCLUDES)

$(OBJDIR)/valcli.o:  $(SRCDIR)/valcli.cpp $(LISTINC) $(ASHDRS)
	rm -f $@
	$(CXX) -o $@ $(CFLAGS) $(SRCDIR)/valcli.cpp $(INCLUDES)

$(OBJDIR)/as_utils.o:  $(SRCDIR)/as_utils.cpp $(LISTINC) $(ASHDRS)
	rm -f $@
	$(CXX) -o $@ $(CFLAGS) $(SRCDIR)/as_utils.cpp $(INCLUDES)

#--------------------------  Library File  ----------------------------

$(ASLIB) :  $(ASOBJ)
	/usr/local/tools/rs6/bin/archk rv $@ $(ASOBJ)

#-------------------------- Unit Test Programs ------------------------
exec: $(ASUT)

$(BINDIR)/as_u : $(OBJDIR)/as_u.o $(PDLIBS)
	$(CXX) $(LDFLAGS) $(UTLIB)  -o $@ $(OBJDIR)/as_u.o 

$(OBJDIR)/as_u.o : $(SRCDIR)/as_u.cpp $(LSTINC) $(ASHDRS) $(HDRDIR)/ashelp_u.h
	rm -f $@
	$(CXX) $(CFLAGS) -c $(INCLUDES) -o $@ $(SRCDIR)/as_u.cpp 

$(BINDIR)/asmars_u : $(OBJDIR)/asmars_u.o  $(PDLIBS)
	rm -f $@
	$(CXX) $(LDFLAGS) $(UTLIB) -o $@ $(OBJDIR)/asmars_u.o

$(OBJDIR)/asmars_u.o : $(SRCDIR)/asmars_u.cpp $(LSTINC) $(ASHDRS) $(HDRDIR)/ashelp_u.h
	rm -f $@
	$(CXX) $(CFLAGS) -c $(INCLUDES) -o $@ $(SRCDIR)/asmars_u.cpp

$(BINDIR)/asatt_u : $(OBJDIR)/asatt_u.o  $(PDLIBS)
	$(CXX) $(LDFLAGS) $(UTLIB) -o $@ $(OBJDIR)/asatt_u.o

$(OBJDIR)/asatt_u.o : $(SRCDIR)/asatt_u.cpp $(LSTINC) $(ASHDRS) $(HDRDIR)/ashelp_u.h
	rm -f $@
	$(CXX) $(CFLAGS) -c $(INCLUDES) -o $@ $(SRCDIR)/asatt_u.cpp

$(BINDIR)/asas_u : $(OBJDIR)/asas_u.o  $(PDLIBS)
	$(CXX) $(LDFLAGS) $(UTLIB) -o $@ $(OBJDIR)/asas_u.o

$(OBJDIR)/asas_u.o : $(SRCDIR)/asas_u.cpp $(LSTINC) $(ASHDRS) $(HDRDIR)/ashelp_u.h
	rm -f $@
	$(CXX) $(CFLAGS) -c $(INCLUDES) -o $@ $(SRCDIR)/asas_u.cpp

$(BINDIR)/asvoth_u : $(OBJDIR)/asvoth_u.o  $(PDLIBS)
	$(CXX) $(LDFLAGS) $(UTLIB) -o $@ $(OBJDIR)/asvoth_u.o

$(OBJDIR)/asvoth_u.o : $(SRCDIR)/asvoth_u.cpp $(LSTINC) $(ASHDRS) $(HDRDIR)/ashelp_u.h
	rm -f $@
	$(CXX) $(CFLAGS) -c $(INCLUDES) -o $@ $(SRCDIR)/asvoth_u.cpp

$(BINDIR)/asvstr_u : $(OBJDIR)/asvstr_u.o  $(PDLIBS)
	$(CXX) $(LDFLAGS) $(UTLIB) -o $@ $(OBJDIR)/asvstr_u.o

$(OBJDIR)/asvstr_u.o : $(SRCDIR)/asvstr_u.cpp $(LSTINC) $(ASHDRS) $(HDRDIR)/ashelp_u.h
	rm -f $@
	$(CXX) $(CFLAGS) -c $(INCLUDES) -o $@ $(SRCDIR)/asvstr_u.cpp

$(BINDIR)/asvnum_u : $(OBJDIR)/asvnum_u.o  $(PDLIBS)
	$(CXX) $(LDFLAGS) $(UTLIB) -o $@ $(OBJDIR)/asvnum_u.o

$(OBJDIR)/asvnum_u.o : $(SRCDIR)/asvnum_u.cpp $(LSTINC) $(ASHDRS) $(HDRDIR)/ashelp_u.h
	rm -f $@
	$(CXX) $(CFLAGS) -c $(INCLUDES) -o $@ $(SRCDIR)/asvnum_u.cpp

$(BINDIR)/asvoid_u : $(OBJDIR)/asvoid_u.o  $(PDLIBS)
	$(CXX) $(LDFLAGS) $(UTLIB) -o $@ $(OBJDIR)/asvoid_u.o

$(OBJDIR)/asvoid_u.o : $(SRCDIR)/asvoid_u.cpp $(LSTINC) $(ASHDRS) $(HDRDIR)/ashelp_u.h
	rm -f $@
	$(CXX) $(CFLAGS) -c $(INCLUDES) -o $@ $(SRCDIR)/asvoid_u.cpp

$(BINDIR)/asvbjs_u : $(OBJDIR)/asvbjs_u.o  $(PDLIBS)
	$(CXX) $(LDFLAGS) $(UTLIB) -o $@ $(OBJDIR)/asvbjs_u.o

$(OBJDIR)/asvbjs_u.o : $(SRCDIR)/asvbjs_u.cpp $(LSTINC) $(ASHDRS) $(HDRDIR)/ashelp_u.h
	rm -f $@
	$(CXX) $(CFLAGS) -c $(INCLUDES) -o $@ $(SRCDIR)/asvbjs_u.cpp

#----------------------------  CLEAN  ---------------------------------
clean:
	rm -f $(ASOBJ)
	rm -f $(ASUT)
	rm -f $(ASLIB)


# Rev 1.0 - Mark B. - 7-22-93 - Added -ldpo to LIBS so links don't whine
#           about missing dpo_if_v1_xxxxxx stuff - Erik's security stuff
#           needs dpo layer - for now, security objs stuffed into libpd.a
# Rev 2.0 - Mark B. - 8-18-93 - Added -lclient to LIBS so links don't whine
#
#    Version      Date     Time    Owner   Comment
# ------------- -------- -------- -------- ----------------------------
# V1.22.2.1     01/21/94 14:52:19 nrbschwa Added informational messages to compilations.
# V1.22.2.2     01/28/94 17:02:49 nrbschwa Moved methods and performed general cleanup.
# V1.22.2.3     02/03/94 13:37:36 nrbschwa onal messages to compilations.
# V1.22.2.4     02/04/94 13:16:37 gman     changed ar to archk, del .o's before compile
# V1.22.2.5     02/18/94 14:49:05 nrbschwa Added additional warning check.
# V1.22.3.1     03/25/94 08:54:24 vo       Use extension mechanism for PSF/PIOBE extension oids
# V1.22.3.2     04/05/94 14:06:11 nrbschwa Added ValueResultsProfile.
# V1.22.3.3     08/04/94 17:12:55 nrzesch  PDB version control
# V1.22.3.4     08/05/94 15:33:41 nrzesch  Persistent object version control
# V1.22.3.5     08/10/94 18:20:42 nrzesch  Add local asctime methods
# V1.22.3.6     08/19/94 08:04:11 nrjbehrs added oidpiobe.o
# V1.22.3.7     08/25/94 22:32:45 longstaf Moved valcli.cpp from client to as dir; added to make
# V1.22.3.8     09/28/94 15:04:14 nrjbehrs redo attrptr class
