Autocompat Demo
===============

This directory contains two simple libraries used to demonstrate
the autocompat compatibility library generator.

Source Files:
  src/calculator.h      - Calculator library interface
  src/calc_basic.c      - Basic arithmetic (add, sub)
  src/calc_advanced.c   - Advanced arithmetic (mul, div, mod, power)
  src/strutils.h        - String utility library interface
  src/strutils.c        - String operations (length, compare, reverse, count)
  symbols.map           - Symbol mapping for autocompat
  rules.sym             - Symbol filtering rules
  ignore_search.dirs    - Directories to skip during object file search

Quick Start:

  Run the demo script (autocompat must be installed or path specified):

     ./run_demo.sh
     ./run_demo.sh /path/to/autocompat

Manual Steps:

  1. Build the demo libraries and object files:

     mkdir -p build/calc build/str
     gcc -c -fPIC -I src src/calc_basic.c -o build/calc/calc_basic.o
     gcc -c -fPIC -I src src/calc_advanced.c -o build/calc/calc_advanced.o
     gcc -c -fPIC -I src src/strutils.c -o build/str/strutils.o
     gcc -shared -Wl,-soname,libcalculator.so.1 \
         -o build/libcalculator.so.1.0.0 \
         build/calc/calc_basic.o build/calc/calc_advanced.o
     gcc -shared -Wl,-soname,libstrutils.so.1 \
         -o build/libstrutils.so.1.0.0 \
         build/str/strutils.o

  2. Run autocompat to generate compatibility libraries:

     autocompat -m symbols.map -b build -o output -f

  3. Check the generated libraries:

     ls -la output/
     nm -D output/libkycompat-libcalculator.so.1.0.0
     nm -D output/libkycompat-libstrutils.so.1.0.0
