GCC         = $(CROSS)gcc
CC          = $(GCC)
CXX         = $(CROSS)g++
OBJDUMP     = $(CROSS)objdump
OBJCOPY     = $(CROSS)objcopy
AR          = $(CROSS)ar

CFLAGS   = $(OFLAGS) -g -O2 -fPIC

LOCAL_MODULE = libprotobuf-c-nano
LOCAL_MODULE_ENABLE_MALLOC = libprotobuf-c-nano-enable_malloc
LOCAL_PATH   = .

LOCAL_CFLAGS += -Wall
CFLAGS += $(LOCAL_CFLAGS)

IGNORED_WARNINGS := -Wno-sign-compare -Wno-unused-parameter
CFLAGS += $(IGNORED_WARNINGS)

CFLAGS_PB_ENABLE_MALLOC = $(CFLAGS) -DPB_ENABLE_MALLOC

LOCAL_C_INCLUDES = -I$(LOCAL_PATH)

LOCAL_SRC_FILES = \
    pb_decode.c \
    pb_encode.c

LOCAL_OBJ_FILES = $(LOCAL_SRC_FILES:.c=.o)

LOCAL_LIBS :=
LDFLAGS += $(LOCAL_LIBS)

.PHONY: build clean install

all: build

$(LOCAL_MODULE).a: $(LOCAL_OBJ_FILES)
	$(AR) r $@ $(LOCAL_OBJ_FILES)
	$(AR) r $(LOCAL_MODULE_ENABLE_MALLOC).a $(LOCAL_OBJ_FILES:%=enable_malloc-%)

%.o: %.c
	$(warning ----->build $<)
	$(CC) $(CFLAGS) $(LOCAL_C_INCLUDES) $(CONFIG) -o $@ -c $<
	$(CC) $(CFLAGS_PB_ENABLE_MALLOC) $(LOCAL_C_INCLUDES) $(CONFIG) -o enable_malloc-$@ -c $<

build: $(LOCAL_MODULE).a
	$(warning ########## build $(LOCAL_MODULE) ##########)

clean:
	$(warning ########## clean $(LOCAL_MODULE) ##########)
	-find . -name "*.o" -delete
	-rm $(LOCAL_MODULE).a
	-rm $(LOCAL_MODULE_ENABLE_MALLOC).a

install:
	$(warning ########## install $(LOCAL_MODULE) ##########)
