#-------------- basic settings ---------------
TARGET = libalglib.a
CFLAGS = -Wall -O3
CC = g++


#-------------- compile and make library ---------------
$(TARGET):alglibinternal.o alglibmisc.o ap.o dataanalysis.o diffequations.o fasttransforms.o integration.o interpolation.o linalg.o optimization.o solvers.o specialfunctions.o statistics.o Makefile
	ar rcs $(TARGET) alglibinternal.o alglibmisc.o ap.o dataanalysis.o diffequations.o fasttransforms.o integration.o interpolation.o linalg.o optimization.o solvers.o specialfunctions.o statistics.o

alglibinternal.o:alglibinternal.cpp alglibinternal.h
	$(CC) $(CFLAGS) -c -o $@ $*.cpp

alglibmisc.o:alglibmisc.cpp alglibmisc.h
	$(CC) $(CFLAGS) -c -o $@ $*.cpp

ap.o:ap.cpp ap.h
	$(CC) $(CFLAGS) -c -o $@ $*.cpp

dataanalysis.o:dataanalysis.cpp dataanalysis.h
	$(CC) $(CFLAGS) -c -o $@ $*.cpp

diffequations.o:diffequations.cpp diffequations.h
	$(CC) $(CFLAGS) -c -o $@ $*.cpp

fasttransforms.o:fasttransforms.cpp fasttransforms.h
	$(CC) $(CFLAGS) -c -o $@ $*.cpp

integration.o:integration.cpp integration.h
	$(CC) $(CFLAGS) -c -o $@ $*.cpp

interpolation.o:interpolation.cpp interpolation.h
	$(CC) $(CFLAGS) -c -o $@ $*.cpp

linalg.o:linalg.cpp linalg.h
	$(CC) $(CFLAGS) -c -o $@ $*.cpp

optimization.o:optimization.cpp optimization.h
	$(CC) $(CFLAGS) -c -o $@ $*.cpp

solvers.o:solvers.cpp solvers.h
	$(CC) $(CFLAGS) -c -o $@ $*.cpp

specialfunctions.o:specialfunctions.cpp specialfunctions.h
	$(CC) $(CFLAGS) -c -o $@ $*.cpp

statistics.o:statistics.cpp statistics.h
	$(CC) $(CFLAGS) -c -o $@ $*.cpp

#-------------- others ------------------------
.PHONY: clean
clean:
	rm *.o
	rm $(TARGET)
