Annotation of src/usr.bin/file/PORTING, Revision 1.1
1.1 ! deraadt 1: Portability of the new file(1) command.
! 2: @(#) $Id: PORTING,v 1.3 1995/03/25 22:35:32 christos Exp $
! 3:
! 4: Read this file only if the program doesn't compile on your system.
! 5:
! 6: This release has been around UNIX; it has been compiled and tested
! 7: in the following environments:
! 8:
! 9: SunOS sqarc 4.1.1 8 sun4
! 10: No problems.
! 11: ULTRIX squint 4.2 0 RISC
! 12: No problems.
! 13: A/UX sqmac 3.0a9 SVR22 mc68020
! 14: No problems.
! 15: AIX sqibm 2 3 000XXXXXX100
! 16: Had weird "make" problems making "magic" file automatically; just
! 17: built it by hand. Your mileage may vary.
! 18: SCO sqwang 3.2 2 i386
! 19: Compiles fine; their weird make can't handle "[a-z]*" as a dependancy,
! 20: so build magic by hand. Runs fine.
! 21: sqzme sqzme 3.1.1 3 3B2
! 22: The 3B2 SVR3 needed a few tweaks as well as COPTS = -Ilocalinc
! 23: in order to compile.
! 24:
! 25: This version, reluctanly, includes <stdlib.h>, which won't exist
! 26: on older systems or those that aren't even close to the ANSI C
! 27: standard. There is a null "stdlib.h", and some other bogus headers,
! 28: in subdirectory "localinc"; if you get complaints about missing
! 29: stdlib.h and others, uncomment the line with COPTS=-Ilocalinc
! 30: in the Makefile, and try again.
! 31:
! 32: You must have either <stdarg.h> or the older <varargs.h>, otherwise you'll
! 33: have to butcher some routines in print.c.
! 34:
! 35: Beyond that, I have tried to make a program that doesn't need any
! 36: command-line defines (-D) to specify what version of UNIX is in use,
! 37: by using the definitions available in the system #include
! 38: files. For example, the lstat(2) call is normally found in
! 39: 4BSD systems, but might be grafted into some other variant
! 40: of UNIX. If it's done right (ie., using the same definitions),
! 41: my program will compile and work correctly. Look at the #ifdefs
! 42: to see how it's done.
! 43:
! 44: I've also tried to include source for all the non-portable library routines
! 45: I used (getopt, str*). Non-portable here means `not in every
! 46: reasonably standard UNIX out there: V7, System V, 4BSD'.
! 47: These are in subdirectory "localsrc", and not used unless you
! 48: need them; again, see the Makefile.
! 49:
! 50: There is one area that just might cause problems. On System
! 51: V, they moved the definition of major() and minor() out of
! 52: <sys/types.h> into <sys/sysmacros.h>. Hence, if major isn't
! 53: defined after including types.h, I automatically include sys/sysmacros.h.
! 54: This will work for 99% of the systems out there. ONLY if you
! 55: have a system in which neither types.h nor sysmacros.h defines
! 56: `major' will this automatic include fail (I hope). On such
! 57: systems, you will get a compilation error in trying to compile
! 58: a warning message. Please do the following:
! 59:
! 60: 1) change the appropriate #include at the start of fsmagic.c
! 61: and 2) let me know the name of the system, the release number,
! 62: and the name of the header file that *does* include
! 63: this "standard" definition.
! 64:
! 65: If you are running the old Ritchie PDP-11 C compiler or
! 66: some other compiler that doesn't know about `void', you will have
! 67: to include `-Dvoid=int' in the variable COPTS in the Makefile.
! 68:
! 69: Other than this, there should be no portability problems,
! 70: but one never knows these days. Please let me know of any
! 71: other problems you find porting to a UNIX system. I don't much
! 72: care about non-UNIX systems but will collect widely-used magic
! 73: numbers for them as well as for UNIX systems.
! 74:
! 75: Mark Moraes and Christos Zoulas
! 76: (address in README)