Skip to content

Remove legacy Makefiles and migrate fully to CMake#247

Merged
hecko merged 1 commit intomasterfrom
remove-makefiles-cmake-migration
Feb 5, 2026
Merged

Remove legacy Makefiles and migrate fully to CMake#247
hecko merged 1 commit intomasterfrom
remove-makefiles-cmake-migration

Conversation

@hecko
Copy link
Contributor

@hecko hecko commented Feb 5, 2026

  • 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

- 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.
Copilot AI review requested due to automatic review settings February 5, 2026 14:43
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment on lines +8 to 9
mkdir -p build && cd build && cmake3 .. && make rpmtar
rpmbuild -bs --define "_sourcedir $$HOME/rpmbuild/SOURCES" \
Copy link

Copilot AI Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot open a new pull request to apply changes based on this feedback

Copy link
Contributor

Copilot AI commented Feb 5, 2026

@hecko I've opened a new pull request, #248, to work on those changes. Once the pull request is ready, I'll request review from you.

@hecko hecko merged commit 6a8e364 into master Feb 5, 2026
17 checks passed
@hecko hecko deleted the remove-makefiles-cmake-migration branch February 5, 2026 15:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants