include ../../Makefile.config

SRC = defs.cpp Main.cpp
LIB_DIR = .lib

OBJ = ${SRC:.cpp=.o}

EXE = ExNihilo

all: depend $(EXE)

$(EXE): $(EXNIHILO_LIB)
	$(CXX) -o $(EXE) Main.o $(CXXFLAGS) $(CXXLIB) libExNihilo.so

$(EXNIHILO_LIB): $(OBJ)
	$(RM) $@*
	mkdir -p $(LIB_DIR)
	cp -lf ../Math/*.o $(LIB_DIR)
	cp -lf ../Manager/*.o $(LIB_DIR)
	cp -lf ../Object/*.o $(LIB_DIR)
	cp -lf ../Tools/*.o $(LIB_DIR)
	cp -lf defs.o $(LIB_DIR)
	$(CXX) -shared -Wl,-soname,$@.$(MAJOR_VERSION) -o $@.$(MAJOR_VERSION).$(MINOR_VERSION) $(LIB_DIR)/*.o $(CXXFLAGS)
	$(LN) $@.$(MAJOR_VERSION).$(MINOR_VERSION) $@.$(MAJOR_VERSION)
	$(LN) $@.$(MAJOR_VERSION).$(MINOR_VERSION) $@	

install:
	$(INSTALL) -c -s -m 755 $(EXNIHILO_LIB).$(MAJOR_VERSION).$(MINOR_VERSION) $(PREFIX)/lib
	$(RM) $(PREFIX)/lib/$(EXNIHILO_LIB).$(MAJOR_VERSION)
	$(RM) $(PREFIX)/lib/$(EXNIHILO_LIB)
	$(LN) $(PREFIX)/lib/$(EXNIHILO_LIB).$(MAJOR_VERSION).$(MINOR_VERSION) $(PREFIX)/lib/$(EXNIHILO_LIB).$(MAJOR_VERSION)
	$(LN) $(PREFIX)/lib/$(EXNIHILO_LIB).$(MAJOR_VERSION) $(PREFIX)/lib/$(EXNIHILO_LIB)
	$(INSTALL) -c -s -m 755 ExNihilo $(PREFIX)/bin

uninstall:
	$(RM) $(PREFIX)/lib/$(EXNIHILO_LIB)*
	$(RM) $(PREFIX)/bin/ExNihilo

depend: ${SRC}
	$(RM) depend
	$(CXX) -MM $(CXXFLAGS) $(SRC) > depend

clean:                                                                          
	$(RM) *.o *~ 
	$(RM) $(EXE)
	$(RM) $(EXNIHILO_LIB)*
	$(RM) depend
	$(RM) core*
	$(RM) -r $(LIB_DIR)

include depend
