You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue is related to MayaPosch/NymphCast#90. I personally believe that all of the issues below could be easily solved by using an alternative build system such as Meson instead of Make.
using custom compilers such as clang++ is impossible
NymphRPC cannot build on distributions/build environments which distribute dependencies in nonstandard ways (I have verified that NymphRPC is not buildable under Nix, I assume that it isn't buildable under GNU Guix and other systems too)
NymphRPC hardcodes a lot of programs (which can again causes problems on Nix, GNU Guix...)
tar is hardcoded, making it impossible to use other compatible archivers (bsdtar etc.)
install is hardcoded, which directly violates recommendations of the GNU Make manual
and there are more hardcoded utilities
CXXFLAGS are ignored even though CFLAGS have special handling, which is peculiar for a C++-only project
user supplied CFLAGS aren't placed last in CFLAGS (or even close to the end), which directly violates GNU Make manual's recommendations
these and other choices made in the Makefile severely hinder portability of NymphRPC, because a lot of platform dependent assumptions are made and there is no way to externally override them
Recommended course of action
use compiler ($CXX) from the environment instead of hardcoding g++
some platform dependent code will require further consideration if this change is implemented, like this block
follow advice from Variables for Specifying Commands and make tar, install, g++, ar and possibly more configurable from the environment
ignore CFLAGS and inherit CXXFLAGS from the environment instead
put user defined CXXFLAGS after all hardcoded flags (or at least near the end behind-O0 and -g3)
I could whip up some PR which would fix these problems, but I don't think I have the capacity to fully test the build system, because NymphRPC seems to target many platforms.
The text was updated successfully, but these errors were encountered:
Thanks for addressing this issue. I still have my WIP Makefile changes in my local checkout (I kind of forgot about this issue & there were some blockers such as #11), I could make a PR from it.
This issue is related to MayaPosch/NymphCast#90. I personally believe that all of the issues below could be easily solved by using an alternative build system such as Meson instead of Make.
NymphRPC's Makefile doesn't follow Makefile best practices defined in the GNU Make manual: https://www.gnu.org/software/make/manual/make.html#Makefile-Conventions
Problems caused by this
clang++
is impossibletar
is hardcoded, making it impossible to use other compatible archivers (bsdtar etc.)install
is hardcoded, which directly violates recommendations of the GNU Make manualCXXFLAGS
are ignored even thoughCFLAGS
have special handling, which is peculiar for a C++-only projectCFLAGS
aren't placed last inCFLAGS
(or even close to the end), which directly violates GNU Make manual's recommendationsCFLAGS
kinda uselessRecommended course of action
$CXX
) from the environment instead of hardcodingg++
tar
,install
,g++
,ar
and possibly more configurable from the environmentCFLAGS
and inheritCXXFLAGS
from the environment insteadCXXFLAGS
after all hardcoded flags (or at least near the end behind-O0
and-g3
)I could whip up some PR which would fix these problems, but I don't think I have the capacity to fully test the build system, because NymphRPC seems to target many platforms.
The text was updated successfully, but these errors were encountered: