home *** CD-ROM | disk | FTP | other *** search
- Porting hints for public domain tar
- John Gilmore, ihnp4!hoptoad!gnu
- @(#)PORTING 1.13 87/11/11
-
- The Makefile should be edited to comment out all the undesired
- versions, and create the following configuration lines for the system
- you are compiling it on:
-
- DEFS = the proper #define's to conditionally compile for your system.
- LIBS = the system libraries and/or object modules to link with the program.
- LINT = the lint program (or the compiler with extra checking turned on)
- LINTFLAGS = a good strong way to invoke 'lint' on your system.
- DEF_AR_FILE = the name of the default archive file on your system.
- It should be enclosed in quoted quotes, e.g. \"/dev/foo\" .
- DEFBLOCKING = the default blocking factor on your system.
- O = the suffix for object files ('o', except 'obj' for MSDOS).
-
- A copy of "getopt", the standard argument parser, is required. It's in
- libc on Missed'em V systems and 4.3BSD; on most other systems, you'll
- need a copy of a public domain getopt, available through the
- comp.sources.unix archives, or from the AT&T Toolchest if you can't
- find it elsewhere.
-
- A copy of the Berkeley directory access routines is also required.
- These are in libc and <sys/dir.h> on Berkeley systems. A public domain
- version is available through comp.sources.unix. There is an #include
- you have to change in create.c for this, to set the name of the include
- file you have. Some systems have the include file in <sys/ndir.h>.
- You'll have to find it on your system, or get the public domain one and
- place it somewhere. For MSDOS, I have supplied these directory
- routines in msd_dir.c and msd_dir.h, since it's likely that your system
- doesn't have them. To permanently install these into your MSC 3.0
- library, do the following:
- copy msd_dir.h c:\c\include\sys\dir.h
- cl -A$(MODEL) -c msd_dir.c
- lib $(MODEL)dir.lib msd_dir.obj;
- Change c:\c\include to wherever your standard include directory is.
- You might have to modify this procedure if you aren't using MSC 3.0.
-
- Grep for FIXME to find places that aren't finished or which have
- portability problems. Also see the file TODO.
-
- The MSDOS port was done under the Microsoft C 3.0 compiler and
- libraries. In the Makefile, COPTS should be changed to -Zi or nothing;
- and there is a special link command for making tar.exe, which you will
- have to uncomment, since MSDOS can't handle command lines longer than
- 128 bytes. Also, clean and install will not work unless you change
- / in path names to \.
-
- On Minix, there are a bunch of problems. "V7 compatible" my ass.
- * "make" doesn't expand macros in the Makefile properly. You will
- probably have to expand them by hand. Better to go in and fix Minix
- "make" though...
- * The directory access library is nonexistent. It wasn't in V7 but
- anybody who writes code without it, even on V7 systems, is a fool.
- * Various other library routines are broken, e.g. printf() doesn't take
- "%*s" or "%.*s"; no <sys/types.h> which Unix requires, ctime(), getopt().
-