╔════════════════════════════════════════════════════════════════╗
║  Rebuilding db_tool and GUI from Source                       ║
╚════════════════════════════════════════════════════════════════╝

If the precompiled binaries don't work on your system (due to
architecture mismatch or library incompatibilities), you can
rebuild from source.

REQUIREMENTS:
─────────────────────────────────────────────────────────────────

  For db_tool (main daemon):
    $ sudo apt-get install build-essential

  For db_tool_monitor (GUI):
    $ sudo apt-get install build-essential libgtk-3-dev

This installs: gcc, make, GTK3 development headers

REBUILD STEPS (Both Programs):
─────────────────────────────────────────────────────────────────

1. Go to source directory:
   $ cd /usr/local/share/linuxcnc-db-tool/src

2. Compile both:
   $ make

   This builds:
   - db_tool (main daemon)
   - db_tool_monitor (GUI, if GTK3 available)

3. Install the new binaries:
   $ sudo cp db_tool /usr/local/bin/
   $ sudo chmod 755 /usr/local/bin/db_tool

   If GUI was built:
   $ sudo cp db_tool_monitor /usr/local/bin/
   $ sudo chmod 755 /usr/local/bin/db_tool_monitor

4. Test:
   $ db_tool --help
   $ db_tool_monitor

MANUAL COMPILATION (without Make):
─────────────────────────────────────────────────────────────────

db_tool (main daemon):
  $ cd /usr/local/share/linuxcnc-db-tool/src
  $ gcc -Wall -Wextra -O2 -pthread -o db_tool db_tool.c -pthread -lm
  $ sudo cp db_tool /usr/local/bin/
  $ sudo chmod 755 /usr/local/bin/db_tool

db_tool_monitor (GUI):
  $ cd /usr/local/share/linuxcnc-db-tool/src
  $ gcc -Wall -Wextra -O2 `pkg-config --cflags gtk+-3.0` \
      -o db_tool_monitor db_tool_monitor.c \
      `pkg-config --libs gtk+-3.0` -lm
  $ sudo cp db_tool_monitor /usr/local/bin/
  $ sudo chmod 755 /usr/local/bin/db_tool_monitor

WHEN TO REBUILD:
─────────────────────────────────────────────────────────────────

• Binary won't run (architecture mismatch)
• Library version incompatibility errors
• Want to modify the source code
• Need debug symbols (add -g flag to gcc)
• GUI won't start (GTK3 version mismatch)

TROUBLESHOOTING:
─────────────────────────────────────────────────────────────────

"gcc: command not found"
  → Install: sudo apt-get install build-essential

"cannot find -lpthread"
  → Usually part of libc, check: ldconfig -p | grep pthread

Compilation errors:
  → Check gcc version: gcc --version (need 4.8+)
  → Try without optimizations: remove -O2 flag

SOURCE FILES INCLUDED:
─────────────────────────────────────────────────────────────────

  db_tool.c  - Main source code (~600 lines)
  Makefile   - Build instructions

╚════════════════════════════════════════════════════════════════╝
