One approach for a hierarchical architecture of a set of linear algebra libraries with self-optimisation capacity is shown. In previous works the optimisation of several routines was studied separately, and in this work the ideas applied to individual routines are combined with the classical hierarchy of linear algebra libraries. Each self-optimised library consists of the former routines of the library and additional special routines which obtain information of the characteristics on the system and tune certain parameters of the former routines accordingly. The relationship between libraries of the different levels of the hierarchy is also strengthened. Just as each routine has in its code different calls to lower levels, so this routine will use the self-optimisation information of these other routines to generate its own information. Experiments with routines of different levels and on different kinds of platforms with constant, variable and heterogeneous load have been carried out. The results obtained allow us to conclude that the proposed methodology is valid for obtaining self-optimised linear algebra libraries.