The files getopt.h, getopt.c, getopt1.c are from glibc-2.1.2,

The getopt functions are included because a lot of platforms do not have
getopt functions for processing long options.  Some platforms (VC,MINGW32)
don't have the getopt function that processes single letter options.

getopt.h was renamed to gg-getopt.h to avoid conflicts with system provided
getopt.h files.

Function getopt was renamed gg_getopt to avoid conflicts with the system
provided getopt function.