orangeduck/mpc

Increase compiler portability

HalosGhost opened this issue · 2 comments

While it is true that mpc.h is used by various rules, having that header specifically listed in the dependencies can cause issues with some compilers (namely, tcc) as the dependencies are all being passed on the compiler command line.

Is there any issue (e.g., on Windows) with removing mpc.h from the dependencies in the Makefile?

If not, then I can make that change along with a couple other small ones and we should be able to have complete compatibility with tcc/clang/gcc/cc/msvc.

The main thing is that if you remove mpc.h from the dependencies then changes to mpc.h will not cause mpc.c to recompile which can occasionally cause some odd bugs. Perhaps there is an option in Make to list mpc.h as a dependency but not include it in the files passed to the compiler. I think that should work on all platforms/compilers.

That's definitely doable. Just needs a filter. I will try to make a PR tonight.