configure

changeset 280
7845f5872bed
parent 253
6ab35fcb8676
--- a/configure	Thu Oct 09 19:22:21 2025 +0200
+++ b/configure	Mon Oct 13 21:37:42 2025 +0200
@@ -112,6 +112,7 @@
 
 Optional Features:
   --enable-asan           Enable address sanitization.
+  --enable-tools          Enable compilation of tools.
 
 __EOF__
 }
@@ -152,6 +153,7 @@
 if true \
       ; then
     SRCDIR=`pwd`
+    TOOLKIT_HOME="${TOOLKIT_HOME:=/usr}"
 fi
 
 # features
@@ -183,6 +185,8 @@
         "--release")          BUILD_TYPE="release" ;;
         "--enable-asan") FEATURE_ASAN=on ;;
         "--disable-asan") unset FEATURE_ASAN ;;
+        "--enable-tools") FEATURE_TOOLS=on ;;
+        "--disable-tools") unset FEATURE_TOOLS ;;
         "-"*) echo "unknown option: $ARG"; abort_configure ;;
     esac
 done
@@ -343,6 +347,64 @@
     dep_checked_sdl3_ttf=1
     return 0
 }
+dependency_error_gtk3()
+{
+    print_check_msg "$dep_checked_gtk3" "checking for gtk3... "
+    # dependency gtk3
+    while true
+    do
+        if [ -z "$PKG_CONFIG" ]; then
+            break
+        fi
+        if test_pkg_config "gtk+-3.0" "" "" "" ; then
+            TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags gtk+-3.0`"
+            TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs gtk+-3.0`"
+        else
+            break
+        fi
+        TEMP_CFLAGS="$TEMP_CFLAGS -DUI_GTK3"
+        TEMP_LDFLAGS="$TEMP_LDFLAGS -lpthread"
+        print_check_msg "$dep_checked_gtk3" "yes\n"
+        dep_checked_gtk3=1
+        return 1
+    done
+
+    print_check_msg "$dep_checked_gtk3" "no\n"
+    dep_checked_gtk3=1
+    return 0
+}
+dependency_error_toolkit()
+{
+    print_check_msg "$dep_checked_toolkit" "checking for toolkit... "
+    # dependency toolkit
+    while true
+    do
+        if test -n "$TOOLKIT_HOME" > /dev/null ; then
+            :
+        else
+            break
+        fi
+        if test -f "$TOOLKIT_HOME/lib/libuitk.a" > /dev/null ; then
+            :
+        else
+            break
+        fi
+        if test -f "$TOOLKIT_HOME/include/ui/ui.h" > /dev/null ; then
+            :
+        else
+            break
+        fi
+        TEMP_CFLAGS="$TEMP_CFLAGS -I$TOOLKIT_HOME/include"
+        TEMP_LDFLAGS="$TEMP_LDFLAGS $TOOLKIT_HOME/lib/libuitk.a"
+        print_check_msg "$dep_checked_toolkit" "yes\n"
+        dep_checked_toolkit=1
+        return 1
+    done
+
+    print_check_msg "$dep_checked_toolkit" "no\n"
+    dep_checked_toolkit=1
+    return 0
+}
 dependency_error_glew()
 {
     print_check_msg "$dep_checked_glew" "checking for glew... "
@@ -555,6 +617,52 @@
     echo "LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk"
 fi
 
+echo >> "$TEMP_DIR/flags.mk"
+echo "configuring target: tools"
+echo "# flags for target tools" >> "$TEMP_DIR/flags.mk"
+TEMP_CFLAGS=
+TEMP_CXXFLAGS=
+TEMP_LDFLAGS=
+
+if dependency_error_toolkit; then
+    DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED toolkit "
+    ERROR=1
+fi
+if dependency_error_gtk3; then
+    DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED gtk3 "
+    ERROR=1
+fi
+if dependency_error_ucx; then
+    DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED ucx "
+    ERROR=1
+fi
+
+# Features
+if [ -n "$FEATURE_TOOLS" ]; then
+    if [ -n "$DISABLE_FEATURE_TOOLS" ]; then
+        unset FEATURE_TOOLS
+    fi
+fi
+if [ -n "$FEATURE_TOOLS" ]; then
+    :
+else
+    :
+    cat >> "$TEMP_DIR/make.mk" << __EOF__
+NO_TOOLS=1
+__EOF__
+fi
+
+
+if [ -n "${TEMP_CFLAGS}" ] && [ -n "$lang_c" ]; then
+    echo "TOOLS_CFLAGS  += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk"
+fi
+if [ -n "${TEMP_CXXFLAGS}" ] && [ -n "$lang_cpp" ]; then
+    echo "TOOLS_CXXFLAGS  += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk"
+fi
+if [ -n "${TEMP_LDFLAGS}" ]; then
+    echo "TOOLS_LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk"
+fi
+
 
 # final result
 if [ $ERROR -ne 0 ]; then
@@ -633,6 +741,11 @@
 else
 echo "  asan: off"
 fi
+if [ -n "$FEATURE_TOOLS" ]; then
+echo "  tools: on"
+else
+echo "  tools: off"
+fi
 echo
 
 # generate the config.mk file

mercurial