Modernizing GNU Make's Meta Log System
DOI:
https://doi.org/10.22399/ijcesen.4897Keywords:
Build System Observability, GNU Make Modernization, Meta-Log Architecture, Dependency Tracking, System-Call MonitoringAbstract
For larger software projects, it is increasingly important that builds are visible and auditable. While GNU Make can be used for both legacy and modern projects, it has historically offered limited visibility of command executions, dependency evaluations, and file system accesses. Additionally, this inhibits debugging, reproducible builds, and optimization for improved performance. This article presents a complete rethink of GNU Make based upon an improved meta-log system. This enables us to transform it from a rule executor to a build engine with rich observability of its inner workings and performance. Information in the meta-log provides observability across several axes: command executions with full arguments, working directories (for path resolution), state transitions of dependencies (with change indicators), captured output streams, and detailed analysis of use of the file system via system-call monitoring. The modular architecture allows for separation of command logging, dependency state tracking, and behavioral file access analysis. Their respective observability capabilities can be enabled or disabled as needed for diagnostics or performance considerations. The tool configuration allows a range of observability/overhead, including disabling globally in production builds, targeting specific source files with detailed tracing, and masking the program behavior of non-target programs. The tool has produced substantial benefit in practice, substantially reducing the required proof effort and having stable performance. The tool has also detected bugs with little training. Taking cues from distributed data processing systems, an augmented meta-log can offer modern build-level requirements like reproducibility across machines, distributed build coordination, and smart automation. Implementation studies show that while logging all operations adds important overhead for I/O-heavy workloads, the log's size can be considerably reduced through smart instrumentation without sacrificing its diagnostic value. Such modernization brings GNU Make up to parity with other modern build systems while keeping the original intent of being lightweight and extensible, which has kept it in use for the last 40 years of software engineering development.
References
[1] Dongjie He et al., "Understanding and Detecting Evolution-Induced Compatibility Issues in Android Apps," ACM Digital Library, 2018. Available: https://dl.acm.org/doi/10.1145/3238147.3238185
[2] Shane McIntosh et al., "An Empirical Study of Build Maintenance Effort," IEEE Xplore, 2011. Available: https://ieeexplore.ieee.org/document/6032453
[3] Cor-Paul Bezemer et al., "An Empirical Study of Unspecified Dependencies in Make-Based Build Systems," Springer Nature Link, 2017. Available: https://link.springer.com/article/10.1007/s10664-017-9510-8
[4] Bogdan Vasilescu et al., "Quality and Productivity Outcomes Relating to Continuous Integration in GitHub," ACM Digital Library, 2015. Available: https://dl.acm.org/doi/10.1145/2786805.2786850
[5] Philip J. Guo and Dawson Engler, "CDE: Using System Call Interposition to Automatically Create Portable Software Packages," USENIX, 2011. Available: https://www.usenix.org/legacy/events/atc11/tech/final_files/GuoEngler.pdf
[6] Kaustubh Jain et al., "User-Level Infrastructure for System Call Interposition: A Platform for Intrusion Detection and Confinement", Network and Distributed Systems Security Symposium (NDSS), 2000. Available: User-Level Infrastructure for System Call Interposition: A Platform for Intrusion Detection and Confinement
[7] Weiyi Shang et al., "Assisting Developers of Big Data Analytics Applications When Deploying on Hadoop Clouds," Research Gate, 2013. Available: https://www.researchgate.net/publication/261120431
[8] Qingwei Lin et al., "Log Clustering Based Problem Identification for Online Service Systems," ACM Digital Library, 2016. Available: https://dl.acm.org/doi/epdf/10.1145/2889160.2889232
[9] Mansaf Alam et al., "Big Data Analytics in Cloud Environment Using Hadoop," arXiv, 2015. Available: https://arxiv.org/pdf/1610.04572
[10] Chris Egersdoerfer et al., "ClusterLog: Clustering Logs for Effective Log-based Anomaly Detection," Proceedings of IEEE International Conference on Big Data (Big Data), 2022. Available: https://daidong.github.io/files/clusterlog-ftxs22.pdf
Downloads
Published
How to Cite
Issue
Section
License
Copyright (c) 2025 International Journal of Computational and Experimental Science and Engineering

This work is licensed under a Creative Commons Attribution 4.0 International License.