Branch :
#!/bin/sh
## kc3
## Copyright from 2022 to 2025 kmx.io <contact@kmx.io>
##
## Permission is hereby granted to use this software granted the above
## copyright notice and this permission paragraph are included in all
## copies and substantial portions of this software.
##
## THIS SOFTWARE IS PROVIDED "AS-IS" WITHOUT ANY GUARANTEE OF
## PURPOSE AND PERFORMANCE. IN NO EVENT WHATSOEVER SHALL THE
## AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
## THIS SOFTWARE.
set -e
export SRC_TOP="$(dirname "$PWD")"
. ../../../../config.subr
PROG=kubz
PROG_ASAN=kubz_asan
PROG_COV=kubz_cov
PROG_DEBUG=kubz_debug
echo "PROG = $PROG" >> ${CONFIG_MK}
echo "PROG_ASAN = $PROG_ASAN" >> ${CONFIG_MK}
echo "PROG_COV = $PROG_COV" >> ${CONFIG_MK}
echo "PROG_DEBUG = $PROG_DEBUG" >> ${CONFIG_MK}
APP=kubz.app
APP_ASAN=kubz_asan.app
APP_COV=kubz_cov.app
APP_DEBUG=kubz_debug.app
echo "APP = $APP" >> ${CONFIG_MK}
echo "APP_ASAN = ${APP_ASAN}" >> ${CONFIG_MK}
echo "APP_COV = ${APP_COV}" >> ${CONFIG_MK}
echo "APP_DEBUG = ${APP_DEBUG}" >> ${CONFIG_MK}
update_build
update_build_objc
update_build_prog
build_lo
build_prog
APP_PROG="${APP}/Contents/MacOS/${PROG}"
APP_PROG_ASAN="${APP_ASAN}/Contents/MacOS/${PROG_ASAN}"
APP_PROG_COV="${APP_COV}/Contents/MacOS/${PROG_COV}"
APP_PROG_DEBUG="${APP_DEBUG}/Contents/MacOS/${PROG_DEBUG}"
echo "APP_PROG = $APP_PROG" >> ${CONFIG_MK}
echo "APP_PROG_ASAN = $APP_PROG_ASAN" >> ${CONFIG_MK}
echo "APP_PROG_COV = $APP_PROG_COV" >> ${CONFIG_MK}
echo "APP_PROG_DEBUG = $APP_PROG_DEBUG" >> ${CONFIG_MK}
echo >> ${CONFIG_MK}
echo "${APP_PROG}: ../.libs/${PROG}" >> ${CONFIG_MK}
echo " mkdir -p ${APP}/Contents/MacOS" >> ${CONFIG_MK}
echo " cp ../.libs/${PROG} ${APP_PROG}" >> ${CONFIG_MK}
BUNDLE_LIBS_COMMON="/opt/homebrew/lib/libSDL2.dylib"
BUNDLE_LIBS="${BUNDLE_LIBS_COMMON} ../../../../libkc3/.libs/libkc3.0.dylib ../../../.libs/libkc3_window.0.dylib ../../.libs/libkc3_window_sdl2.0.dylib"
echo >> ${CONFIG_MK}
echo "${APP}/Contents/Frameworks: ${BUNDLE_LIBS}" >> ${CONFIG_MK}
echo " mkdir -p ${APP}/Contents/Frameworks" >> ${CONFIG_MK}
echo " cp ${BUNDLE_LIBS} ${APP}/Contents/Frameworks/" >> ${CONFIG_MK}
for BUNDLE_LIB in ${BUNDLE_LIBS}; do
L=$(basename $BUNDLE_LIB)
echo " install_name_tool -id @executable_path/../Frameworks/ ${APP}/Contents/Frameworks/$L" >> ${CONFIG_MK}
echo " install_name_tool -change ${LIBDIR}/$L @executable_path/../Frameworks/$L ${APP}/Contents/MacOS/${PROG}" >> ${CONFIG_MK}
echo " DEPS=\$\$(otool -L '${BUNDLE_LIB}' | awk '/^\t.+(\/usr\/lib|\/System)/ { next } /^\t/ { print \$\$1 }'); for DEP in \$\${DEPS}; do D=\$\$(basename \"\$\${DEP}\"); if [ -f ${APP}/Contents/Frameworks/\$\$D ]; then install_name_tool -change \$\${DEP} @executable_path/../Frameworks/\$\$D ${APP}/Contents/Frameworks/$L; fi; done" >> ${CONFIG_MK}
done
echo >> ${CONFIG_MK}
echo ".PHONY: \\" >> ${CONFIG_MK}
echo " ${APP}/Contents/Frameworks" >> ${CONFIG_MK}
echo >> ${CONFIG_MK}
echo "${APP_PROG_ASAN}: ../.libs/${PROG_ASAN}" >> ${CONFIG_MK}
echo " mkdir -p ${APP_ASAN}/Contents/MacOS" >> ${CONFIG_MK}
echo " cp ../.libs/${PROG_ASAN} ${APP_PROG_ASAN}" >> ${CONFIG_MK}
BUNDLE_LIBS_ASAN="${BUNDLE_LIBS_COMMON} ../../../../libkc3/.libs/libkc3_asan.0.dylib ../../../.libs/libkc3_window_asan.0.dylib ../../.libs/libkc3_window_sdl2_asan.0.dylib"
echo >> ${CONFIG_MK}
echo "${APP_ASAN}/Contents/Frameworks: ${BUNDLE_LIBS_ASAN}" >> ${CONFIG_MK}
echo " mkdir -p ${APP_ASAN}/Contents/Frameworks" >> ${CONFIG_MK}
echo " cp ${BUNDLE_LIBS_ASAN} ${APP_ASAN}/Contents/Frameworks/" >> ${CONFIG_MK}
for BUNDLE_LIB in ${BUNDLE_LIBS_ASAN}; do
L=$(basename $BUNDLE_LIB)
echo " install_name_tool -id @executable_path/../Frameworks/ ${APP_ASAN}/Contents/Frameworks/$L" >> ${CONFIG_MK}
echo " install_name_tool -change ${LIBDIR}/$L @executable_path/../Frameworks/$L ${APP_ASAN}/Contents/MacOS/${PROG_ASAN}" >> ${CONFIG_MK}
echo " DEPS=\$\$(otool -L '${BUNDLE_LIB}' | awk '/^\t.+(\/usr\/lib|\/System)/ { next } /^\t/ { print \$\$1 }'); for DEP in \$\${DEPS}; do D=\$\$(basename \"\$\${DEP}\"); if [ -f ${APP_ASAN}/Contents/Frameworks/\$\$D ]; then install_name_tool -change \$\${DEP} @executable_path/../Frameworks/\$\$D ${APP_ASAN}/Contents/Frameworks/$L; fi; done" >> ${CONFIG_MK}
done
echo >> ${CONFIG_MK}
echo ".PHONY: \\" >> ${CONFIG_MK}
echo " ${APP_ASAN}/Contents/Frameworks" >> ${CONFIG_MK}
echo >> ${CONFIG_MK}
echo "${APP_PROG_COV}: ../.libs/${PROG_COV}" >> ${CONFIG_MK}
echo " mkdir -p ${APP_COV}/Contents/MacOS" >> ${CONFIG_MK}
echo " cp ../.libs/${PROG_COV} ${APP_PROG_COV}" >> ${CONFIG_MK}
BUNDLE_LIBS_COV="${BUNDLE_LIBS_COMMON} ../../../../libkc3/.libs/libkc3_cov.0.dylib ../../../.libs/libkc3_window_cov.0.dylib ../../.libs/libkc3_window_sdl2_cov.0.dylib"
echo >> ${CONFIG_MK}
echo "${APP_COV}/Contents/Frameworks: ${BUNDLE_LIBS_COV}" >> ${CONFIG_MK}
echo " mkdir -p ${APP_COV}/Contents/Frameworks" >> ${CONFIG_MK}
echo " cp ${BUNDLE_LIBS_COV} ${APP_COV}/Contents/Frameworks/" >> ${CONFIG_MK}
for BUNDLE_LIB in ${BUNDLE_LIBS_COV}; do
L=$(basename $BUNDLE_LIB)
echo " install_name_tool -id @executable_path/../Frameworks/ ${APP_COV}/Contents/Frameworks/$L" >> ${CONFIG_MK}
echo " install_name_tool -change ${LIBDIR}/$L @executable_path/../Frameworks/$L ${APP_COV}/Contents/MacOS/${PROG}" >> ${CONFIG_MK}
echo " DEPS=\$\$(otool -L '${BUNDLE_LIB}' | awk '/^\t.+(\/usr\/lib|\/System)/ { next } /^\t/ { print \$\$1 }'); for DEP in \$\${DEPS}; do D=\$\$(basename \"\$\${DEP}\"); if [ -f ${APP_COV}/Contents/Frameworks/\$\$D ]; then install_name_tool -change \$\${DEP} @executable_path/../Frameworks/\$\$D ${APP_COV}/Contents/Frameworks/$L; fi; done" >> ${CONFIG_MK}
done
echo >> ${CONFIG_MK}
echo ".PHONY: \\" >> ${CONFIG_MK}
echo " ${APP_COV}/Contents/Frameworks" >> ${CONFIG_MK}
echo >> ${CONFIG_MK}
echo "${APP_PROG_DEBUG}: ../.libs/${PROG_DEBUG}" >> ${CONFIG_MK}
echo " mkdir -p ${APP_DEBUG}/Contents/MacOS" >> ${CONFIG_MK}
echo " cp ../.libs/${PROG_DEBUG} ${APP_PROG_DEBUG}" >> ${CONFIG_MK}
BUNDLE_LIBS_DEBUG="${BUNDLE_LIBS_COMMON} ../../../../libkc3/.libs/libkc3_debug.0.dylib ../../../.libs/libkc3_window_debug.0.dylib ../../.libs/libkc3_window_sdl2_debug.0.dylib"
echo >> ${CONFIG_MK}
echo "${APP_DEBUG}/Contents/Frameworks: ${BUNDLE_LIBS_DEBUG}" >> ${CONFIG_MK}
echo " mkdir -p ${APP_DEBUG}/Contents/Frameworks" >> ${CONFIG_MK}
echo " cp ${BUNDLE_LIBS_DEBUG} ${APP_DEBUG}/Contents/Frameworks/" >> ${CONFIG_MK}
for BUNDLE_LIB in ${BUNDLE_LIBS_DEBUG}; do
L=$(basename $BUNDLE_LIB)
echo " install_name_tool -id @executable_path/../Frameworks/ ${APP_DEBUG}/Contents/Frameworks/$L" >> ${CONFIG_MK}
echo " install_name_tool -change ${LIBDIR}/$L @executable_path/../Frameworks/$L ${APP_DEBUG}/Contents/MacOS/${PROG_DEBUG}" >> ${CONFIG_MK}
echo " DEPS=\$\$(otool -L '${BUNDLE_LIB}' | awk '/^\t.+(\/usr\/lib|\/System)/ { next } /^\t/ { print \$\$1 }'); for DEP in \$\${DEPS}; do D=\$\$(basename \"\$\${DEP}\"); if [ -f ${APP_DEBUG}/Contents/Frameworks/\$\$D ]; then install_name_tool -change \$\${DEP} @executable_path/../Frameworks/\$\$D ${APP_DEBUG}/Contents/Frameworks/$L; fi; done" >> ${CONFIG_MK}
done
echo >> ${CONFIG_MK}
echo ".PHONY: \\" >> ${CONFIG_MK}
echo " ${APP_DEBUG}/Contents/Frameworks" >> ${CONFIG_MK}
update_config_mk