I would like to know what are the conditions under which the basic EFLAGS flags (CF, ZF, OF, SF...) are set. I have looked into the Intel x86 instruction manual, and this website that is well done, but without success. I managed to find the conditions for the conditional jumps (for example, a JLE is taken if (SF != OF) or (ZF == 1)), but not regarding the flags themselves.
Regarding ZF, it is the easiest one, as it is only needed to check if the result is zero. For SF, I assume that one have to check if the most significant bit of the result is zero or one. But for the others, I am unsure. Additionally, are those conditions the same across all x86 instructions manipulating those flags, or do an ADD and a CMP will set their flags under different equations?