Unfortunately, Apple does not deliver a consistent Mac OS-X system The longer they work on it, the more bugs they introduce... In addition, there is no visible 'clean' road of development. Release names (from 'uname') are confusing and don't help to find out what release they refer to. /*--------------------------------------------------------------------------*/ The next hint is for Mac OS X versions up to January 2000 only: The file tries to include which cannot be found. To be able to compile, I suggest to create a symlink: System/Library/Frameworks/System.framework/Versions/B/Headers/kern -> kernserv To do this, chdir to: System/Library/Frameworks/System.framework/Versions/B/Headers/ and call ln -s kernserv kern as root. /*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/ This hint is for Mac OS X version starting ~ April 2000: Apple did remove the generic SCSI transport driver for unknown reasons! Cdrtools compile, but as there is no SCSI transport, you may only write CD's connected to other systems using the REMOTE SCSI protocol. /*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/ This hint is for Mac OS X versions starting around March 2001: If your compile log looks like this: ==> MAKING "all" ON SUBCOMPONENT ".../libschily.mk" ==> COMPILING "OBJ/powerpc-darwin-cc/cmpbytes.o" cmpbytes.c: In function `cmpbytes': cmpbytes.c:49: invalid operands to binary | make[1]: *** [OBJ/powerpc-darwin-cc/cmpbytes.o] Error 1 make: *** [all] Error 2 You are hit by the Apple developers. Some time ago they started to introduce a file which uses types defines in While the buggy types are ignored in they are used if found in . As a workaround, you may edit incs/power-macintosh-darwin-cc/xconfig.h after it has been created by autoconf and make the lint containing HAME_INTTYPES_H this way: /* #undef HAVE_INTTYPES_H */ /* to use UNIX-98 inttypes.h */ This will tell the autoconf using code to ignore the system supplied and use the internal version. IMPORTANT: Don't forget to tell the Apple support that MacOSX sucks until they fix such fundamental bugs in the system include files! In case you are interested in the full details: the reason why cdrecord does not compile is that MacOS X defines a type typedef int * intptr_t; typedef unsigned int * uintptr_t; instead of the correct: typedef long intptr_t; typedef unsigned long intptr_t; ... a result of either Apple developers being unwilling to read or unable to understand simple standards written in English :-( See: http://www.opengroup.org/onlinepubs/7908799/xsh/inttypes.h.html /*--------------------------------------------------------------------------*/