############            Makefile.in            ############
include ../../Makefile.in

############            files            ############
########        list of source files        ########
SIMAN_SRC=SimulatedAnnealing.cc SimulatedAnnealingConsts.cc \
               SimulatedAnnealingArgs.cc


########        list of header files        ########
SIMAN_HDS=${SIMAN_SRC:.cc=.hh}

########        list of object files        ########
SIMAN_OBJ=${SIMAN_SRC:.cc=.o}

LIB_OBJ=${SIMAN_OBJ}

########        library        ########
####    stem && library file    ####
STEM=MethodSA
SHARED_LIB=lib${STEM}.so
STATIC_LIB=lib${STEM}.a

############            compileer options            ############
LDFLAGS += -L${LOCAL_LIB_DIR}
METHOD_LIB=-l${STEM}
DATA_CONTAINER_LIB=-lDataContainer
BUILD_IN_FUNC_LIB=-lBuildInFunc
HELPERS_LIB=-lHelpers

############            targets            ############
lib : ${LOCAL_LIB_DIR}/${SHARED_LIB} ${LOCAL_LIB_DIR}/${STATIC_LIB}

########        c++ library        ########
${LOCAL_LIB_DIR}/${SHARED_LIB} : ${SHARED_LIB}
	${MV} $^ ${LOCAL_LIB_DIR}

${LOCAL_LIB_DIR}/${STATIC_LIB} : ${STATIC_LIB}
	${MV} $^ ${LOCAL_LIB_DIR}

${SHARED_LIB} : ${LIB_OBJ}
	${CXX} -shared -o $@ $^ ${LIB_DIR} ${LEVMAR_LIB}

${STATIC_LIB} : ${LIB_OBJ}
	${AR} ${AR_FLAGS} $@ $^
	${RANLIB} ${RANLIB_FLAGS} $@

#----    new Levmar wrapper    ----
############            cleaning            ############
clean:
	${RM} ${RM_FLAGS} *.o
	${RM} ${RM_FLAGS} ${SHARED_LIB} ${STATIC_LIB}
	${RM} ${RM_FLAGS} *_wrap.cxx

allclean: clean
	${RM} ${RM_FLAGS} ${LOCAL_LIB_DIR}/${SHARED_LIB} ${LOCAL_LIB_DIR}/${STATIC_LIB}
	${RM} ${RM_FLAGS} ${LOCAL_LIB_DIR}/${STEM}.py
	${RM} ${RM_FLAGS} ./${STEM}_wrap.cxx

