I wonder I write :depends in rcp when they are emacs built-in elisp like ruby-mode, cl, cperl-mode.
What should I do?
It's only necessary if currently used versions of Emacs didn't have the feature yet and you want to enable users of said version to install it as an extension. See the package.rcp recipe for an example of that. So you depend on the other recipe and add it with :builtin .