# Makefile compiling the whole project # Don't forget before the first compilation to run that command: # export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:./Libs CC=gcc CFLAGS=-Wall -Werror -pedantic -fpic -g -std=c89 -Wextra EXTLIBS=`sdl2-config --cflags --libs` LIBSDIR=-L/usr/lib -L./Libs INCLUDEDIR=-I/usr/include -I. -I./LibMatrix -I./LibGui #Exe test variables TARGET=Matrix.exe SOURCE=matrixmain SOURCECFILE=$(SOURCE:=.c) SOURCEOFILE=$(SOURCE:=.o) DEPENDENCELIST=libMatrix.so libGui.so DEPENDENCENAMEONE=Matrix DEPENDENCENAMETWO=Gui all: $(TARGET) #Generating the main.exe $(TARGET): $(SOURCEOFILE) lib @echo "\n Generating the " $(TARGET) " binary" mkdir -p build $(CC) $(SOURCEOFILE) $(LIBSDIR) $(EXTLIBS) -l$(DEPENDENCENAMEONE) -l$(DEPENDENCENAMETWO) -o ./build/$(TARGET) #Generating the library binary lib: @echo "\n Generating the gui library binary" mkdir -p Libs $(MAKE) -C LibMatrix $(MAKE) -C LibGui #Generating object files .c.o: @echo "\n Generating " $@ " from " $< $(CC) $(CFLAGS) $(INCLUDEDIR) -c -o $@ $< #Cleaning clean: @echo "\n Cleaning" rm -rf *.o ./Libs/*.so ./build/$(TARGET) $(MAKE) -C LibMatrix clean $(MAKE) -C LibGui clean