With directory layout differences between Red Hat, Debian, Suse and other distros one needs to set the variables for the elements below -----------------+------------------+---------------+----------------+ | Red Hat | Debian | Suse | -----------------+------------------+---------------+----------------+ CONFIG_LEAF_DIR | sysconfig | default | sysconfig | INITD_DIR | /etc/rc.d/init.d | /etc/init.d | /etc/init.d | -----------------+------------------+---------------+----------------+ The existence of these directories are tested at build-time (on the build host, via the "setvar_dir" macro in Config.mk) and for some scripts at run-time. If the Red Hat directory exists, it is used; otherwise the Debian one is used. The INITD_DIR path can be changed with configure --with-initddir=DIR. The CONFIG_LEAF_DIR name can be changed with configure --with-sysconfig-leaf-dir=SUBDIR. To add support for new distributions that don't use the above locations, one must grep for the above elements and add appropriate checks. For example if a new distro uses /etc/bork as its config dir, it's not sufficient to set CONFIG_LEAF_DIR=bork; one must also add tests for the existence of the bork dir in every context where config files are read.