Remove legacy Makefiles and migrate fully to CMake#247
Conversation
- Add cmake/cpack-source.cmake for source tarball generation (rpmtar target) - Add cmake/doxygen.cmake for documentation targets (doc, fulldoc) - Update Dockerfiles to use CMake for tarball generation - Update .copr/Makefile to use CMake - Remove 142 legacy Makefiles (only .copr/Makefile remains) - Remove obsolete .travis.yml (GitHub Actions is used) - Update all documentation to reference CMake options - Clean up .gitignore and pkg/deb install files CMake was already the primary build system; this removes the legacy Makefile-based build that was only used for tarball generation.
There was a problem hiding this comment.
Pull request overview
This pull request completes the migration from GNU Make to CMake as SEMS' build system by removing 142 legacy Makefiles and updating all documentation and build processes.
Changes:
- Added CMake modules for documentation generation (cmake/doxygen.cmake) and source tarball creation (cmake/cpack-source.cmake)
- Updated all documentation files to reference CMake build commands instead of Make
- Removed legacy Makefiles from core, apps, and tools directories
- Updated Docker build files and .copr/Makefile to use CMake for tarball generation
- Cleaned up .gitignore to remove Makefile-related entries and add CPack entries
- Removed obsolete .travis.yml (GitHub Actions is now used)
- Updated pkg/deb install files to remove Makefile references
Reviewed changes
Copilot reviewed 177 out of 178 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| cmake/doxygen.cmake | New file adding 'doc' and 'fulldoc' targets for Doxygen documentation generation |
| cmake/cpack-source.cmake | New file adding 'rpmtar' and 'package_source' targets for source tarball creation |
| CMakeLists.txt | Updated to include new cmake modules for doxygen and cpack-source |
| Dockerfile-rhel7/8/9/10 | Updated to use CMake (cmake3 for RHEL7/8/9, cmake for RHEL10) for tarball generation |
| .copr/Makefile | Updated to use CMake for tarball generation in COPR builds |
| Makefile (root) | Removed legacy root Makefile |
| Makefile.defs | Removed legacy Makefile definitions file |
| core/Makefile, apps/Makefile, tools/Makefile | Removed legacy build files |
| 139+ other Makefiles | Removed from apps/, core/plug-in/, core/sip/, core/tests/, etc. |
| doc/COMPILING | Completely rewritten with CMake-focused instructions |
| doc/Makefile | Removed (replaced by cmake/doxygen.cmake) |
| doc/.txt, doc/src/.h | Updated to reference CMake commands instead of Make |
| core/AmConfig.cpp | Removed Makefile.defs reference from warning message |
| core/etc/sems.conf.sample | Updated comments to reference CMake options |
| core/compat/solaris.h | Updated comment to reference CMakeLists.txt instead of Makefile.defs |
| pkg/deb/*/libsems1-dev.install | Removed Makefile.* file references from Debian package install lists |
| .gitignore | Removed Makefile-related entries, added CPack-related entries |
| .travis.yml | Removed obsolete Travis CI configuration |
| README.md | Updated documentation generation instructions to use CMake |
| apps/examples/out_of_tree/Readme.myapp | Updated with CMake-based build instructions |
| apps/examples/ivr_examples/db_balance.py | Updated comment to reference CMake option |
| apps/sbc/call_control/template/Readme.cc_template.txt | Updated to reference CMakeLists.txt |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| mkdir -p build && cd build && cmake3 .. && make rpmtar | ||
| rpmbuild -bs --define "_sourcedir $$HOME/rpmbuild/SOURCES" \ |
There was a problem hiding this comment.
The shell command on line 8 creates a subshell with the cd build command, which means the rpmbuild command on line 9 will run in the original directory, not the build directory. This could cause the rpmtar target to fail if it needs to run from the build directory, or the rpmbuild command may not find the generated tarball. Consider using a compound command with parentheses or adjusting the logic to ensure proper directory handling.
There was a problem hiding this comment.
@copilot open a new pull request to apply changes based on this feedback
CMake was already the primary build system; this removes the legacy Makefile-based build