.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:
#	$(CC1) $(C++FLAGS) -c $(*F).c  -o $(OBJDIR)/$*.o
#
#.C.o:
#	$(CC) $(C++FLAGS) -c $(*F).C   -o $(OBJDIR)/$*.o
#
#.cpp.o:
#	$(CC) $(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)
	$(CC) -o $(LIBDIR)/$(LIBDLL) $(SHARED)$(LIBDLL) $(CPPOBJECTS) $(CCOBJECTS) -L../../lib -lwsd
	cd $(LIBDIR);\rm -f $(LIBNAMED);\ln -s $(LIBDLL) $(LIBNAMED)
$(LIBDIR)/$(LIBDLL2): $(CPPOBJECTS2) $(CCOBJECTS2)
	$(CC) -o $(LIBDIR)/$(LIBDLL2) $(SHARED)$(LIBDLL2) $(CPPOBJECTS2) $(CCOBJECTS2) -L../../lib -lws
	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
	$(CC) $(C++FLAGS_DLL) -c $(*F).cpp -o $(OBJDIR)/$*.o
$(OBJDIR)/%.o:%.c
	$(CC1) $(C++FLAGS_DLL) -c $(*F).c   -o $(OBJDIR)/$*.o
$(OBJDIR2)/%.o:%.cpp
	$(CC) $(C++FLAGS2_DLL) -c $(*F).cpp -o $(OBJDIR2)/$*.o
$(OBJDIR2)/%.o:%.c
	$(CC1) $(C++FLAGS2_DLL) -c $(*F).c   -o $(OBJDIR2)/$*.o

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



#$(CPPOBJECTS):
#	$(CC) $(C++FLAGS) -c $(*F).cpp -o $*.o
#
#$(CCOBJECTS):
#	$(CC) $(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) $(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

