Edit

kc3-lang/kubz/macos/configure

Branch :

  • macos/configure
  • #!/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