Task 1: Migrate to GNU Autotools - Add configure.ac, Makefile.am files (root, src, u_async, tests) - Add autogen.sh bootstrap script - Create INSTALL.autotools guide - Update .gitignore for autotools - Old Makefile backed up as Makefile.old Task 2: Refactor typedef struct → struct STRUCT_NAME - Remove 24 of 28 typedef struct declarations - Convert to struct STRUCT_NAME pattern per AGENTS.md - Files affected: routing, memory_pool, packet_buffer/pool, tun_if, etcp_sockets/connections, config_parser, pkt_normalizer, secure_channel, utun_instance, etcp - Code now 86% compliant with AGENTS.md style guide Task 3: Clean up legacy tests - Remove 7 obsolete test files (connection*, sc_lib, udp_secure, etc.) - Update 4 test files to new API (epkt_t → struct ETCP_CONN) - Clean Makefile of legacy references - Test suite reduced from 17 to 10 focused tests Task 4: Replace fprintf with debug system - Replace 60 fprintf(stderr) calls with DEBUG_ERROR/WARNING macros - Add debug_config.h includes to all modified files - Use appropriate DEBUG_CATEGORY_* for each error type - Debug output now runtime-configurable Impact: 32 files modified, ~350 lines changed, all 4 tasks complete, build system modernized, code follows AGENTS.md, debugging improved.
35 lines
1.0 KiB
Plaintext
35 lines
1.0 KiB
Plaintext
BUILDING WITH GNU AUTOTOOLS
|
|
===========================
|
|
|
|
Prerequisites:
|
|
- GNU Autotools (autoconf, automake, libtool)
|
|
- C compiler (gcc or clang)
|
|
- OpenSSL development libraries
|
|
- Linux kernel headers (for TUN/TAP)
|
|
|
|
Quick Build:
|
|
./autogen.sh # Only needed first time
|
|
./configure # Configure build
|
|
make # Build everything
|
|
make check # Run tests
|
|
sudo make install # Install to system
|
|
|
|
Configuration Options:
|
|
--prefix=PATH Install prefix (default: /usr/local)
|
|
--enable-debug Enable debug output
|
|
--disable-tests Skip test compilation
|
|
CFLAGS="-O2" Set custom compiler flags
|
|
|
|
Files Generated:
|
|
configure - Configuration script
|
|
config.h - Configuration header
|
|
Makefile - Build rules
|
|
config.log - Configuration log
|
|
config.status - Configuration status
|
|
|
|
Maintainers:
|
|
To update build system after changes:
|
|
autoreconf -fiv
|
|
|
|
For more info: https://www.gnu.org/software/automake/manual/
|