#
# Makefile
#
CC ?= gcc
LVGL_DIR ?= ${shell pwd}

WARNINGS ?= -Werror -Wall -Wextra \
            -Wshadow -Wundef -Wmaybe-uninitialized -Wmissing-prototypes -Wno-discarded-qualifiers \
            -Wno-unused-function -Wno-error=strict-prototypes -Wpointer-arith -fno-strict-aliasing -Wno-error=cpp -Wuninitialized \
            -Wno-unused-parameter -Wno-missing-field-initializers -Wno-format-nonliteral -Wno-cast-qual -Wunreachable-code -Wno-switch-default  \
            -Wreturn-type -Wmultichar -Wformat-security -Wno-ignored-qualifiers -Wno-error=pedantic -Wno-sign-compare -Wno-error=missing-prototypes -Wdouble-promotion -Wclobbered -Wdeprecated  \
            -Wempty-body -Wshift-negative-value -Wstack-usage=2048 \
            -Wtype-limits -Wsizeof-pointer-memaccess -Wpointer-arith

CFLAGS ?= -O3 -g0 / $(WARNINGS)
LIBS ?= -llvgl -lfreetype

include $(LVGL_DIR)/lv_drivers.mk

OBJEXT ?= .o

COBJS = $(CSRCS:.c=$(OBJEXT))

TARGET = liblvdrv.so

all: default

%.o: %.c
	@$(CC)  $(CFLAGS) -fPIC -c $< -o $@
	@echo "CC $<"

default: $(COBJS)
	$(CC) -shared -fPIC -o $(TARGET) $(COBJS) $(LDFLAGS)

clean:
	rm -f $(TARGET) $(COBJS)
