semaphore.h and !defined(__EXT_POSIX1_199309)

Forgive me for being a posix newbie, but:

I’m playing around with porting code and I ran into this problem when
building my object library. In my compile the only defines are
WIDE_PROTOTYPES and POSIX_SOURCE. When I compile in QRTP, I run into
the line in semaphore.h that goes “#if !define(__EXT_POSIX1_199903)
semaphores needs p1003.16-1993 or later”

Can anyone give me a mini tutorial or point me to the right place in the
Doc’s to understand compile time define’s like this one? I’ve done
searches in the helpviewer on semaphore, and the specific define above
and have’t found anything to enlighten me. The docs for the library
routines like sem_init() don’t shed any light on the subject either.