thanks very much. it seems that if something appeared in the same place in a Makefile, they are not ordered. ex. if they are both dependencies of a target.
currently, the problem is solved by using BUILT_SOURCES and/or manual rules for sources. as you mentioned. if automake accept userdefined rule to be act as builtin primaries, it will be a wonderful thing. or if automake populate the macro it used to canonicalize macro names for user use is not bad too.