#LIBPATH = -L$(HOME)/lib/

INCPATH = -I../../../Include

CFLAGS = -xc++ -Wall -Dlinux

LIBOBJECTS = \
	Object.o Thread.o StringToObjectCollection.o \
	LongToObjectCollection.o ObjectStack.o \
	StringContainer.o ByteContainer.o ObjectManager.o \
	ULongContainer.o \
	Manager.o MasterManager.o \
	LoggerManager.o LoggerManagerModule.o \
	LoggerManagerModule_File.o

#################################
#  .+-----------------------+.  #
#  +  Generic Compile Rules  +  #
#  `+-----------------------+'  #
#################################

%.lo: ../../../Src/Base/%.cpp 
	gcc $(CFLAGS) $(INCPATH) -c -o $@ $<

%.o: ../../../Src/Base/%.cpp
	gcc $(CFLAGS) $(INCPATH) -c -o $@ $<

#################################
#  .+-----------------------+.  #
#  +  Labels                 +  #
#  `+-----------------------+'  #
#################################

ALL: static

static: libBase.a

shared:  libBase.so

clean:
	rm -f *core *.lo *.o
	rm -f ../../../Libraries/Linux/libBase.so ../../../Libraries/Linux/libBase.a

install: static shared
	cp ../../../Libraries/Linux/libBase.so /lib/
	cp ../../../Libraries/Linux/libBase.a /lib/

#################################
#  .+-----------------------+.  #
#  +  Main targets to build  +  #
#  `+-----------------------+'  #
#################################

libBase.so: $(LIBOBJECTS)
	gcc -shared -o ../../../Libraries/Linux/libBase.so $(LIBOBJECTS)

libBase.a: $(LIBOBJECTS)
	ar -r ../../../Libraries/Linux/libBase.a $(LIBOBJECTS)

