.SUFFIXES: .o .C .c  .cpp

include mkfiles


##################################################################

include ../../sys/config/mkflags

##################################################################

CPPOBJECTS =$(CPPOBJS:%= $(OBJDIR)/%)
CCOBJECTS =$(CCOBJS:%= $(OBJDIR)/%)
CPPOBJECTS2 =$(CPPOBJS:%= $(OBJDIR2)/%)
CCOBJECTS2 =$(CCOBJS:%= $(OBJDIR2)/%)

CPPOBJECTS-st =$(CPPOBJS:%= $(OBJDIR-st)/%)
CCOBJECTS-st =$(CCOBJS:%= $(OBJDIR-st)/%)
CPPOBJECTS2-st =$(CPPOBJS:%= $(OBJDIR2-st)/%)
CCOBJECTS2-st =$(CCOBJS:%= $(OBJDIR2-st)/%)

#.c.o:
#	$(CC) $(C++FLAGS) -c $(*F).c  -o $(OBJDIR)/$*.o
#
#.C.o:
#	$(CXX) $(C++FLAGS) -c $(*F).C   -o $(OBJDIR)/$*.o
#
#.cpp.o:
#	$(CXX) $(C++FLAGS) -c $(*F).cpp -o $(OBJDIR)/$*.o
#

LIBDLLBASE  = $(LIBNAME)
#LIBDLL  = $(LIBNAME).$(VERSION).d
#LIBDLL2 = $(LIBNAME).$(VERSION)
LIBDLL  = $(LIBNAMED).$(VERSION)
LIBDLL2 = $(LIBNAME).$(VERSION)
LIBST   = $(LIBNAMED2)
LIBST2  = $(LIBNAME2)

#all: $(LIBDIR)/$(LIBDLL) $(LIBDIR)/$(LIBDLL2) $(LIBDIR)/$(LIBST) $(LIBDIR)/$(LIBST2)
all: runtime static
static: $(LIBDIR)/$(LIBST2)
static-debug: $(LIBDIR)/$(LIBST)
debug: $(LIBDIR)/$(LIBDLL)
runtime: $(LIBDIR)/$(LIBDLL2)

$(LIBDIR)/$(LIBDLL): $(CPPOBJECTS) $(CCOBJECTS)
	$(CXX) -o $(LIBDIR)/$(LIBDLL) $(SHARED)$(LIBDLL) $(CPPOBJECTS) $(CCOBJECTS) $(XLIBS) -L../../lib -lwsb -L/usr/local/pgsql/lib -L/usr/local/lib -lpq
	cd $(LIBDIR);\rm -f $(LIBNAMED);\ln -s $(LIBDLL) $(LIBNAMED)
$(LIBDIR)/$(LIBDLL2): $(CPPOBJECTS2) $(CCOBJECTS2)
	$(CXX) -o $(LIBDIR)/$(LIBDLL2) $(SHARED)$(LIBDLL2) $(CPPOBJECTS2) $(CCOBJECTS2) $(XLIBS) -L../../lib -lwsb -L/usr/local/pgsql/lib -L/usr/local/lib -lpq
	cd $(LIBDIR);\rm -f $(LIBNAME);\ln -s $(LIBDLL2) $(LIBNAME)

$(LIBDIR)/$(LIBST): $(CPPOBJECTS-st) $(CCOBJECTS-st)
	$(STLD) $(STFLAGS) -o $(OBJDIR-st)/master_obj.o $(CPPOBJECTS-st) $(CCOBJECTS-st)
	$(AR) -rv $(LIBDIR)/$(LIBST) $(OBJDIR-st)/master_obj.o
	$(RANLIB) $(LIBDIR)/$(LIBST)

$(LIBDIR)/$(LIBST2): $(CPPOBJECTS2-st) $(CCOBJECTS2-st)
	$(STLD) $(STFLAGS) -o $(OBJDIR2-st)/master_obj.o $(CPPOBJECTS2-st) $(CCOBJECTS2-st)
	$(AR) -rv $(LIBDIR)/$(LIBST2) $(OBJDIR2-st)/master_obj.o
	$(RANLIB) $(LIBDIR)/$(LIBST2)


$(OBJDIR)/%.o:%.cpp
	$(CXX) $(C++FLAGS_DLL) $(XINCS) $(KINPUT2) -c $(*F).cpp -o $(OBJDIR)/$*.o
$(OBJDIR)/%.o:%.c
	$(CC) $(C++FLAGS_DLL) $(XINCS) $(KINPUT2) -c $(*F).c   -o $(OBJDIR)/$*.o
$(OBJDIR2)/%.o:%.cpp
	$(CXX) $(C++FLAGS2_DLL) $(XINCS) $(KINPUT2) -c $(*F).cpp -o $(OBJDIR2)/$*.o
$(OBJDIR2)/%.o:%.c
	$(CC) $(C++FLAGS2_DLL) $(XINCS) $(KINPUT2) -c $(*F).c   -o $(OBJDIR2)/$*.o

$(OBJDIR-st)/%.o:%.cpp
	$(CXX) $(C++FLAGS) $(XINCS) $(KINPUT2) -c $(*F).cpp -o $(OBJDIR-st)/$*.o
$(OBJDIR-st)/%.o:%.c
	$(CC) $(C++FLAGS) $(XINCS) $(KINPUT2) -c $(*F).c   -o $(OBJDIR-st)/$*.o
$(OBJDIR2-st)/%.o:%.cpp
	$(CXX) $(C++FLAGS2) $(XINCS) $(KINPUT2) -c $(*F).cpp -o $(OBJDIR2-st)/$*.o
$(OBJDIR2-st)/%.o:%.c
	$(CC) $(C++FLAGS2) $(XINCS) $(KINPUT2) -c $(*F).c   -o $(OBJDIR2-st)/$*.o

#$(CPPOBJECTS):
#	$(CXX) $(C++FLAGS) -c $(*F).cpp -o $*.o
#
#$(CCOBJECTS):
#	$(CXX) $(C++FLAGS) -c $(*F).c -o $*.o


clean:
	\rm -f $(CPPOBJECTS) $(CCOBJECTS) $(CPPOBJECTS2) $(CCOBJECTS2) *.bak
	\rm -f $(CPPOBJECTS-st) $(CCOBJECTS-st) $(CPPOBJECTS2-st) $(CCOBJECTS2-st)
	\rm -f $(LIBDIR)/$(LIBDLL) $(LIBDIR)/$(LIBDLL2) 
	\rm -f $(LIBDIR)/$(LIBST) $(LIBDIR)/$(LIBST2)
	\rm -f $(LIBDIR)/$(LIBNAMED)
	\rm -f $(LIBDIR)/$(LIBNAME)
	\rm -f $(OBJDIR-st)/master_obj.o
	\rm -f $(OBJDIR2-st)/master_obj.o



