it works nicely for me. The shadow look realistic also. Although I had these two makefile warnings
Code:
make: Warning: File `Makefile' has modification time 5.4e+04 s in the future
...
make: warning: Clock skew detected. Your build may be incomplete.
But good work. Does it not work on your computer(laptop) or something?
[edit]for your moving light source. Opengl Red book puts it in a push/pop matrix. Your way works though. I like your matri math in your code. Very eduucated. For a keyboard function, I add a usleep(100) at the beginning of it. I saw it in one of the NeHe tutorials. It said so it doesn't overload the function.[/edit]