makefile: append to CFLAGS using variables

this changes the override definition of CFLAGS to use two new variables: cc_gen
for code generation options and cc_xsi for defining the posix feature test
macro. also, -fPIC is now used for all targets by default since it can be
turned off as needed by clearing cc_gen.