CFLAGS += -I.

OUT=mqtts_client

TARGET=mqtts_client

MASTER_VER = 01
MAJOR_VER = 00
MINOR_VER = 00
VERSION = $(MASTER_VER).$(MAJOR_VER).$(MINOR_VER)
D_FLAGS = -DLIB_VERS=$(VERSION) -DMAS_VER=$(MASTER_VER) -DMAJ_VER=$(MAJOR_VER) -DMIN_VER=$(MINOR_VER)

MQTTTRANSPORTDIR=./mqtt-transport
MQTTCOREDIR=./mqtt-core
MQTTMAINDIR=./mqtt-main
MQTTTIMERDIR=./mqtt-timer
OSPORTDIR=./os-port
3RDPARTYDIR=../3rd_party/libbuilt
COMMON_LIB_DIR=../hubble_api/common_library



SRC = timer.c os_port.c HubbleCertificate.c \
      MQTTConnectClient.c  MQTTDeserializePublish.c  \
      MQTTPacket.c MQTTSubscribeClient.c MQTTUnsubscribeClient.c \
      MQTTConnectServer.c  MQTTFormat.c MQTTSerializePublish.c\
      MQTTSubscribeServer.c  MQTTUnsubscribeServer.c \
      MQTTClient.c MQTTTransportSSL.c mqtts.c proto/attributes.pb.c \
	  proto/commands.pb.c proto/iot_packet.pb.c proto_enc_dec/pb_common.c \
	  proto_enc_dec/pb_decode.c proto_enc_dec/pb_encode.c \
	  proto/status_codes.pb.c json/json_api.c json/jsmn.c pcwrapper.c main.c


#CC=gcc
#STRIP=strip
CFLAGS += -I../ -I$(MQTTMAINDIR) -I$(MQTTTRANSPORTDIR) -I$(COMMON_LIB_DIR) -I$(MQTTCOREDIR)/inc \
		  -I$(MQTTTIMERDIR)/inc -I../../ -I./proto -I./json \
          -I./proto_enc_dec -I$(3RDPARTYDIR)/include -I$(3RDPARTYDIR)/include/mbedtls -I$(3RDPARTYDIR)/include/curl \
		  -I$(OSPORTDIR) -DPC_BUILT\

LDFLAGS += -L$(3RDPARTYDIR)/lib -lcommon  -lcurl -lmbedtls -lmbedcrypto -lmbedx509 -lpthread -lrt -lm


SRC += md5.c

     
OBJ := $(SRC:.c=.o)
VPATH = $(MQTTTRANSPORTDIR):$(MQTTCOREDIR)/src:$(MQTTMAINDIR):$(MQTTTIMERDIR)/src:$(OSPORTDIR):ssl-source/certificate:$(COMMON_LIB_DIR)
OBJDIR := mqtt-obj

all: $(OUT)

	


$(OUT): $(OBJ)
	$(CC) $(CFLAGS) -o $(TARGET).$(VERSION) $^ $(LDFLAGS) $(CPPFLAGS) -lpthread
	ln -sf $(TARGET).$(VERSION) $(TARGET)
	$(STRIP) $(TARGET).$(VERSION)

%.o:%.c
	$(CC) $(CFLAGS) -g -o $@ -c $<
clean:
	rm -rf *.o *.a *.so $(TARGET).$(VERSION) $(TARGET)
	rm -rf json/*.o proto/*.o proto_enc_dec/*.o ssl-source/mbedtls/library/*.so*
install:
