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"
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
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}