mirror of
https://github.com/Cacti/spine.git
synced 2026-10-23 03:27:10 +09:00
## What - move `keywords.c`/`.h` and `locks.c`/`.h` into `src/core/` - enable Automake `subdir-objects` for collision-safe nested object placement - update the Autotools binary, linked-test, standalone unit-test, and fuzz paths - make both cppcheck entry points share one complete nested-source discovery path - ignore nested Automake and Docker build artifacts - retain existing header include names and the Autotools build The four production source/header files are 100% renames with no content changes. The remaining changes are build and verification plumbing required by the new paths. ## Why Spine production sources currently live in the repository root. This starts the domain layout in a small, reviewable batch instead of repeating #523, where the source move was coupled to an 11k-line CMake/platform rewrite. `keywords` and `locks` were selected because active PRs #597 and #614 do not modify their implementation files; only shared build manifests overlap #597. `subdir-objects` is enabled in this first production move so future modules with the same basename cannot write the same top-level object under parallel builds. Closes #616. ## Verification - `./bootstrap` with no subdirectory-source warnings - `./configure --with-mysql=$(brew --prefix mariadb-connector-c) --with-snmp=$(brew --prefix net-snmp) CPPFLAGS=-I$(brew --prefix openssl@3)/include LDFLAGS=-L$(brew --prefix openssl@3)/lib` - warning-enabled `make -j$(sysctl -n hw.ncpu)`; project sources compile, with Homebrew Net-SNMP header warnings only - `make check` (cmocka unavailable to Autoconf locally; 0 local tests) - `make distcheck`; archive verified to contain all four `src/core` files - cppcheck source discovery verified under macOS Bash 3 and includes all four relocated files - standalone `tests/unit/Makefile` compiles through header resolution with `-I../../src/core` (the local macOS link retains unrelated existing client-library/toolchain issues) - GitHub checks pass, including fuzz, sanitizers, coverage, `distcheck`, gcc/clang, SNMPv3, and Rocky Linux The local macOS fuzz build reaches both relocated files, then fails identically on untouched `util.c` (`INT_MAX`) and Net-SNMP API declarations on both this branch and `develop`. Linux fuzz CI is the authoritative fuzz-build result. --------- Signed-off-by: Thomas Vincent <thomasvincent@gmail.com> Co-authored-by: TheWitness <thewitness@cacti.net>
39 lines
583 B
Plaintext
39 lines
583 B
Plaintext
# Keep the build context to sources and build-system inputs only.
|
|
#
|
|
# Build outputs must never enter the image: make would find them newer than
|
|
# the sources, skip compiling, and ship a binary linked against whatever
|
|
# libraries the host had.
|
|
|
|
.git/
|
|
.github/
|
|
.omc/
|
|
tests/
|
|
*.md
|
|
|
|
# autotools and compiler output
|
|
Makefile
|
|
Makefile.in
|
|
aclocal.m4
|
|
autom4te.cache/
|
|
compile_commands.json
|
|
config.h
|
|
config.log
|
|
config.status
|
|
configure
|
|
configure~
|
|
libtool
|
|
stamp-h1
|
|
**/.deps/
|
|
**/.dirstamp
|
|
**/.libs/
|
|
**/*.o
|
|
**/*.lo
|
|
**/*.la
|
|
**/*.gcda
|
|
**/*.gcno
|
|
**/*.log
|
|
**/*.tar.gz
|
|
|
|
# the built binary itself
|
|
/spine
|