There is already an accepted answer, however, I am going to offer a different answer. There are things you need to do to support proper child theme functionality.
First and foremost, work within the WordPress template hierarchy. I have seen themes do strange things and cook up non-standard templating structures. It isn't even necessary to use any of the WordPress theme system to display content if you really really don't want to. Resist the urge to do any of that.
Second, load files that should be replaceable with
locate_template() and not with PHP's
require. Files loaded with
locate_template() part can be replaced by child themes. Files loaded by
Third, use get_template_directory(), get_template_directory_uri(), get_stylesheet_directory(), and get_stylesheet_directory_uri() appropriately.
You probably also want to register and enqueue your scripts and stylesheets with
If you do those things the theme should be pretty pretty child-theme friendly.
Put another way, if you are doing things right in the first place you shouldn't have to do anything special to have a child-theme friendly theme.