How to pass user defined parameters to rpmbuild to fill variables
rpmbuild -bb --define '_foobar Foo' somespecfile.spec
and refer it within the spec as %{_foobar}
(the _ is a convention, not a must)
could add this into the SPEC file:
%define _topdir %(echo $PWD)/
The closest you can get AFAIK are conditional builds, which allow you to do things like
rpmbuild -ba newpackage.spec --with feature
see http://rpm.org/user_doc/conditional_builds.html .