lexsdl 0.1.0

A wrapper for SDL2 to abstract away annoying parts
Documentation
CC = gcc
CFLAGS = -O1 -Wall -Wextra -Winit-self
LDFLAGS = -lSDL2 -lSDL2_image
INCLUDEDIR = -Iinclude
HEADERS = -Iheaders
BUILDDIR = build
OBJS = ${BUILDDIR}/lexsdl.o ${BUILDDIR}/texture.o ${BUILDDIR}/event.o ${BUILDDIR}/mouse.o ${BUILDDIR}/window.o ${BUILDDIR}/renderer.o
LIB = ${BUILDDIR}/lexlib.a


lib:
	@echo -e "\033[0;32mBuilding LIB\033[0m"
	mkdir -p ${BUILDDIR}
	${CC} ${CFLAGS} ${INCLUDEDIR} ${HEADERS} -c src/lexsdl.c -o ${BUILDDIR}/lexsdl.o
	${CC} ${CFLAGS} ${INCLUDEDIR} ${HEADERS} -c src/window.c -o ${BUILDDIR}/window.o
	${CC} ${CFLAGS} ${INCLUDEDIR} ${HEADERS} -c src/renderer.c -o ${BUILDDIR}/renderer.o
	${CC} ${CFLAGS} ${INCLUDEDIR} ${HEADERS} -c src/texture.c -o ${BUILDDIR}/texture.o
	${CC} ${CFLAGS} ${INCLUDEDIR} ${HEADERS} -c src/event.c -o ${BUILDDIR}/event.o
	${CC} ${CFLAGS} ${INCLUDEDIR} ${HEADERS} -c src/mouse.c -o ${BUILDDIR}/mouse.o
	ar rcs ${LIB} ${OBJS}
	@echo ""
	@echo -e "\033[0;92mBUILD SUCCESFULL!\033[0m"


# examples

testing: lib
	@echo -e "\033[0;32mBuilding Example Testing\033[0m"
	${CC} ${CFLAGS} ${INCLUDEDIR} ${HEADERS} examples/testing.c ${LIB} -o ${BUILDDIR}/testing ${LDFLAGS}
	${BUILDDIR}/testing

complete: lib
	@echo -e "\033[0;32mBuilding Example Complete\033[0m"
	${CC} ${CFLAGS} ${INCLUDEDIR} ${HEADERS} examples/complete.c ${LIB} -o ${BUILDDIR}/complete ${LDFLAGS}
	${BUILDDIR}/complete

	
# other

install:
	@echo -e "\033[1;34mInstalling LEXSDL\033[0m"
	make lib
	mkdir /usr/include/LEXLIB
	cp include/* /usr/include/LEXLIB/
	cp ${LIB} /usr/lib/
	@echo ""
	@echo -e "\033[0;92mINSTALL COMPLETED!\033[0m"
	
uninstall:
	@echo -e "\033[1;31mUninstalling LEXSDL\033[0m"
	rm -rf /usr/include/LEXLIB
	rm /usr/lib/lexlib.a
	@echo ""
	@echo -e "\033[0;92mUNINSTALL COMPLETED!\033[0m"

update:
	@echo -e "\033[1;33mUpdating LEXSDL\033[0m"
	make uninstall
	make install
	@echo ""
	@echo -e "\033[0;92mUPDATE COMPLETED!\033[0m"

clean:
	@echo -e "\033[0;31mCleaning\033[0m"
	rm -rf ${BUILDDIR}