#!/bin/sh
#$Id: make_prog_lib,v 1.6 2022/11/30 06:31:14 marcum Exp $
#FUNCTION

#===============================================================================
# Function to create combined library of all code used by a given program.
#===============================================================================

make_prog_lib ()
{
	if [ "$1" = "" ]; then
		return
	fi

	prog_name="$1"

	if [ ! -d ${src_dir}/${prog_name} ]; then
		return
	fi

	echo "Make combined library for all code used by ${prog_name} ..."

	start_dir="`pwd`"

	tmp_dir="${TMPDIR}/${USER}_`basename $0`_$$"

	if [ -d "${tmp_dir}" ]; then

		/bin/rm -rf ${tmp_dir}
	fi

	mkdir ${tmp_dir}

	cd ${tmp_dir}

	prog_lib_names=

	prog_lib_list_files="${src_dir}/${prog_name}/*.lib_list"

	lib_names_1=
	lib_names_2=
	lib_names_3=

	for prog_lib_list_file in ${prog_lib_list_files}; do

		if [ -r "${prog_lib_list_file}" ]; then

			. ${prog_lib_list_file}
			break
		fi
	done

	if [ "${lib_names_1}" = "" ] && [ "${lib_names_2}" = "" ] && [ "${lib_names_3}" = "" ]; then
		lib_names_1="${prog_name}"
	fi

	prog_lib_names="${prog_lib_names} ${lib_names_1}"
	if [ "${lib_names_2}" ]; then
		prog_lib_names="${prog_lib_names} ${lib_names_2}"
	fi
	if [ "${lib_names_3}" ]; then
		prog_lib_names="${prog_lib_names} ${lib_names_3}"
	fi

	list=

	for name in ${prog_lib_names}; do

		if [ "`echo ${list} | grep :${name}:`" = "" ] && [ "${name}" != "xplt2" ] && [ "${name}" != "XW" ]; then
			list="${list}:${name}:"
		fi
	done

	echo "extracting object code from all libs used by ${prog_name} ..."

	for name in ${prog_lib_names}; do
		ar x ${sys_lib_dir}/${lib_prefix}${name}${compile_suffix}.${static_lib_suffix} > /dev/null 2>&1
	done

	echo "adding all object code to ${lib_prefix}${prog_name}_all${compile_suffix}.${static_lib_suffix} ..."

	ar r ${lib_prefix}${prog_name}_all${compile_suffix}.${static_lib_suffix} *.o > /dev/null 2>&1

	/bin/mv -f ${lib_prefix}${prog_name}_all${compile_suffix}.${static_lib_suffix} ${sys_lib_dir}/${lib_prefix}${prog_name}_all${compile_suffix}.${static_lib_suffix}

	chmod 0644 ${sys_lib_dir}/${lib_prefix}${prog_name}_all${compile_suffix}.${static_lib_suffix}

	/bin/rm -rf ${tmp_dir}

	cd ${start_dir}
}
