diff --git a/cgcc b/cgcc
index 9acf498..d4c50f8 100755
--- a/cgcc
+++ b/cgcc
@@ -214,6 +214,14 @@ sub add_specs {
     } elsif ($spec eq 'linux') {
 	return &add_specs ('unix') .
 	    ' -D__linux__=1 -D__linux=1 -Dlinux=linux';
+    } elsif ($spec eq 'darwin') {
+	my $osx = ' -D__MACH__=1 -D__APPLE__=1 -D__APPLE_CC__=1 -D__DYNAMIC__=1';
+	my $arch = `uname -m`;
+	if ($arch =~ /ppc/i) {
+	  return ($osx . " -D__BIG_ENDIAN__");
+	} else {
+	  return ($osx . " -D__LITTLE_ENDIAN__");
+	}
     } elsif ($spec eq 'unix') {
 	return ' -Dunix=1 -D__unix=1 -D__unix__=1';
     } elsif ( $spec =~ /^cygwin/) {
