diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0481e8b --- /dev/null +++ b/Makefile @@ -0,0 +1,64 @@ +#!/bin/bash +# Makefile for MLP +CC = g++ +DEBUG = -g +PROJNAME = mlp + +HEADERPATH = ./src +SOURCEPATH = ./src + +LOCALDEPSINCLUDES = ./deps +AUXINCLUDES = +AUXLIBS = + +INCLUDES = -I$(LOCALDEPSINCLUDES) -I$(AUXINCLUDES) +LIBS = -L$(AUXLIBS) +#LIBS += -L/usr/local/lib/ +CFLAGS = -std=gnu++11 -std=c++11 -O3 -Wall -fmessage-length=0 -fPIC $(INCLUDES) +CFLAGS += $(DEBUG) +LFLAGS = $(LIBS) +#For verbosity +LFLAGS += -v +LDFLAGS = -shared + +HDRS = $(shell find $(HEADERPATH) $(AUXINCLUDES) $(LOCALDEPSINCLUDES) -name '*.h') +HDRS += $(shell find $(HEADERPATH) $(AUXINCLUDES) $(LOCALDEPSINCLUDES) -name '*.h++') +SRCS = $(shell find $(SOURCEPATH) -name '*.cpp') +SRCS += $(shell find $(SOURCEPATH) -name '*.c') +OBJS = $(SRCS:.cpp=.o) +TXTS = $(wildcard *.txt) +SCRIPTS = $(wildcard *.sh) + +all : MLPTest LayerTest NodeTest $(PROJNAME).a $(PROJNAME).so + +$(PROJNAME).a : $(SOURCEPATH)/MLP.o + @echo Creating static lib $@ + ar rcs $@ $(SOURCEPATH)/MLP.o + +$(PROJNAME).so : $(SOURCEPATH)/MLP.o + @echo Creating dynamic lib $@ + $(CC) -o $@ $(SOURCEPATH)/MLP.o $(LDFLAGS) $(LFLAGS) + +%.o: %.cpp $(HDRS) + $(CC) -c $(CFLAGS) $(LFLAGS) -o $@ $< + +MLPTest: $(SOURCEPATH)/MLPTest.o $(SOURCEPATH)/MLP.o + @echo Compiling program $@ + $(CC) $^ $(CFLAGS) $(LFLAGS) -o $@ + +LayerTest: $(SOURCEPATH)/LayerTest.o $(SOURCEPATH)/MLP.o + @echo Compiling program $@ + $(CC) $^ $(CFLAGS) $(LFLAGS) -o $@ + +NodeTest: $(SOURCEPATH)/NodeTest.o $(SOURCEPATH)/MLP.o + @echo Compiling program $@ + $(CC) $^ $(CFLAGS) $(LFLAGS) -o $@ +clean: + @echo Clean + rm -f *~ *.o *~ + @echo Success + +cleanall: + @echo Clean All + rm -f *~ $(SOURCEPATH)/*.o *~ $(PROJNAME).a $(PROJNAME).so MLPTest LayerTest NodeTest + @echo Success \ No newline at end of file