if this isn't a typo, then "create(...)" should be "ent_create"....try that.
But more importantly is your define logic structure....you have Ifdef client before ifdef server. Hence, when you run the client alone, it gets past the first ifdef, but rejected by the second one since the pure client defininiton won't activate the ifdef server.
Split your code into server-specific instruction and client-specific instructions...ie drop the ifelse.
Something like this:
ifdef server;
do_server_something()
endif;
ifdef client;
do_something_client:
endif:
This will mean that the -cl -sv instantiation runs right and thenthe -cl alone instantiation won't bother with teh server code.