include $(COMMON_MK)

TARGET_CPU_SMP = false

ifeq ($(TARGET_CPU_SMP),true)
    targetSmpFlag := -DANDROID_SMP=1
else
    targetSmpFlag := -DANDROID_SMP=0
endif

commonSources := \
	hashmap.c \
	atomic.c \
	native_handle.c \
	config_utils.c \
	load_file.c \
	open_memstream.c \
	strdup16to8.c \
	strdup8to16.c \
	record_stream.c \
	process_name.c \
	threads.c \
	sched_policy.c \
	iosched_policy.c \
	socket_local_client.c \
	socket_local_server.c



LOCAL_SRC_FILES := $(commonSources) \
        ashmem-dev.c \
        klog.c \
        memory.c \
        uevent.c \
        properties.c \


LOCAL_SRC_FILES_arm += \
        arch-arm/memset32.S \

LOCAL_SRC_FILES_arm64 += \
        arch-arm64/android_memset.S \


LOCAL_CFLAGS_arm   += -DHAVE_MEMSET16 -DHAVE_MEMSET32
LOCAL_CFLAGS_arm64 += -DHAVE_MEMSET16 -DHAVE_MEMSET32

LOCAL_MODULE := libcutils.so

LOCAL_C_INCLUDES = -I../include
LOCAL_C_INCLUDES += -I../include/log
LOCAL_C_INCLUDES += -I../include/cutils
LOCAL_C_INCLUDES += -I../include/utils
#-I$(STAGEDIR)

LOCAL_CFLAGS += -fPIC -g -O3   -DBINDER_IPC_32BIT=1 -DHAVE_ENDIAN_H -DHAVE_PTHREADS -DHAVE_SYS_UIO_H -DHAVE_POSIX_FILEMAP -DHAVE_STRLCPY -DHAVE_PRCTL $(targetSmpFlag) $(LOCAL_CFLAGS_arm)
LOCAL_CFLAGS += -Werror
# -nostartfiles

LOCAL_CPPFLAGS += -fPIC -g -O2 -DBINDER_IPC_32BIT=1 -DHAVE_ENDIAN_H -DHAVE_PTHREADS -DHAVE_SYS_UIO_H -DHAVE_POSIX_FILEMAP -DHAVE_STRLCPY -DHAVE_PRCTL $(targetSmpFlag) $(LOCAL_CFLAGS_arm)
LOCAL_CPPFLAGS += -std=c++11

LOCAL_LDLIBS  += -lpthread
#LOCAL_LDFLAGS += -shared
LDFLAGS += -shared

ALL_OBJS = $(subst .c,.o, $(LOCAL_SRC_FILES))
ALL_OBJS_AS = $(subst .S,.o, $(LOCAL_SRC_FILES_arm))

all : $(LOCAL_MODULE)
	@echo "Compile $(LOCAL_MODULE) done!"

clean :
	@rm -rvf $(ALL_OBJS) $(LOCAL_MODULE)

$(LOCAL_MODULE) : $(ALL_OBJS) $(ALL_OBJS_AS)
#	$(CXX) $(LOCAL_LDFLAGS) $(LOCAL_CPPFLAGS) -o $@ $^ $(LOCAL_LDLIBS)
	$(CXX) $(LDFLAGS) $(LOCAL_CPPFLAGS) -o $@ $^ $(LOCAL_LDLIBS)

%.o:%.c
	@echo Compile $< 
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_C_INCLUDES) -c $< -o $@

%.o:%.cpp
	@echo Compile $< 
	$(CXX) $(LOCAL_CPPFLAGS) $(LOCAL_C_INCLUDES) -c $< -o $@

%.o:%.S
	@echo Compile $< 
	$(CXX) $(LOCAL_CPPFLAGS) $(LOCAL_C_INCLUDES) -c $< -o $@

romfs:
	$(ROMFSINST) $(LOCAL_MODULE) /lib/$(LOCAL_MODULE)
	@echo $(LOCAL_MODULE) has been installed!

