]> git.gag.com Git - debian/gzip/commitdiff
gzip 1.3.5
authorJean-loup Gailly <jloup@chorus.fr>
Tue, 22 Jun 1993 15:44:48 +0000 (15:44 +0000)
committerJean-loup Gailly <jloup@chorus.fr>
Tue, 22 Jun 1993 15:44:48 +0000 (15:44 +0000)
amiga/Makefile.gcc [new file with mode: 0644]
primos/build.cpl [new file with mode: 0644]
vms/Makefile.gcc [new file with mode: 0644]
vms/Makefile.mms [new file with mode: 0644]
vms/Makefile.vms [new file with mode: 0644]
vms/makegzip.com [new file with mode: 0644]

diff --git a/amiga/Makefile.gcc b/amiga/Makefile.gcc
new file mode 100644 (file)
index 0000000..98635c1
--- /dev/null
@@ -0,0 +1,62 @@
+# Makefile for gzip (GNU zip)    -*- Indented-Text -*-
+# Copyright (C) 1992-1993 Jean-loup Gailly and the Free Software Foundation
+
+# Amiga GCC version, written by Preston Hunt <gt5708a@prism.gatech.edu>
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+CC = gcc
+CPP = cpp
+
+CFLAGS = -m68020 -m68881 -O2
+#CFLAGS = -m68000 -O2
+#for the 68000, set below: OBJA=
+CPPFLAGS = -Dmc68020
+LDFLAGS = 
+O = .o
+
+SRCS = gzip.c zip.c deflate.c trees.c bits.c unzip.c inflate.c util.c crypt.c\
+       lzw.c unlzw.c unpack.c unlzh.c makecrc.c getopt.c match.S
+
+OBJA = match$O
+
+OBJS = gzip$O zip$O deflate$O trees$O bits$O unzip$O inflate$O util$O \
+       crypt$O lzw$O unlzw$O unpack$O unlzh$O getopt$O match$O
+
+HDRS = gzip.h lzw.h tailor.h revision.h crypt.h getopt.h
+
+.c.o:
+       $(CC) -c $(DEFS) $(CFLAGS) $<
+
+.PHONY: default all
+all:   gzip
+
+gzip: $(OBJS)
+       $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
+
+gzip$O zip$O deflate$O trees$O bits$O unzip$O inflate$O: gzip.h tailor.h
+util$O lzw$O unlzw$O unpack$O unlzh$O crypt$O: gzip.h tailor.h
+
+gzip$O unlzw$O: revision.h lzw.h
+
+bits$O unzip$O util$O zip$O: crypt.h
+
+gzip$O getopt$O: getopt.h
+
+match$O: match.S
+       $(CPP) $(CPPFLAGS) match.S > _match.s
+       $(CC) -c _match.s
+       mv _match$O match$O
+       rm -f _match.s
diff --git a/primos/build.cpl b/primos/build.cpl
new file mode 100644 (file)
index 0000000..6d82fa0
--- /dev/null
@@ -0,0 +1,76 @@
+/* Gzip build file for Primos.
+/* author: Peter Eriksson, pen@lysator.liu.se
+/*
+type
+type 'Building GZIP for PRIMOS - Please Wait...'
+type
+&if ^ [exists *>PRIMOS>OBJ -dir] &then &do
+      type 'Creating *>PRIMOS>OBJ directory...'
+      type
+      create *>PRIMOS>OBJ
+   &end
+
+type 'Compiling...
+
+&set_var unit := 0
+
+/*
+&set_var cdefines  :=  -debug
+
+como *>primos>compile.como
+&do file &items [wild *>@@.c -single unit]
+  &set_var filebase := [before %file% .]
+  &if ^  [exists *>primos>obj>%filebase%.bin] &then &do
+  type 'Compiling "'%file%'"...'
+  ci *>%file% -binary *>primos>obj>=.bin %cdefines% -optionsfile *>primos>ci.opts
+  &end
+&end
+close -unit %unit%
+&set_var unit := 0
+
+&do file &items [wild *>primos>@@.c -single unit]
+  &set_var filebase := [before %file% .]
+  &if ^  [exists *>primos>obj>%filebase%.bin] &then &do
+  type 'Compiling "'%file%'"...'
+  ci *>primos>%file% -binary *>primos>obj>=.bin %cdefines% -optionsfile *>primos>ci.opts
+  &end
+&end
+como -end
+
+type
+type
+type 'Binding...'
+
+&set_var unit := 0
+&data bind
+  li ccmain
+  load *>primos>obj>gzip
+  load *>primos>obj>bits
+  load *>primos>obj>crypt
+  load *>primos>obj>deflate
+  load *>primos>obj>getopt
+  load *>primos>obj>inflate
+  load *>primos>obj>lzw
+  load *>primos>obj>makecrc
+  load *>primos>obj>primos
+  load *>primos>obj>trees
+  load *>primos>obj>unlzw
+  load *>primos>obj>unpack
+  load *>primos>obj>unlzh
+  load *>primos>obj>unzip
+  load *>primos>obj>util
+  load *>primos>obj>zip
+  li c_lib
+  li
+  dynt -all
+  nwc
+  nitr
+  ntw
+  compress
+  file *>primos>gzip.run
+&end
+
+type
+type
+type 'All done. (Hopefully). The executable should be in *>PRIMOS>GZIP.RUN'
+&return
diff --git a/vms/Makefile.gcc b/vms/Makefile.gcc
new file mode 100644 (file)
index 0000000..0450675
--- /dev/null
@@ -0,0 +1,131 @@
+# Makefile for gzip (GNU zip)    -*- Indented-Text -*-
+# Copyright (C) 1992-1993 Jean-loup Gailly and the Free Software Foundation
+# VMS version made by Klaus Reimann <kr@cip.physik.uni-stuttgart.de>,
+# revised by Roland B Roberts <roberts@nsrl31.nsrl.rochester.edu>.
+# This version is for gcc.
+
+# After constructing gzip.exe with this Makefile, you should set up
+# symbols for gzip.exe.  Edit the example below, changing
+# "disk:[directory]" as appropriate.
+#
+# $ gzip   == "$disk:[directory]gzip.exe"
+# $ gunzip == "$disk:[directory]gunzip.exe"
+# $ zcat   == "$disk:[directory]zcat.exe"
+
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+#### Start of system configuration section. ####
+
+CC = gcc
+LINK = link
+
+CFLAGS =
+# CFLAGS = /warning
+LDFLAGS =
+
+# Things you might add to DEFS
+# -DDIRENT              Use <dirent.h>  for recursion (-r)
+# -DSYSDIR              Use <sys/dir.h> for recursion (-r)
+# -DSYSNDIR             Use <sys/ndir.h> for recursion (-r)
+# -DNDIR                Use <ndir.h> for recursion (-r)
+# -DSTDC_HEADERS        Use <stdlib.h>
+# -DHAVE_UNISTD_H      Use <unistd.h>
+# -DNO_UTIME_H         Don't use <utime.h>
+# -DHAVE_SYSUTIME_H    Use <sys/utime.h>
+# -DNO_MEMORY_H         Don't use <memory.h>. Not needed if STDC_HEADERS.
+# -DNO_STRING_H         Use strings.h, not string.h. Not needed if STDC_HEADERS
+# -DRETSIGTYPE=int      Define this if signal handlers must return an int.
+# -DNO_SYMLINK          OS defines S_IFLNK but does not support symbolic links
+# -DNO_MULTIPLE_DOTS    System does not allow file names with multiple dots
+# -DNO_UTIME           System does not support setting file modification time
+# -DNO_CHOWN           System does not support setting file owner
+# -DNO_DIR             System does not support readdir()
+# -DPROTO              Force function prototypes even if __STDC__ not defined
+# -DASMV               Use asm version match.S
+# -DMSDOS              MSDOS specific
+# -DOS2                        OS/2 specific
+# -DVAXC               Vax/VMS with Vax C compiler
+# -DVMS                        Vax/VMS with gcc
+# -DDEBUG              Debug code
+# -DDYN_ALLOC          Use dynamic allocation of large data structures
+# -DMAXSEG_64K         Maximum array size is 64K (for 16 bit system)
+# -DRECORD_IO           read() and write() are rounded to record sizes.
+# -DNO_STDIN_FSTAT      fstat() is not available on stdin
+# -DNO_SIZE_CHECK       stat() does not give a reliable file size
+
+DEFS = /define=(VMS)
+LIBS = #@LIBS@
+
+X=.exe
+O=.obj
+
+# additional assembly sources for particular systems be required.
+OBJA = #@OBJA@
+
+#### End of system configuration section. ####
+
+OBJS = gzip$O zip$O deflate$O trees$O bits$O unzip$O inflate$O util$O \
+       crypt$O lzw$O unlzw$O unpack$O unlzh$O getopt$O vms$O $(OBJA)
+
+# --- rules ---
+
+*$O:   *.c
+       $(CC) $* $(DEFS) $(CFLAGS)
+#      create sys$output
+#              $(CC) $* $(DEFS) $(CFLAGS)$
+
+default:  all
+
+all:   gzip$X #zcmp zdiff zmore znew
+
+gzip$X : $(OBJS) #Makefile
+  linkobjs:=$(OBJS)
+  Schleife:
+       p = f$locate(" ",linkobjs)
+       if p .lt. f$length(linkobjs)
+               then    linkobjs[p,1]:=","
+                       goto Schleife
+       endif
+  write sys$output "linking ''linkobjs'"
+  $(LINK) $(LDFLAGS) /exec=gzip$X  'linkobjs',sys$input/opt
+       GNU_CC:[000000]GCCLIB/LIB,SYS$LIBRARY:VAXCRTL/SHARE $
+
+#  Create a hard link.  To remove both files, use "make clean".  Using a hard
+#  link saves disk space, by the way.  Note, however, that copying a hard link
+#  copies the data, not just the link.  Therefore, set up the link in the
+#  directory in which the executable is to reside, or else rename (move) the
+#  executables into the directory.
+# 
+  set file/enter=gunzip.exe gzip.exe
+  set file/enter=zcat.exe   gzip.exe
+
+
+clean:
+       set file/remove gunzip.exe;0
+       set file/remove zcat.exe;0
+       delete gzip.exe;0
+       delete *$O;0
+
+# Actual build-related targets
+
+gzip$O zip$O deflate$O trees$O bits$O unzip$O inflate$O: gzip.h tailor.h
+util$O lzw$O unlzw$O unpack$O unlzh$O crypt$O: gzip.h tailor.h
+
+gzip$O unlzw$O: revision.h lzw.h
+
+bits$O unzip$O util$O zip$O: crypt.h
+
+gzip$O getopt$O: getopt.h
diff --git a/vms/Makefile.mms b/vms/Makefile.mms
new file mode 100644 (file)
index 0000000..046ce50
--- /dev/null
@@ -0,0 +1,122 @@
+# Makefile for gzip (GNU zip)    -*- Indented-Text -*-
+# Copyright (C) 1992-1993 Jean-loup Gailly and the Free Software Foundation
+# VMS version made by Klaus Reimann <kr@cip.physik.uni-stuttgart.de>,
+# revised by Roland B Roberts <roberts@nsrl31.nsrl.rochester.edu>
+# and Karl-Jose Filler <pla_jfi@pki-nbg.philips.de>
+# This version is for VAXC with MMS.
+
+# After constructing gzip.exe with this Makefile, you should set up
+# symbols for gzip.exe.  Edit the example below, changing
+# "disk:[directory]" as appropriate.
+#
+# $ gzip   == "$disk:[directory]gzip.exe"
+# $ gunzip == "$disk:[directory]gunzip.exe"
+# $ zcat   == "$disk:[directory]zcat.exe"
+
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+#### Start of system configuration section. ####
+
+CC = cc
+LINK = link
+
+CFLAGS =
+# CFLAGS = /warning
+LDFLAGS =
+
+# Things you might add to DEFS
+# -DDIRENT              Use <dirent.h>  for recursion (-r)
+# -DSYSDIR              Use <sys/dir.h> for recursion (-r)
+# -DSYSNDIR             Use <sys/ndir.h> for recursion (-r)
+# -DNDIR                Use <ndir.h> for recursion (-r)
+# -DSTDC_HEADERS        Use <stdlib.h>
+# -DHAVE_UNISTD_H      Use <unistd.h>
+# -DNO_UTIME_H         Don't use <utime.h>
+# -DHAVE_SYSUTIME_H    Use <sys/utime.h>
+# -DNO_MEMORY_H         Don't use <memory.h>. Not needed if STDC_HEADERS.
+# -DNO_STRING_H         Use strings.h, not string.h. Not needed if STDC_HEADERS
+# -DRETSIGTYPE=int      Define this if signal handlers must return an int.
+# -DNO_SYMLINK          OS defines S_IFLNK but does not support symbolic links
+# -DNO_MULTIPLE_DOTS    System does not allow file names with multiple dots
+# -DNO_UTIME           System does not support setting file modification time
+# -DNO_CHOWN           System does not support setting file owner
+# -DNO_DIR             System does not support readdir()
+# -DPROTO              Force function prototypes even if __STDC__ not defined
+# -DASMV               Use asm version match.S
+# -DMSDOS              MSDOS specific
+# -DOS2                        OS/2 specific
+# -DVAXC               Vax/VMS with Vax C compiler
+# -DVMS                        Vax/VMS with gcc
+# -DDEBUG              Debug code
+# -DDYN_ALLOC          Use dynamic allocation of large data structures
+# -DMAXSEG_64K         Maximum array size is 64K (for 16 bit system)
+# -DRECORD_IO           read() and write() are rounded to record sizes.
+# -DNO_STDIN_FSTAT      fstat() is not available on stdin
+# -DNO_SIZE_CHECK       stat() does not give a reliable file size
+
+# DEFS = /define=(VAXC)
+DEFS =
+LIBS =
+
+X=.exe
+O=.obj
+
+# additional assembly sources for particular systems be required.
+OBJA =
+
+#### End of system configuration section. ####
+
+OBJS = gzip.obj zip.obj deflate.obj trees.obj bits.obj unzip.obj inflate.obj \
+       util.obj crypt.obj lzw.obj unlzw.obj unpack.obj unlzh.obj getopt.obj \
+       vms.obj $(OBJA)
+
+# --- rules ---
+
+.c.obj :
+       define/user sys sys$library
+       $(CC) $* $(DEFS) $(CFLAGS)
+#      create sys.output
+#              $(CC) $* $(DEFS) $(CFLAGS)$
+
+gzip.exe : $(OBJS)
+       define lnk$library sys$share:vaxcrtl
+       $(LINK) $(LDFLAGS) /exec=gzip  $+
+#
+#  Create a hard link.  To remove both files, use "make clean".  Using a hard
+#  link saves disk space, by the way.  Note, however, that copying a hard link
+#  copies the data, not just the link.  Therefore, set up the link in the
+#  directory in which the executable is to reside, or else rename (move) the
+#  executables into the directory.
+# 
+       set file/enter=gunzip.exe gzip.exe
+       set file/enter=zcat.exe   gzip.exe
+
+clean :
+       set file/remove gunzip.exe;0
+       set file/remove zcat.exe;0
+       delete gzip.exe;0
+       delete *.obj;0
+
+# Actual build-related targets
+
+gzip.obj zip.obj deflate.obj trees.obj bits.obj unzip.obj inflate.obj : gzip.h tailor.h
+util.obj lzw.obj unlzw.obj unpack.obj unlzh.obj crypt.obj : gzip.h tailor.h
+
+gzip.obj unlzw.obj : revision.h lzw.h
+
+bits.obj unzip.obj util.obj zip.obj : crypt.h
+
+gzip.obj getopt.obj : getopt.h
diff --git a/vms/Makefile.vms b/vms/Makefile.vms
new file mode 100644 (file)
index 0000000..9401295
--- /dev/null
@@ -0,0 +1,133 @@
+# Makefile for gzip (GNU zip)    -*- Indented-Text -*-
+# Copyright (C) 1992-1993 Jean-loup Gailly and the Free Software Foundation
+# VMS version made by Klaus Reimann <kr@cip.physik.uni-stuttgart.de>,
+# revised by Roland B Roberts <roberts@nsrl31.nsrl.rochester.edu>.
+# This version is for VAXC. Tested with Todd Aven's MAKE/VMS.
+
+# After constructing gzip.exe with this Makefile, you should set up
+# symbols for gzip.exe.  Edit the example below, changing
+# "disk:[directory]" as appropriate.
+#
+# $ gzip   == "$disk:[directory]gzip.exe"
+# $ gunzip == "$disk:[directory]gunzip.exe"
+# $ zcat   == "$disk:[directory]zcat.exe"
+
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+#### Start of system configuration section. ####
+
+CC = cc
+LINK = link
+
+CFLAGS =
+# CFLAGS = /warning
+LDFLAGS =
+
+# Things you might add to DEFS
+# -DDIRENT              Use <dirent.h>  for recursion (-r)
+# -DSYSDIR              Use <sys/dir.h> for recursion (-r)
+# -DSYSNDIR             Use <sys/ndir.h> for recursion (-r)
+# -DNDIR                Use <ndir.h> for recursion (-r)
+# -DSTDC_HEADERS        Use <stdlib.h>
+# -DHAVE_UNISTD_H      Use <unistd.h>
+# -DNO_UTIME_H         Don't use <utime.h>
+# -DHAVE_SYSUTIME_H    Use <sys/utime.h>
+# -DNO_MEMORY_H         Don't use <memory.h>. Not needed if STDC_HEADERS.
+# -DNO_STRING_H         Use strings.h, not string.h. Not needed if STDC_HEADERS
+# -DRETSIGTYPE=int      Define this if signal handlers must return an int.
+# -DNO_SYMLINK          OS defines S_IFLNK but does not support symbolic links
+# -DNO_MULTIPLE_DOTS    System does not allow file names with multiple dots
+# -DNO_UTIME           System does not support setting file modification time
+# -DNO_CHOWN           System does not support setting file owner
+# -DNO_DIR             System does not support readdir()
+# -DPROTO              Force function prototypes even if __STDC__ not defined
+# -DASMV               Use asm version match.S
+# -DMSDOS              MSDOS specific
+# -DOS2                        OS/2 specific
+# -DVAXC               Vax/VMS with Vax C compiler
+# -DVMS                        Vax/VMS with gcc
+# -DDEBUG              Debug code
+# -DDYN_ALLOC          Use dynamic allocation of large data structures
+# -DMAXSEG_64K         Maximum array size is 64K (for 16 bit system)
+# -DRECORD_IO           read() and write() are rounded to record sizes.
+# -DNO_STDIN_FSTAT      fstat() is not available on stdin
+# -DNO_SIZE_CHECK       stat() does not give a reliable file size
+
+# DEFS = /define=(VAXC)
+DEFS =
+LIBS =
+
+X=.exe
+O=.obj
+
+# additional assembly sources for particular systems be required.
+OBJA =
+
+#### End of system configuration section. ####
+
+OBJS = gzip$O zip$O deflate$O trees$O bits$O unzip$O inflate$O util$O \
+       crypt$O lzw$O unlzw$O unpack$O unlzh$O getopt$O vms$O $(OBJA)
+
+# --- rules ---
+
+*$O:   *.c
+       define/user sys sys$library
+       $(CC) $* $(DEFS) $(CFLAGS)
+#      create sys$output
+#              $(CC) $* $(DEFS) $(CFLAGS)$
+
+default:  all
+
+all:   gzip$X #zcmp zdiff zmore znew
+
+gzip$X : $(OBJS) #Makefile
+  linkobjs:=$(OBJS)
+  Schleife:
+       p = f$locate(" ",linkobjs)
+       if p .lt. f$length(linkobjs)
+               then    linkobjs[p,1]:=","
+                       goto Schleife
+       endif
+  write sys$output "linking ''linkobjs'"
+  $(LINK) $(LDFLAGS) /exec=gzip$X  'linkobjs',sys$input/opt
+       SYS$LIBRARY:VAXCRTL/SHARE $
+#
+#  Create a hard link.  To remove both files, use "make clean".  Using a hard
+#  link saves disk space, by the way.  Note, however, that copying a hard link
+#  copies the data, not just the link.  Therefore, set up the link in the
+#  directory in which the executable is to reside, or else rename (move) the
+#  executables into the directory.
+# 
+  set file/enter=gunzip.exe gzip.exe
+  set file/enter=zcat.exe   gzip.exe
+
+
+clean:
+       set file/remove gunzip.exe;0
+       set file/remove zcat.exe;0
+       delete gzip.exe;0
+       delete *$O;0
+
+# Actual build-related targets
+
+gzip$O zip$O deflate$O trees$O bits$O unzip$O inflate$O: gzip.h tailor.h
+util$O lzw$O unlzw$O unpack$O unlzh$O crypt$O: gzip.h tailor.h
+
+gzip$O unlzw$O: revision.h lzw.h
+
+bits$O unzip$O util$O zip$O: crypt.h
+
+gzip$O getopt$O: getopt.h
diff --git a/vms/makegzip.com b/vms/makegzip.com
new file mode 100644 (file)
index 0000000..def90f6
--- /dev/null
@@ -0,0 +1,71 @@
+$! Makefile for VMS
+$! DCL-Shell-language. Edit the symbols section at the end.
+$!
+$ On Control_Y Then Goto The_Exit
+$ On Error Then Goto The_Exit
+$ define/user sys sys$library
+$ cc gzip.c /define=(VAXC)
+$ define/user sys sys$library
+$ cc zip.c /define=(VAXC)
+$ define/user sys sys$library
+$ cc deflate.c /define=(VAXC)
+$ define/user sys sys$library
+$ cc trees.c /define=(VAXC)
+$ define/user sys sys$library
+$ cc bits.c /define=(VAXC)
+$ define/user sys sys$library
+$ cc unzip.c /define=(VAXC)
+$ define/user sys sys$library
+$ cc inflate.c /define=(VAXC)
+$ define/user sys sys$library
+$ cc util.c /define=(VAXC)
+$ define/user sys sys$library
+$ cc crypt.c /define=(VAXC)
+$ define/user sys sys$library
+$ cc lzw.c /define=(VAXC)
+$ define/user sys sys$library
+$ cc unlzw.c /define=(VAXC)
+$ define/user sys sys$library
+$ cc unpack.c /define=(VAXC)
+$ define/user sys sys$library
+$ cc unlzh.c /define=(VAXC)
+$ define/user sys sys$library
+$ cc getopt.c /define=(VAXC)
+$ define/user sys sys$library
+$ cc vms.c /define=(VAXC)
+$ linkobjs:=gzip.obj zip.obj deflate.obj trees.obj bits.obj unzip.obj -
+   inflate.obj util.obj crypt.obj lzw.obj unlzw.obj unpack.obj unlzh.obj -
+   getopt.obj vms.obj
+$ Schleife:
+$ p = f$locate(" ",linkobjs)
+$ if p .lt. f$length(linkobjs)
+$ then linkobjs[p,1]:=","
+$ goto Schleife
+$ endif
+$ write sys$output "linking ''linkobjs'"
+$ link  /exec=gzip.exe  'linkobjs',sys$input/opt
+SYS$LIBRARY:VAXCRTL/SHARE 
+$
+$ ! Create a hard link.  (To remove both files, delete the copy FIRST, then
+$ ! the original.  Otherwise, if original deleted first [copy says "no such
+$ ! file"], must use "set file/remove gunzip.exe;#" to get rid of the copy.
+$ ! Unlike in Unix, deleting the original ALWAYS destroys the data--but not
+$ ! the directory entry of the copy.)  Using a hard link saves disk space, by
+$ ! the way.  Note, however, that copying a hard link copies the data, not
+$ ! just the link.  Therefore, set up the link in the directory in which the
+$ ! executable is to reside, or else rename (move) the executables into the
+$ ! directory.
+$ !
+$ set file/enter=gunzip.exe gzip.exe
+$ set file/enter=zcat.exe   gzip.exe
+$
+$ ! Set up symbols for the gzip executable.  Edit the example below,
+$ ! changing "disk:[directory]" as appropriate.
+$ !
+$ gzip   == "$disk:[directory]gzip.exe"
+$ gunzip == "$disk:[directory]gunzip.exe"
+$ zcat   == "$disk:[directory]zcat.exe"
+$
+$The_Exit:
+$ Save_Status = $STATUS
+$ exit Save_Status