This paper presents an automated method that deals with termination of constraint logic programs in two steps. First, the method infers a set of potentially terminating classes (using approximation techniques and boolean mu-calculus). By \potentially", we mean that for each of these classes, one can nd a static order over the literals of the clauses of the program to ensure termination. Then, given a terminating class among those computed at the rst step, the second step consists of a \compilation" of the original program to another one by reordering literals. For this new program, the universal left-termination of any query of the considered class is guaranteed. The method has been implemented.