Hallo,
I'm in the process of extending the debian/rules file to put more externals into Debian packages (into which package isn't decided yet, I'm currently using pd-externals for simplicity). New rules are attached, they now also build vasp and dfx.
One problem always occurs, and it isn't really solvable without help from you, the developers. I need to build all externals with a consistent set of compilers. Especially the C++ externals need a lot of care. That's why I "export CXX=the_compiler" before building all in one go. Now some makefiles overwrite my environmental choice with their own choice. I.e. they have something like:
CXX=g++
in their makefiles. This is really annoying. Currently this happens in some grill-externals, in dfx and in creb.
There is no need to define this variable as isn't for CC. Both are pre-defined by make anyways. From "info make":
-------<
Variables Used by Implicit Rules ================================
The commands in built-in implicit rules make liberal use of certain predefined variables. You can alter these variables in the makefile, with arguments to `make', or in the environment to alter how the implicit rules work without redefining the rules themselves. [...] `CC' Program for compiling C programs; default `cc'.
`CXX' Program for compiling C++ programs; default `g++'.
-------<
Now I could put "make CXX=xx" arguments inside the rules file, but I would need to do that for every new external in the library, that redefines the compilers. Normally I recognize that only, when loading the externals fails because the wrong compiler was used.
So here's my call to you developers:
1.) Please don't redefine CC and CXX! There's absolutely no need to. 2.) Please don't use non-standard variables like $(CPLUSPLUS)!
It makes building the externals muchmuch easier.
Thank you for your attentention.
ciao