#*******************************************************************************
# include ZTE library makefile
#*******************************************************************************
include $(COMMON_MK)

##############USER COMIZE BEGIN################
#include ../net_team.mk

ifeq ($(USE_DSDS_VSIM),yes)
CFLAGS += -DUSE_DSDS_VSIM
endif

LIB_STATIC = libatext.a
LIB_SHARED = libatext.so

OBJS = $(patsubst %.c,%.o,$(wildcard *.c))

CFLAGS += -I$(zte_app_path)/zte_comm/at_ctl/inc
CFLAGS += -I$(zte_lib_path)/libatutils
CFLAGS += -I$(zte_lib_path)/libnvram
CFLAGS += -I$(zte_lib_path)/libamt
CFLAGS += -I$(LINUX_DIR)/include
CFLAGS += -g -Werror=implicit-function-declaration
CFLAGS += -I$(APP_DIR)/include

CFLAGS += -I/$(TOPDIR)/pub/project/$(CHIP_NAME)/include/nv
CFLAGS += -I/$(TOPDIR)/pub/project/$(CHIP_NAME)/include/drv
CFLAGS += -I/$(CP_ROOT_DIR)/ps/driver/inc/misc

##############USER COMIZE END##################
CFLAGS += -I$(zte_app_path)/include
CFLAGS += -fPIC
LDFLAGS += -shared


ifeq ($(USE_VOICE_AT),yes)
CFLAGS += -I$(zte_lib_path)/libtinyalsa/include
CFLAGS += -I$(zte_lib_path)/libvoice/include
LDLIBS += -L$(zte_lib_path)/libvoice
LDLIBS += -lvoice
LDLIBS += -L$(zte_lib_path)/libtinyalsa
LDLIBS += -ltinyalsa
endif

all: $(LIB_STATIC) $(LIB_SHARED)

$(LIB_STATIC) : $(OBJS)
	$(AR) rcs $(LIB_STATIC) $(OBJS)

$(LIB_SHARED): $(OBJS)
	$(CC) $(LDFLAGS) -o $@ $^ -lm

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

clean:
	-$(RM) *.a *.o *.so $(LIB_SHARED) $(LIB_STATIC) $(OBJS)

