# Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
#
#
#  Redistribution and use in source and binary forms, with or without
#  modification, are permitted provided that the following conditions
#  are met:
#
#    Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
#    Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the
#    distribution.
#
#    Neither the name of Texas Instruments Incorporated nor the names of
#    its contributors may be used to endorse or promote products derived
#    from this software without specific prior written permission.
#
#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
#  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
#  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
#  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
#  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
#  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
#  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
#  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
#  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

MPMCLINET_OBJS = mpmclient.o
MPMCLINET_OBJS_SO = mpmclient.so
MPMCMDIF_OBJS = mpmcmdif.o

SOCKUTILS_OBJ =  sockutils.o
SOCKUTILS_OBJ_SO =  sockutils.so
SOCKUTILS_DIR =  $(MPM_COMMON)

MPMCLIENT_INC = -I. -I$(MPM_COMMON) -I$(MPM_INC)

.PHONY: all clean distclean

all: $(MPMCLIENT_LIB) $(MPMCLIENT_BIN)

$(MPMCLIENT_BIN): $(MPM_LIB)/$(MPMCLIENT_LIB) $(MPMCMDIF_OBJS)
	$(CC) $(LDFLAGS) -L$(MPM_LIB) -o $@ -Wl,--start-group $(filter-out $(MPM_LIB)/$(MPMCLIENT_LIB), $^) $(MPMCLIENT_LIB_OPT) -Wl,--end-group

$(MPM_LIB)/$(MPMCLIENT_LIB): $(MPMCLINET_OBJS)
	make -C $(SOCKUTILS_DIR) $(SOCKUTILS_OBJ)
	$(AR) ${ARFLAGS} $@ $^ $(SOCKUTILS_DIR)/$(SOCKUTILS_OBJ)

$(MPM_LIB)/$(MPMCLIENT_LIB_SO): $(MPMCLINET_OBJS_SO)
	make -C $(SOCKUTILS_DIR) $(SOCKUTILS_OBJ_SO)
	$(CC) -Wl,-soname=$(MPMCLIENT_LIB_SO).1 -shared -fPIC -o $(MPMCLIENT_LIB_SO).1.0.0 $^ $(SOCKUTILS_DIR)/$(SOCKUTILS_OBJ_SO)
	@ln -s $(MPMCLIENT_LIB_SO).1.0.0 $(MPMCLIENT_LIB_SO).1
	@ln -s $(MPMCLIENT_LIB_SO).1     $(MPMCLIENT_LIB_SO)
	@mv -f $(MPMCLIENT_LIB_SO)* $(MPM_LIB)

%.o: %.c
	$(CC) $(MPMSRV_INC) $(MPMCLIENT_INC) -c -o $@ $<

%.so: %.c
	$(CC) $(MPMSRV_INC) $(MPMCLIENT_INC) -fPIC -c -o $@ $<

clean: 
	make -C $(SOCKUTILS_DIR) clean
	rm -rf $(MPMCLINET_OBJS)
	rm -rf $(MPMCMDIF_OBJS)

