Major build system overhaul implementing modern Unix build standards:
Build System Features:
- Add DESTDIR support for package building staging
- Add PREFIX, BINDIR, LIBDIR, INCLUDEDIR, MANDIR variables
- Add CC, CXX, CFLAGS, CXXFLAGS, LDFLAGS support
- Implement proper variable propagation to all sub-makefiles
- Add automatic manual page installation
- Add library and header installation for development
Files Modified:
- Makefile: Complete rewrite with modern variable handling
- build.sh: Enhanced with environment variable propagation
- libhfs/Makefile*: Added DESTDIR and compiler variable support
- librsrc/Makefile*: Added DESTDIR and compiler variable support
- hfsck/Makefile*: Added DESTDIR and compiler variable support
- libhfs/os/unix.c: Fixed include issues for modern systems
Documentation:
- Add BUILD.md: Comprehensive build system documentation
- Add CHANGELOG.md: Consolidated version history (replaces CHANGES)
- Update COPYRIGHT: Consolidated license info (replaces COPYING)
- Add TEST_RESULTS.md: Build system test verification
- Update README.md: New build system features and documentation links
Testing & Validation:
- Add validate_build.sh: Build system validation script
- Add test_build.sh: Usage examples and testing script
- All tests pass on WSL/Ubuntu environment
Backward Compatibility:
- All existing build commands continue to work
- Enhanced functionality without breaking changes
- Optional traditional command symlinks maintained
Package Manager Support:
- Standard DESTDIR enables clean deb/rpm packaging
- Proper FHS-compliant directory layout
- Cross-compilation support via compiler variables
This modernization enables hfsutils to work with standard Unix build
tools and package managers while maintaining full backward compatibility.
We're getting closer to these macros actually working!! 😻
The generated ./configure now runs without any errors, but it looks like
it's time to set my sights on de-crustifying the Automake stuffs...