Makefile 2.2 KB
Newer Older
sahduashufa's avatar
0418  
sahduashufa 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
CXX = g++
BIN = bin
LIB = lib
LIB_NAME = autodiff
OBJS_GRADIENT_DESCENT = root/obj/node.o root/obj/graph.o examples/obj/gradient_descent.o
OBJS_ANN = root/obj/node.o root/obj/graph.o examples/obj/ann.o
OBJS_GRADIENT = root/obj/node.o root/obj/graph.o examples/obj/gradient.o
OBJS_SPEED = root/obj/node.o root/obj/graph.o examples/obj/speed.o
OBJS_SIMPLE = root/obj/node.o root/obj/graph.o examples/obj/simple.o

all : gradient_descent ann gradient speed simple

gradient_descent : $(BIN) root/include/vectmath.h root/include/mor.h root/include/dor.h root/include/por.h
	$(MAKE) -C examples obj obj/gradient_descent.o
	$(MAKE) -C root obj obj/node.o obj/graph.o
	$(CXX) -o $(BIN)/gradient_descent $(OBJS_GRADIENT_DESCENT) $(LIBS)

ann : $(BIN) root/include/vectmath.h root/include/mor.h root/include/dor.h root/include/por.h
	$(MAKE) -C examples obj obj/ann.o
	$(MAKE) -C root obj obj/node.o obj/graph.o
	$(CXX) -o $(BIN)/ann $(OBJS_ANN) $(LIBS)

gradient : $(BIN) root/include/vectmath.h root/include/mor.h root/include/dor.h root/include/por.h
	$(MAKE) -C examples obj obj/gradient.o
	$(MAKE) -C root obj obj/node.o obj/graph.o
	$(CXX) -o $(BIN)/gradient $(OBJS_GRADIENT) $(LIBS)

speed : $(BIN) root/include/vectmath.h root/include/mor.h root/include/dor.h root/include/por.h
	$(MAKE) -C examples obj obj/speed.o
	$(MAKE) -C root obj obj/node.o obj/graph.o
	$(CXX) -o $(BIN)/speed $(OBJS_SPEED) $(LIBS)

simple : $(BIN) root/include/mor.h root/include/dor.h root/include/por.h
	$(MAKE) -C examples obj obj/simple.o
	$(MAKE) -C root obj obj/node.o obj/graph.o
	$(CXX) -o $(BIN)/simple $(OBJS_SIMPLE) $(LIBS)

$(BIN) :
	if [ ! -d $(BIN) ]; then mkdir $(BIN); fi

$(LIB) :
	if [ ! -d $(LIB) ]; then mkdir $(LIB); fi

clean :
	$(MAKE) -C root clean
	$(MAKE) -C examples clean
	if [ -d $(BIN) ]; then rm $(BIN) -r; fi

install : $(LIB)
	ar rcs $(LIB)/lib$(LIB_NAME).a root/obj/graph.o root/obj/node.o
	if [ ! -d /usr/local/include/$(LIB_NAME) ]; then sudo mkdir /usr/local/include/$(LIB_NAME); fi
	sudo cp $(LIB)/lib$(LIB_NAME).a /usr/local/lib
	sudo cp root/include/*.h /usr/local/include/$(LIB_NAME)

.PHONY : all
.PHONY : gradient_descent
.PHONY : ann
.PHONY : gradient
.PHONY : speed
.PHONY : simple
.PHONY : clean
.PHONY : install