libglui / glui

GLUI is a GLUT-based C++ user interface library which provides controls such as buttons, checkboxes, radio buttons, and spinners to OpenGL applications. It is window-system independent, using GLUT or FreeGLUT.
Other
194 stars 82 forks source link

"makefile" What is it exactly? CMake clobbers it. Why is it here? #108

Closed m-7761 closed 5 years ago

m-7761 commented 5 years ago

https://raw.githubusercontent.com/libglui/glui/master/makefile

Why is this file maintained? I've renamed it to makefile.zip because this is standard file name that isn't compatible with CMake. It's also a problem that it's lowercase on Windows, because it gets erased from the working copy when overwritten with the more standard "Makefile" name.

Sure it can bypass CMake? But is it needed to support any platforms the CMake script cannot (Apple?) because it has some Commits in the history, but is generally a nuisance.

nigels-com commented 5 years ago

GNU Make is an old-school build system still widely used for Linux and other UNIX software. For more details: https://www.gnu.org/software/make/

Recommended practice for cmake is to build out of source, or in a subdirectory named build.

Such as:

mkdir build
cd build
cmake ..
make

There does tend to be some confusion that there can be a project maintained Makefile along with a cmake-generated Makefile. For small projects such as GLUI GNU make tends to be adequate, but admittedly exotic for the uninitiated.

With the proliferation of GNU make alternatives nowadays there does tend to be a demand of projects to support this, that and everything. I tend to treat the GNU make build as the one that must-not-break, ever. It has the one merit of being rock solid stable and reliable, and available nearly everywhere.