SHELL = /bin/sh
RM = rm -f

LOCAL_CFLAGS := -Wall \
                -g -Os \
                -flto \
                -fPIC \

CFLAGS += -fPIC -O2 $(INCLUDE) -D_LARGEFILE64_SOURCE
LOCAL_PATH   = .

LOCAL_C_INCLUDES = \
  -I. \
  -I$(LOCAL_PATH)/include \
  -I$(LOCAL_PATH)/include/liblog \
  -I$(LIB_DIR)/binder/include/log \
  -I$(LIB_DIR)/binder/include \


LOCAL_LIBS := \
    -L. \
    -L$(zte_lib_path)/binder/liblog \
    -L$(zte_lib_path)/binder/libcutils \
    -ldl \
    -lstdc++ \
    -llog \
    -lcutils \

SOURCES = $(wildcard *.c wildcard *.h)

EXECUTABLE = libpal.so

OBJECTS=$(SOURCES:.c=.o)
H_FILE = ${wildcard *.h}
CUR_SOURCE=$(wildcard ./src/*.c)
CUR_OBJS=${patsubst %.c, %.o, $(CUR_SOURCE)}

.PHONY: build clean install pack_rootfs 

all: build
$(EXECUTABLE): $(CUR_OBJS)
	$(CXX) -shared -Wl,--no-undefined $(CUR_OBJS) $(LOCAL_LIBS) $(CFLAGS) $(LOCAL_CFLAGS) $(LOCAL_C_INCLUDES) -o $@

%.o : %.c
	$(CC) $(LOCAL_C_INCLUDES) $(CFLAGS) $(LOCAL_CFLAGS) $(LOCAL_LIBS) -o $@ -c $< 

build:  $(EXECUTABLE)
	$(warning ########## build $(EXECUTABLE)  ##########)

romfs:
	$(ROMFSINST) $(EXECUTABLE) /lib/$(EXECUTABLE)

install:
	mkdir -p $(ROOT)$(base_libdir)/
	install $(EXECUTABLE) $(ROOT)$(base_libdir)/
	mkdir -p $(ROOT)$(includedir)/$(NAME)/sdk

pack_rootfs:
	mkdir -p $(PACK_INITRAMFS_TO)$(base_libdir)/
	cp -af $(EXECUTABLE) $(PACK_INITRAMFS_TO)$(base_libdir)/
	$(CROSS)strip $(PACK_INITRAMFS_TO)$(base_libdir)/$(EXECUTABLE)
	mkdir -p $(PACK_TO)$(base_libdir)/
	cp -af $(EXECUTABLE) $(PACK_TO)$(base_libdir)/
	$(CROSS)strip $(PACK_TO)$(base_libdir)/$(EXECUTABLE)
.PHONY: clean
clean:
	$(RM) $(OBJECTS) $(EXECUTABLE)
