1. 7
  1.  

  2. 8

    Looks too complicated to be a useful starting point for anyone not comfortable writing their own Makefile. I think make(1) should be studied in the same way one studies sh(1), yacc(1) etc. Once the main points are understood it is fairly trivial to write a minimal Makefile that gets the job done.

    1. 1

      Yep. The whole mess was started at the time I was not quite enjoying makefile. easymake has gave me some sweet time. It’s not quit generic or extensible, though.

    2. 3

      https://github.com/roxma/easymake/blob/master/easymake.mk#L24

      These should be cc and c++ not gcc and g++.

      1. 1

        Good to know! Wierd, CXX is g++ by default, from the gnu make manual

        1. 2

          Yep, just noting cc/c++ are a better option so that people don’t need to expect gcc.

          Unless of course you’re trying to require gcc or say clang, but I’d leave that up to the users.

      2. 2

        Sorry to nitpick, but that’s pretty complicated for what it’s trying to do, and I’m not sure there’s a need for it.

        For really simple things, like one off test programs, I have a ~10 line Makefile I copy and modify. It’s nothing fancy, but it points to some libraries I’ve installed by hand outside the system include/library locations, and has compiler flags I use often, etc. Basic Makefile syntax for simple apps is straightforward enough that it doesn’t really need anything complicated, I only use the copy/modify approach to save 5 minutes typing it up and double checking paths.

        For anything more complicated, like bigger projects with lots of dependencies, I prefer CMake. It would be more work for me to use this easymake than it would be to just use CMake.

        1. 1

          Yes, it’s rather complicated. I tried simplifying the code for a while, but it’s still complicated with 200+ lines. That’s why I'v added a NOTICE int the README.md before.

          I don’t know much about cmake. However, easymake has helped me build some applications in the last company I served, Because unfortunately the team only use make instead of cmake in the ci system.