As others have covered, OpenGL is portable. It's just a set of functions (an API) that you fill in the code for, per device. Tricky however due to lack of FPU or graphics hardware. TinyGL is a reduced version of OpenGL that is easier to port, but from what I've heard the two are in completely different levels of difficulty when it comes to porting.