1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026
|
#==============================================================================
# Makefile for UnZip, UnZipSFX and fUnZip: Unix and MS-DOS ("real" makes only)
# Version: 6.0 18 Jan 2009
#==============================================================================
# INSTRUCTIONS (such as they are):
#
# "make sunos" -- makes UnZip in current directory on a generic SunOS 4.x Sun
# "make list" -- lists all supported systems (targets)
# "make help" -- provides pointers on what targets to try if problems occur
# "make wombat" -- chokes and dies if you haven't added the specifics for your
# Wombat 68000 (or whatever) to the systems list
#
# CF are flags for the C compiler. LF are flags for the loader. LF2 are more
# flags for the loader, if they need to be at the end of the line instead of at
# the beginning (for example, some libraries). FL and FL2 are the corre-
# sponding flags for fUnZip. LOCAL_UNZIP is an environment variable that can
# be used to add default C flags to your compile without editing the Makefile
# (e.g., -DDEBUG_STRUC, or -FPi87 on PCs using Microsoft C).
#
# Some versions of make do not define the macro "$(MAKE)"; this is rare, but
# if things don't work, try using "make" instead of "$(MAKE)" in your system's
# makerule. Or try adding the following line to your .login file:
# setenv MAKE "make"
# (That never works--makes that are too stupid to define MAKE are also too
# stupid to look in the environment--but try it anyway for kicks. :-) )
#
# Memcpy and memset are provided for those systems that don't have them; they
# are in fileio.c and will be used if -DZMEM is included in CF. These days
# almost all systems have them.
#
# Be sure to test your new UnZip (and UnZipSFX and fUnZip); successful compila-
# tion does not always imply a working program.
#####################
# MACRO DEFINITIONS #
#####################
# Defaults most systems use (use LOCAL_UNZIP in environment to add flags,
# such as -DDOSWILD).
# UnZip flags
CC = cc# try using "gcc" target rather than changing this (CC and LD
LD = $(CC)# must match, else "unresolved symbol: ___main" is possible)
AS = as
LOC = $(D_USE_BZ2) $(LOCAL_UNZIP)
AF = $(LOC)
CFLAGS = -O
CF_NOOPT = -I. -I$(IZ_BZIP2) -DUNIX $(LOC)
CF = $(CFLAGS) $(CF_NOOPT)
LFLAGS1 =
LF = -o unzip$E $(LFLAGS1)
LF2 = -s
# UnZipSFX flags
SL = -o unzipsfx$E $(LFLAGS1)
SL2 = $(LF2)
# fUnZip flags
FL = -o funzip$E $(LFLAGS1)
FL2 = $(LF2)
# general-purpose stuff
#CP = cp
CP = ln
LN = ln
RM = rm -f
CHMOD = chmod
BINPERMS = 755
MANPERMS = 644
STRIP = strip
E =
O = .o
M = unix
SHELL = /bin/sh
MAKEF = -f unix/Makefile
# Version info for unix/unix.c
HOST_VERSINFO=-DIZ_CC_NAME='\"\$$(CC) \"' -DIZ_OS_NAME='\"`uname -a`\"'
# defaults for crc32 stuff and system dependent headers
CRCA_O =
OSDEP_H = unix/unxcfg.h
# default for dependency on auto-configure result, is an empty symbol
# so that the static non-autoconfigure targets continue to work
ACONF_DEP =
# optional inclusion of bzip2 decompression
IZ_OUR_BZIP2_DIR = bzip2
IZ_BZIP2 = $(IZ_OUR_BZIP2_DIR)
## The following symbols definitions need to be set to activate bzip2 support:
#D_USE_BZ2 = -DUSE_BZIP2
#L_BZ2 = -lbz2
#LIBBZ2 = $(IZ_BZIP2)/libbz2.a
# defaults for unzip's "built-in" bzip2 library compilation
CC_BZ = $(CC)
CFLAGS_BZ = $(CFLAGS)
# object files
OBJS1 = unzip$O crc32$O $(CRCA_O) crypt$O envargs$O explode$O
OBJS2 = extract$O fileio$O globals$O inflate$O list$O match$O
OBJS3 = process$O ttyio$O ubz2err$O unreduce$O unshrink$O zipinfo$O
OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $M$O
LOBJS = $(OBJS)
OBJSDLL = $(OBJS:.o=.pic.o) api.pic.o
OBJX = unzipsfx$O crc32_$O $(CRCA_O) crypt_$O extract_$O fileio_$O \
globals_$O inflate_$O match_$O process_$O ttyio_$O ubz2err_$O $M_$O
LOBJX = $(OBJX)
OBJF = funzip$O crc32$O $(CRCA_O) cryptf$O globalsf$O inflatef$O ttyiof$O
#OBJS_OS2 = $(OBJS1:.o=.obj) $(OBJS2:.o=.obj) os2.obj
#OBJF_OS2 = $(OBJF:.o=.obj)
UNZIP_H = unzip.h unzpriv.h globals.h $(OSDEP_H) $(ACONF_DEP)
# installation
# (probably can change next two to `install' and `install -d' if you have it)
INSTALL = cp
INSTALL_PROGRAM = $(INSTALL)
INSTALL_D = mkdir -p
# on some systems, manext=l and MANDIR=/usr/man/man$(manext) may be appropriate
manext = 1
prefix = /usr/local
BINDIR = $(prefix)/bin# where to install executables
MANDIR = $(prefix)/man/man$(manext)# where to install man pages
INSTALLEDBIN = $(BINDIR)/funzip$E $(BINDIR)/unzip$E $(BINDIR)/unzipsfx$E \
$(BINDIR)/zipgrep$E $(BINDIR)/zipinfo$E
INSTALLEDMAN = $(MANDIR)/funzip.$(manext) $(MANDIR)/unzip.$(manext) \
$(MANDIR)/unzipsfx.$(manext) $(MANDIR)/zipgrep.$(manext) \
$(MANDIR)/zipinfo.$(manext)
# Solaris 2.x stuff:
PKGDIR = IZunzip
VERSION = Version 6.0
UNZIPS = unzip$E funzip$E unzipsfx$E
# this is a little ugly...well, OK, it's a lot ugly:
MANS = man/funzip.1 man/unzip.1 man/unzipsfx.1 man/zipgrep.1 man/zipinfo.1
DOCS = funzip.txt unzip.txt unzipsfx.txt zipgrep.txt zipinfo.txt
# list of supported systems/targets in this version
SYSTEMG1 = generic generic_gcc generic_pkg generic_gccpkg
SYSTEMG2 = generic1 generic2 generic3 generic_bz2 generic_zlib generic_shlib
SYSTEMS1 = 386i 3Bx 7300 7300_gcc aix aix_rt amdahl amdahl_eft apollo aviion
SYSTEMS2 = bsd bsdi bsdi_noasm bull coherent convex cray cray_opt cyber_sgi
SYSTEMS3 = cygwin dec dnix encore eta freebsd gcc gould hk68 hp hpux
SYSTEMS4 = isc isc_gcc isi linux linux_dos linux_noasm linux_shlib linux_shlibz
SYSTEMS5 = lynx macosx macosx_gcc minix mips mpeix next next10 next2x next3x
SYSTEMS6 = nextfat osf1 pixel ptx pyramid qnxnto realix regulus rs6000 sco
SYSTEMS7 = sco_dos sco_sl sco_x286 sequent sgi solaris solaris_pkg stardent
SYSTEMS8 = stellar sunos3 sunos4 sysv sysv_gcc sysv6300 tahoe ti_sysv ultrix
SYSTEMS9 = vax v7 wombat xenix xos
####################
# DEFAULT HANDLING #
####################
# By default, print help on which makefile targets to try. (The SYSTEM
# variable is no longer supported; use "make <target>" instead.)
help:
@echo ""
@echo " If you're not sure about the characteristics of your system, try typing"
@echo " \"make generic\". This is new and uses the configure script, though it is"
@echo " still being worked on."
@echo ""
@echo " If that does not do it, try the original generic which is \"make generic1\"."
@echo ""
@echo " If the compiler barfs and says something unpleasant about \"timezone redefined\","
@echo " try typing \"make clean\" followed by \"make generic2\". If, on the other"
@echo " hand, it complains about an undefined symbol _ftime, try typing \"make clean\""
@echo " followed by \"make generic3\"."
@echo ""
@echo " One of these actions should produce a working copy of unzip on most Unix"
@echo " systems. If you know a bit more about the machine on which you work, you"
@echo " might try \"make list\" for a list of the specific systems supported herein."
@echo " (Many of them do exactly the same thing, so don't agonize too much over"
@echo " which to pick if two or more sound equally likely.) Also check out the"
@echo " INSTALL file for notes on compiling various targets. As a last resort,"
@echo " feel free to read the numerous comments within the Makefile itself."
@echo ""
@echo " Have a mostly pretty good day."
@echo ""
list:
@echo ""
@echo\
'Type "make <system>", where <system> is one of the following:'
@echo ""
@echo " $(SYSTEMG1)"
@echo " $(SYSTEMG2)"
@echo ""
@echo " $(SYSTEMS1)"
@echo " $(SYSTEMS2)"
@echo " $(SYSTEMS3)"
@echo " $(SYSTEMS4)"
@echo " $(SYSTEMS5)"
@echo " $(SYSTEMS6)"
@echo " $(SYSTEMS7)"
@echo " $(SYSTEMS8)"
@echo " $(SYSTEMS9)"
# @echo ""
# @echo\
# 'Targets for related utilities (ZipInfo and fUnZip) include:'
# @echo ""
# @echo " $(SYS_UTIL1)"
# @echo " $(SYS_UTIL2)"
@echo ""
@echo\
'For further (very useful) information, please read the comments in Makefile.'
@echo ""
generic_msg:
@echo ""
@echo\
' Attempting "make generic" now. If this fails for some reason, type'
@echo\
' "make help" and/or "make list" for suggestions.'
@echo ""
###############################################
# BASIC COMPILE INSTRUCTIONS AND DEPENDENCIES #
###############################################
# this is for GNU make; comment out and notify zip-bugs if it causes errors
.SUFFIXES: .c .o .obj .pic.o
# yes, we should be able to use the $O macro to combine these two, but it
# fails on some brain-damaged makes (e.g., AIX's)...no big deal
.c.o:
$(CC) -c $(CF) $*.c
.c.obj:
$(CC) -c $(CF) $*.c
.c.pic.o:
$(CC) -c $(CF) -o $@ $*.c
# this doesn't work...directories are always a pain with implicit rules
#.1.txt: man/$<
# nroff -Tman -man $< | col -b | uniq | \
# sed 's/Sun Release ..../Info-ZIP /' > $@
# these rules may be specific to Linux (or at least the GNU groff package)
# and are really intended only for the authors' use in creating non-Unix
# documentation files (which are provided with both source and binary
# distributions). We should probably add a ".1.txt" rule for more generic
# systems...
funzip.txt: man/funzip.1
nroff -Tascii -man man/funzip.1 | col -bx | uniq | expand > $@
unzip.txt: man/unzip.1
nroff -Tascii -man man/unzip.1 | col -bx | uniq | expand > $@
unzipsfx.txt: man/unzipsfx.1
nroff -Tascii -man man/unzipsfx.1 | col -bx | uniq | expand > $@
zipgrep.txt: man/zipgrep.1
nroff -Tascii -man man/zipgrep.1 | col -bx | uniq | expand > $@
zipinfo.txt: man/zipinfo.1
nroff -Tascii -man man/zipinfo.1 | col -bx | uniq | expand > $@
all: generic_msg generic
unzips: $(UNZIPS)
objs: $(OBJS)
objsdll: $(OBJSDLL)
docs: $(DOCS)
unzipsman: unzips docs
unzipsdocs: unzips docs
# EDIT HERE FOR PARALLEL MAKES on Sequent (and others?)--screws up MS-DOS
# make utilities if default: change "unzip$E:" to "unzip$E:&"
unzip$E: $(OBJS) $(LIBBZ2) # add `&' for parallel makes
$(LD) $(LF) -L$(IZ_BZIP2) $(LOBJS) $(L_BZ2) $(LF2)
unzipsfx$E: $(OBJX) # add `&' for parallel makes
$(LD) $(SL) $(LOBJX) $(SL2)
funzip$E: $(OBJF) # add `&' for parallel makes
$(LD) $(FL) $(OBJF) $(FL2)
zipinfo$E: unzip$E # `&' is pointless here...
@echo\
' This is a Unix-specific target. ZipInfo is not enabled in some MS-DOS'
@echo\
' versions of UnZip; if it is in yours, copy unzip.exe to zipinfo.exe'
@echo\
' or else invoke as "unzip -Z" (in a batch file, for example).'
$(LN) unzip$E zipinfo$E
# when the optional bzip2 support is provided (as recommended) by sources
# in the 'bzip2' subdirectory, create/update the library:
$(IZ_OUR_BZIP2_DIR)/libbz2.a:
@echo "Building/updating bzip2 object library..."
( cd $(IZ_OUR_BZIP2_DIR) ; $(MAKE) -f Makebz2.iz CC="$(CC_BZ)"\
CFLAGS="$(CFLAGS_BZ)" RM="rm -f" )
crc32$O: crc32.c $(UNZIP_H) zip.h crc32.h
crypt$O: crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
envargs$O: envargs.c $(UNZIP_H)
explode$O: explode.c $(UNZIP_H)
extract$O: extract.c $(UNZIP_H) crc32.h crypt.h
fileio$O: fileio.c $(UNZIP_H) crc32.h crypt.h ttyio.h ebcdic.h
funzip$O: funzip.c $(UNZIP_H) crc32.h crypt.h ttyio.h
globals$O: globals.c $(UNZIP_H)
inflate$O: inflate.c inflate.h $(UNZIP_H)
list$O: list.c $(UNZIP_H)
match$O: match.c $(UNZIP_H)
process$O: process.c $(UNZIP_H) crc32.h
ttyio$O: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
ubz2err$O: ubz2err.c $(UNZIP_H)
unreduce$O: unreduce.c $(UNZIP_H)
unshrink$O: unshrink.c $(UNZIP_H)
unzip$O: unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h
zipinfo$O: zipinfo.c $(UNZIP_H)
# unzipsfx compilation section
unzipsfx$O: unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h
$(CC) -c $(CF) -DSFX -o $@ unzip.c
crc32_$O: crc32.c $(UNZIP_H) zip.h crc32.h
$(CC) -c $(CF) -DSFX -o $@ crc32.c
crypt_$O: crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
$(CC) -c $(CF) -DSFX -o $@ crypt.c
extract_$O: extract.c $(UNZIP_H) crc32.h crypt.h
$(CC) -c $(CF) -DSFX -o $@ extract.c
fileio_$O: fileio.c $(UNZIP_H) crc32.h crypt.h ttyio.h ebcdic.h
$(CC) -c $(CF) -DSFX -o $@ fileio.c
globals_$O: globals.c $(UNZIP_H)
$(CC) -c $(CF) -DSFX -o $@ globals.c
inflate_$O: inflate.c inflate.h $(UNZIP_H) crypt.h
$(CC) -c $(CF) -DSFX -o $@ inflate.c
match_$O: match.c $(UNZIP_H)
$(CC) -c $(CF) -DSFX -o $@ match.c
process_$O: process.c $(UNZIP_H) crc32.h
$(CC) -c $(CF) -DSFX -o $@ process.c
ttyio_$O: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
$(CC) -c $(CF) -DSFX -o $@ ttyio.c
ubz2err_$O: ubz2err.c $(UNZIP_H)
$(CC) -c $(CF) -DSFX -o $@ ubz2err.c
# funzip compilation section
cryptf$O: crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
$(CC) -c $(CF) -DFUNZIP -o $@ crypt.c
globalsf$O: globals.c $(UNZIP_H)
$(CC) -c $(CF) -DFUNZIP -o $@ globals.c
inflatef$O: inflate.c inflate.h $(UNZIP_H) crypt.h
$(CC) -c $(CF) -DFUNZIP -o $@ inflate.c
ttyiof$O: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
$(CC) -c $(CF) -DFUNZIP -o $@ ttyio.c
# optional assembler replacements
crc_i86$O: msdos/crc_i86.asm # 16bit only
$(AS) $(AF) msdos/crc_i86.asm $(ASEOL)
crc_gcc$O: crc_i386.S $(ACONF_DEP) # 32bit, GNU AS
$(AS) $(AF) -x assembler-with-cpp -c -o $@ crc_i386.S
crc_gcc.pic.o: crc_i386.S $(ACONF_DEP) # 32bit, GNU AS
$(AS) $(AF) -x assembler-with-cpp -c -o $@ crc_i386.S
crc_sysv$O: crc_i386.S $(ACONF_DEP) # 32bit, SysV AS
$(CC) -E $(AF) crc_i386.S > crc_i386s.s
$(AS) -o $@ crc_i386s.s
$(RM) crc_i386s.s
msdos$O: msdos/msdos.c $(UNZIP_H) unzvers.h # DOS only
$(CC) -c $(CF) msdos/msdos.c
msdos_$O: msdos/msdos.c $(UNZIP_H) # DOS unzipsfx
-$(CP) msdos/msdos.c msdos_.c > nul
$(CC) -c $(CF) -DSFX msdos_.c
$(RM) msdos_.c
#os2$O: os2/os2.c $(UNZIP_H) # OS/2 only
# $(CC) -c $(CF) os2/os2.c
unix$O: unix/unix.c $(UNZIP_H) unzvers.h # Unix only
$(CC) -c $(CF) unix/unix.c
unix_$O: unix/unix.c $(UNZIP_H) # Unix unzipsfx
$(CC) -c $(CF) -DSFX -o $@ unix/unix.c
unix.pic.o: unix/unix.c $(UNZIP_H) unzvers.h # Unix shlib
$(CC) -c $(CF) -o $@ unix/unix.c
unix_make:
# @echo\
# '(Ignore any errors from `make'"' due to the following command; it's harmless.)"
-@2>&1 $(LN) unix/Makefile . > /dev/null || echo > /dev/null
# this really only works for Unix targets, unless E and O specified on cmd line
clean:
@echo ""
@echo ' This is a Unix-specific target. (Just so you know.)'
@echo ""
-( cd $(IZ_OUR_BZIP2_DIR); $(MAKE) -f Makebz2.iz RM="rm -f" clean )
rm -f $(UNZIPS) $(OBJS) $(OBJF) $(OBJX) api$O apihelp$O crc_gcc$O \
crc_sysv$O unzipstb$O crypt_.c extract_.c globals_.c inflate_.c \
ttyio_.c crc_i386s.s msdos_.c process_.c unix_.c unzipsfx.c
rm -f flags
rm -rf ./$(PKGDIR)
# Package generation interface (by J.Bush). Originally tested under Sun
# Solaris 2.x. Other SVr4s may be very similar and could possibly use this.
# Note: expects version info to be stored in VERSION macro variable.
# See "README" under ./unix/Packaging
#
svr4package: unzips
@echo "Creating SVR4 package for Unix ..."
-@rm -rf ./$(PKGDIR) ./$(PKGDIR)_`uname -p`.pkg
-@sed -e "s/.VERSION./$(VERSION)/g" \
-e "s/.PSTAMP./$(LOGNAME)_`date | tr ' ' '_'`/g" \
-e "s/.ARCH./Solaris_`uname -rp | tr ' ' ','`/g" \
./unix/Packaging/pkginfo.in > ./unix/Packaging/pkginfo
-@sed -e "s/.ARCH./`uname -p`/g" \
./unix/Packaging/preinstall.in > ./unix/Packaging/preinstall
/usr/bin/pkgmk -d . -b . -r . -f ./unix/Packaging/prototype $(PKGDIR)
/usr/bin/pkgtrans -o -s . $(PKGDIR)_`uname -p`.pkg $(PKGDIR)
@echo " "
@echo "To install, copy $(PKGDIR)_`uname -p`.pkg to the target system, and"
@echo "issue the command (as root): pkgadd -d $(PKGDIR)_`uname -p`.pkg"
@echo " "
install: $(MANS)
-$(INSTALL_D) $(BINDIR)
$(INSTALL_PROGRAM) $(UNZIPS) $(BINDIR)
$(INSTALL) unix/zipgrep $(BINDIR)
$(RM) $(BINDIR)/zipinfo$E
$(LN) $(BINDIR)/unzip$E $(BINDIR)/zipinfo$E
-$(INSTALL_D) $(MANDIR)
$(INSTALL) man/funzip.1 $(MANDIR)/funzip.$(manext)
$(INSTALL) man/unzip.1 $(MANDIR)/unzip.$(manext)
$(INSTALL) man/unzipsfx.1 $(MANDIR)/unzipsfx.$(manext)
$(INSTALL) man/zipgrep.1 $(MANDIR)/zipgrep.$(manext)
$(INSTALL) man/zipinfo.1 $(MANDIR)/zipinfo.$(manext)
$(CHMOD) $(BINPERMS) $(INSTALLEDBIN)
$(CHMOD) $(MANPERMS) $(INSTALLEDMAN)
uninstall:
$(RM) $(INSTALLEDBIN) $(INSTALLEDMAN)
# added 10/28/04 EG
flags: unix/configure
sh unix/configure "${CC}" "${CF_NOOPT}" "${IZ_BZIP2}"
# the test zipfile
TESTZIP = testmake.zip
# test some basic features of the build
test: check
check:
@echo '##### This is a Unix-specific target. (Just so you know.)'
@echo '##### Make sure unzip, funzip and unzipsfx are compiled and'
@echo '##### in this directory.'
@if test ! -f ./unzip; then \
echo "##### ERROR: can't find ./unzip"; exit 1; fi
@if test ! -f ./funzip; then \
echo "##### ERROR: can't find ./funzip"; exit 1; fi
@if test ! -f ./unzipsfx; then \
echo "##### ERROR: can't find ./unzipsfx"; exit 1; fi
#
@if test ! -f $(TESTZIP); then \
echo "##### ERROR: can't find test file $(TESTZIP)"; exit 1; fi
#
@echo "##### testing extraction"
@./unzip -bo $(TESTZIP) testmake.zipinfo
@if test ! -f testmake.zipinfo ; then \
echo "##### ERROR: file extraction from $(TESTZIP) failed"; \
exit 1; fi
#
@echo '##### testing zipinfo (unzip -Z)'
@./unzip -Z $(TESTZIP) > testmake.unzip-Z
@if diff testmake.unzip-Z testmake.zipinfo; then echo "OK."; else \
echo "##### WARNING: zipinfo output doesn't match stored version"; \
echo '##### (If the only difference is the file times, compare your'; \
echo '##### timezone with the Central European timezone, which is one'; \
echo '##### hour east of Greenwich but effectively 2 hours east'; \
echo '##### during summer Daylight Savings Time. The upper two'; \
echo '##### lines should correspond to your local time when the'; \
echo '##### files were created, on 19 November 1998 at 10:46pm CET.'; \
echo '##### If the times are consistent, please ignore this warning.)'; \
fi
@$(RM) testmake.unzip-Z testmake.zipinfo
#
@echo '##### testing unzip -d exdir option'
@./unzip -bo $(TESTZIP) -d testun notes
@cat testun/notes
#
@echo '##### testing unzip -o and funzip (ignore funzip warning)'
@./unzip -boq $(TESTZIP) notes -d testun
@./funzip < $(TESTZIP) > testun/notes2
@if diff testun/notes testun/notes2; then true; else \
echo '##### ERROR: funzip output disagrees with unzip'; fi
#
@echo '##### testing unzipsfx (self-extractor)'
@cat unzipsfx $(TESTZIP) > testsfx
@$(CHMOD) 0700 testsfx
@./testsfx -bo notes
@if diff notes testun/notes; then true; else \
echo '##### ERROR: unzipsfx file disagrees with unzip'; fi
@$(RM) testsfx notes testun/notes testun/notes2
@rmdir testun
#
@echo '##### testing complete.'
################################
# INDIVIDUAL MACHINE MAKERULES #
################################
#----------------------------------------------------------------------------
# Generic targets using the configure script to determine configuration.
#----------------------------------------------------------------------------
# Well, try MAKE and see. By now everyone may be happy. 10/28/04 EG
generic: flags # now try autoconfigure first
eval $(MAKE) $(MAKEF) unzips ACONF_DEP=flags `cat flags`
# make $(MAKEF) unzips CF="${CF} `cat flags`"
generic_gcc:
$(MAKE) $(MAKEF) generic CC=gcc IZ_BZIP2="$(IZ_BZIP2)"
# extensions to perform SVR4 package-creation after compilation
generic_pkg: generic svr4package
generic_gccpkg: generic_gcc svr4package
#----------------------------------------------------------------------------
# Old static generic targets (can't assume make utility groks "$(MAKE)")
#----------------------------------------------------------------------------
generic1: unzips # first try if unknown
generic2: unix_make # second try if unknown: hope make is called "make"
make $(MAKEF) unzips CF="$(CF) -DBSD"
generic3: unix_make # third try if unknown: hope make is called "make"
make $(MAKEF) unzips CF="$(CF) -DSYSV"
# Generic build including bzip2 decompression support for unzip.
# Requires presence of the bzip2 sources in subdirectory bzip2.
generic_bz2: unix_make
@echo\
"This target assumes bzip2 sources are available in subfolder bzip2/."
$(MAKE) $(MAKEF) unzips D_USE_BZ2="-DUSE_BZIP2"\
L_BZ2="-lbz2" LIBBZ2="$(IZ_OUR_BZIP2_DIR)/libbz2.a" \
CC_BZ="$(CC)" CFLAGS_BZ="$(CFLAGS)"
# Generic unzip and funzip target using either shared or static zlib for
# inflate rather than the original UnZip version. (libz was libgz prior
# to 0.94) Need to figure out how to force unzipsfx to use static libz.
generic_zlib: unix_make
@echo\
"This target assumes zlib (libz.a or libz.so.*) is already installed."
$(MAKE) unzip funzip CF="$(CF) -DUSE_ZLIB" LF2="-lz $(LF2)"
# Generic GNU C shared library. This is an example of how to compile UnZip as
# a shared library. (Doing so as a static library would be similar.) See also
# the linux_shlib target.
generic_shlib: unix_make
@echo\
'This target requires GNU C. When done, do "setenv LD_LIBRARY_PATH `pwd`"'
@echo\
'or similar in order to test the shared library in place (with ./unzip_shlib ,'
@echo\
'which is UnZip linked with the DLL). This target is an example only.'
@echo ""
$(MAKE) objsdll CC=gcc CFLAGS="-O3 -Wall -fPIC -DDLL"
gcc -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.4 $(OBJSDLL)
$(RM) libunzip.so.0 libunzip.so
$(LN) -s libunzip.so.0.4 libunzip.so.0
$(LN) -s libunzip.so.0 libunzip.so
gcc -c -O unzipstb.c
gcc -o unzip_shlib unzipstb.o -L. -lunzip
#----------------------------------------------------------------------------
# "Autoconfig" group, aliases for the generic targets using configure:
#----------------------------------------------------------------------------
# Solaris: generic, plus generation of installable package.
solaris_pkg: generic_pkg
# Solaris: forcing usage of GCC, plus generation of installable package.
solaris_gccpkg: generic_gcc_pkg
#----------------------------------------------------------------------------
# "Normal" group (BSD vs. SysV may be set in unzip.h via predefined macros):
#----------------------------------------------------------------------------
386i: unzips # sun386i, SunOS 4.0.2
#3Bx: unzips # AT&T 3B2/1000-80; should work on any WE32XXX machine
#aix_rt: unzips # IBM RT 6150 under AIX 2.2.1
bull: unzips # Bull DPX/2, BOS 2.00.45 (doesn't require -Xk switch)
convex: unzips # Convex C-120 and C-210 (-O is enough; -ext is default)
cray: unzips # Cray-2 and Y-MP, using default (possibly old) compiler
dec: unzips # DEC 5820 (MIPS RISC), test version of Ultrix v4.0
encore: unzips # Multimax
eta: unzips # ETA-10P*, hybrid SysV with BSD 4.3 enhancements
gould: unzips # Gould PN9000 running UTX/32 2.1Bu01
hp: unzips # HP 9000 series (68020), 4.3BSD or HP-UX A.B3.10 Ver D
hpux: unzips # (to match zip's makefile entry)
mips: unzips # MIPS M120-5(?), SysV.3 [error in sys/param.h file?]
next10: unzips # NeXT (generic; use next2x or next3x for better opt.)
osf1: unzips # DECstation, including Alpha-based; DEC OSF/1 v1.x
pyr_: unzips # [failsafe target for pyramid target below]
pyr_ucb: unzips # Pyramids running BSD universe by default (see below)
realix: unzips # Modcomp Real/IX (SysV.3); note "gcc" = GLS C, not GNU
sco: unzips # Xenix/386 (tested on 2.3.1); SCO Unix 3.2.0.
sgi: unzips # Silicon Graphics; Irix 3.3.2, 4.0.x, 5.2, etc.
stellar: unzips # gs-2000
sun: unzips # old target; no good with solaris...use "sunos" now
sunos: unzips # no good with SunOS 3.x...use "sunos3" or "sunos4" now
sunos4: unzips # Sun 3, 4; SunOS 4.x (SOME SYSTEMS ARE SYSTEM V!)
tahoe: unzips # tahoe (CCI Power6/32), 4.3BSD
ultrix: unzips # VAXen, DEC 58x0 (MIPS guts), DECstation 2100; v4.x
vax: unzips # general-purpose VAX target (not counting VMS)
#----------------------------------------------------------------------------
# BSD group (for timezone structs [struct timeb]):
#----------------------------------------------------------------------------
bsd: _bsd # generic BSD (BSD 4.2 & Ultrix handled in unzip.h)
_bsd: unix_make
$(MAKE) unzips CF="$(CF) -DBSD"
#----------------------------------------------------------------------------
# SysV group (for extern long timezone and ioctl.h instead of sgtty.h):
#----------------------------------------------------------------------------
aix_rt: _sysv # IBM RT 6150 under AIX 2.2.1
aviion: _sysv # Data General AViiONs, DG/UX 4.3x
pyr_att: _sysv # Pyramids running AT&T (SysV) universe by default
stardent: _sysv # Stardent ...
sysv: _sysv # generic System V Unix (Xenix handled in unzip.h)
xos: _sysv # Olivetti LSX-3005..3045, X/OS 2.3 and 2.4
_sysv: unix_make
$(MAKE) unzips CF="$(CF) -DSYSV"
# extension to perform SVR4 package-creation after compilation
_sysvp: _sysv svr4package
#----------------------------------------------------------------------------
# Version 7 group (old/obsolescent):
#----------------------------------------------------------------------------
pixel: _v7 # Pixel 80, 100 (68000-based, V7/mostly BSD4.1 compat.)
v7: _v7 # generic Unix Version 7 box (prob. only Pixel...)
_v7:
make $(MAKEF) unzips \
CF="$(CF) -DV7 -DNO_PARAM_H -DSHORT_NAMES -DBSD -DZMEM -DNO_LCHOWN -DNO_LCHMOD"
#----------------------------------------------------------------------------
# "Unique" group (require non-standard options):
#----------------------------------------------------------------------------
# AT&T 3B2/1000-80; should work on any WE32XXX machine
3Bx: unix_make
$(MAKE) unzips CF="$(CF) -DCBREAK=2"
# AT&T 7300 (M68000/SysV.3) (add -DSYSV? -DNO_LIMITS?)
7300: unix_make
$(MAKE) unzips CF="$(CF) -DNO_DIR -DNO_MKDIR -DNO_STRNICMP -DNO_UID_GID -DNO_FCHMOD -DNO_LCHOWN -DNO_LCHMOD -DCBREAK=2"
7300_gcc: unix_make
$(MAKE) unzips CC=gcc LD=gcc LF2="" CFLAGS="-O2" \
LOC="-DNO_DIR -DNO_MKDIR -DNO_STDLIB_H -DNO_STRNICMP -DNO_UID_GID -DNO_FCHMOD -DNO_LCHOWN -DNO_LCHMOD -DCBREAK=2 $(LOC)"
$(STRIP) $(UNZIPS)
# IBM AIX 3.x on an RS/6000: see rs6000 target below
aix: rs6000
# Amdahl (IBMish) mainframe, UTS (SysV) 1.2.4, 2.0.1, 3.x
amdahl: unix_make
$(MAKE) unzips CF="$(CF) -DSYSV -DNO_UID_GID -DNO_LCHOWN -DNO_LCHMOD"
# Amdahl UTS 2.1.4 with "extended file types" filesystem (aarrrggghhhh...)
amdahl_eft: unix_make
$(MAKE) unzips CF="$(CF) -eft -DSYSV -DNO_UID_GID -DNO_LCHOWN -DNO_LCHMOD"
# Apollo Domain/OS machines (added -D...SOURCE options) [Gordon Fox, 960810]
apollo: unix_make
$(MAKE) unzips CF="$(CF) -D_INCLUDE_BSD_SOURCE -D_INCLUDE_XOPEN_SOURCE -DNO_LCHOWN -DNO_LCHMOD"
# BSDI BSD/OS on 386 platform, using the assembler replacement for crc32.c
bsdi: unix_make
@echo 'NOTE: use bsdi_noasm target for non-Intel BSD/OS compiles.'
$(MAKE) unzips CC=gcc2 LD=shlicc2 AS=gcc2\
CFLAGS="-O3 -Wall -DASM_CRC -DBSD" CRCA_O=crc_gcc$O
# BSDI BSD/OS
bsdi_noasm: unix_make
# @echo 'NOTE: use bsd target for non-Intel BSD/OS compiles.'
$(MAKE) unzips CC=gcc2 LD=shlicc2 AS=gcc2\
CFLAGS="-O3 -Wall -DBSD"
# Coherent 3.x/4.x, Mark Williams C. ``For Coherent's CC, it needs either
# -T0 or -T150000 (or bigger) added to the CFLAGS, otherwise the compiler
# runs out of memory and dies in zipinfo.c.'' [Fred "Fredex" Smith, 940719]
coherent: unix_make
$(MAKE) unzips CFLAGS="$(CFLAGS) -T0 -DNO_LCHOWN -DNO_LCHMOD"
# Cray-2, Y-MP or C90, running Unicos 5.x to 8.x (SysV + BSD enhancements)
# and Standard (ANSI) C compiler 3.0 or later.
cray_opt: unix_make
$(MAKE) unzips CFLAGS="$(CFLAGS) -h scalar3 -h vector3 -DNO_LCHOWN -DNO_LCHMOD"
# The unzip41 build on a Cyber 910/SGI running Irix v3.3.3 was successful
# with the following change to Makefile:
cyber_sgi: unix_make
$(MAKE) unzips CFLAGS="$(CFLAGS) -I/usr/include/bsd -DNO_LCHOWN -DNO_LCHMOD"\
LF="-lbsd $(LF)" SL="-lbsd $(SL)"
# The Cygwin environment on a Win32 system, treated as an UNIX emulator.
# This port does not offer full access to the Windows file system.
# Info-ZIP recommends using "win32/Makefile.gcc" instead.
cygwin: unix_make
$(MAKE) unzips CC=gcc LD=gcc AS=gcc\
CFLAGS="-O3 -DASM_CRC -DNO_LCHOWN -DNO_LCHMOD"\
AF="-Di386 $(AF)" CRCA_O=crc_gcc$O\
E=".exe" CP="cp" LN="ln -s"
# 680x0, DIAB dnix 5.2/5.3 (a Swedish System V clone)
#
# Options for the dnix cc:
# -X7 = cc is strict ANSI C
# -X9 = warnings if a function is used without a declaration
#
dnix: unix_make
$(MAKE) unzips CFLAGS="$(CFLAGS) -X7 -X9 -DDNIX"
# FreeBSD on Intel:
freebsd: unix_make
@echo 'NOTE: use bsd target for non-Intel FreeBSD compiles (if any).'
$(MAKE) unzips CC=gcc LD=gcc AS=gcc\
CFLAGS="-O3 -Wall -DASM_CRC -DBSD"\
AF="-Di386 $(AF)" CRCA_O=crc_gcc$O
# Generic BSDish Unix gcc. ``The -O3 only works with later versions of gcc;
# you may have to use -O2 or -O for earlier versions. I have no idea why
# -s causes this bug in gcc.'' [Bug: "nm: unzip: no name list", "collect:
# /usr/bin/nm returned 1 exit status".] If you don't have strip, don't
# worry about it (it just makes the executable smaller and can be replaced
# with "echo" instead).
#
gcc: unix_make
$(MAKE) unzips CC=gcc LD=gcc CFLAGS="-O3" LF2=""
$(STRIP) $(UNZIPS)
# Heurikon HK68 (68010), UniPlus+ System V 5.0, Green Hills C-68000
hk68: unix_make
$(MAKE) unzips CC="gcc" LD="gcc"\
LF="-n $(LF)" SL="-n $(SL)" FL="-n $(FL)"\
CFLAGS="-ga -X138 -Dlocaltime=localti -Dtimezone=timezon"
# ISC Unix on 386 platform
isc: unix_make
$(MAKE) unzips LF2="-lc_s $(LF2)" CRCA_O=crc_sysv$O \
CFLAGS="-O" LOC="-DASM_CRC -DSYSV -DNO_UID_GID -DNEED_PTEM -DNO_LCHOWN -DNO_LCHMOD $(LOC)" \
AF="-DNO_UNDERLINE -Djecxz=jcxz -DALIGNMENT='.align 16' $(AF)"
isc_gcc: unix_make
$(MAKE) unzips AS=gcc CC=gcc LD=gcc CRCA_O=crc_gcc$O \
LF="-shlib $(LF)" SL="-shlib $(SL)" FL="-shlib $(FL)" LF2="" \
CFLAGS="-O3" LOC="-DSYSV -DASM_CRC -DNO_UID_GID -DNEED_PTEM -DNO_LCHOWN -DNO_LCHMOD $(LOC)" \
AF="-DNO_UNDERLINE -Djecxz=jcxz -DALIGNMENT='.align 16' $(AF)"
$(STRIP) $(UNZIPS)
# "ISI machine (68025 CPU)" (based on e-mail from Rob White <rsw@tfs.com>;
# no further information). May also need DIRENT defined.
isi: unix_make
$(MAKE) unzips CF="$(CF) -DDECLARE_ERRNO -DNO_LCHOWN -DNO_LCHMOD"
# Linux on 386 platform, using the assembler replacement for crc32.c. (-O4 and
# -fno-strength-reduce have virtually no effect beyond -O3. Add "-m486
# -malign-functions=2 -malign-jumps=2 -malign-loops=2" for Pentium [Pro]
# systems.)
linux: unix_make
@echo 'NOTE: use linux_noasm target for non-Intel Linux compiles.'
$(MAKE) unzips CC=gcc LD=gcc AS=gcc\
CFLAGS="-O3 -Wall -DASM_CRC"\
AF="-Di386 $(AF)" CRCA_O=crc_gcc$O
# GRR: this echo is pointless; if user gets this far, no difference to install
# @echo 'Be sure to use the install_asm target rather than the install target'
linux_asm: linux
# Linux (Posix, approximately SysV): virtually any version since before 0.96,
# for any platform. Change "-O" to "-O3" or whatever, as desired...
linux_noasm: unix_make
$(MAKE) unzips CC=gcc LD=gcc CFLAGS="-O -Wall"
# Linux with lcc compiler: __inline__ (stat.h) not recognized, and must edit
# /usr/include/gnu/types.h to get rid of "long long" if __LCC__ defined. -O3
# (or -O2 or -O) is ignored. [GRR 960828: test target only]
#
linux_lcc: unix_make
$(MAKE) unzips CC=lcc LD=lcc CFLAGS="-O3 -Wall -D__inline__= "
# Linux host with go32 (djgpp) cross-compiler (go32crs.tgz) for 32-bit DOS.
linux_dos: unix_make
$(MAKE) unzips CC=go32gcc LD=go32gcc M=msdos OSDEP_H="msdos/doscfg.h" \
CFLAGS="-O2 -Wall"
# go32-strip unzip
# Due to limitations of the cross-compiling package, this has to be
# done manually:
@echo Copy $(UNZIPS) to your DOS partition and use coff2exe.
# Linux ELF shared library (ooo, it's so easy). This is a test target for
# now, and it only makes the UnZip/ZipInfo stuff (not fUnZip or UnZipSFX).
# The version number may eventually change to match the UnZip version. Or
# not. Whatever. Also do "setenv LD_LIBRARY_PATH `pwd`" or similar to test
# the DLL in place (with unzip_shlib, which is UnZip linked with the shared
# library).
#
linux_shlib: unix_make
$(MAKE) objsdll CC=gcc CFLAGS="-O3 -Wall -fPIC"\
LOC="-DDLL -DASM_CRC $(LOC)"\
AS=gcc AF="-fPIC -Di386 $(AF)" CRCA_O=crc_gcc$O
gcc -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.4 $(OBJSDLL)\
crc_gcc.pic.o
ln -sf libunzip.so.0.4 libunzip.so.0
ln -sf libunzip.so.0 libunzip.so
gcc -c -O unzipstb.c
gcc -o unzip_shlib unzipstb.o -L. -lunzip
# Linux ELF shared library, as above, but using inflate() from zlib (libz.so)
# instead of the original UnZip version. (libz was libgz prior to 0.94)
linux_shlibz: unix_make
$(MAKE) objsdll CC=gcc AS=gcc AF="-fPIC -Di386 $(AF)" CRCA_O=crc_gcc$O\
CFLAGS="-O3 -Wall -fPIC" LOC="-DDLL -DUSE_ZLIB -DASM_CRC $(LOC)"
gcc -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.4 $(OBJSDLL)\
crc_gcc.pic.o
ln -sf libunzip.so.0.4 libunzip.so.0
gcc -c -O unzipstb.c
gcc -o unzip unzipstb.o -L. -lunzip -lz
# LynxOS-x86 2.3.0 and newer, a real-time BSD-like OS; uses gcc.
lynx: unix_make
$(MAKE) unzips CC=gcc CF="$(CF) -DLynx -DLYNX -DBSD -DUNIX"
# Macintosh MacOS X (Unix-compatible enviroment), using standard compiler
macosx: unix_make
$(MAKE) unzips CFLAGS="-O3 -Wall -DBSD" LF2=""
$(STRIP) $(UNZIPS)
# Macintosh MacOS X (Unix-compatible enviroment), using gcc
macosx_gcc: unix_make
$(MAKE) unzips CC=gcc CFLAGS="-O3 -Wall -DBSD" LF2=""
$(STRIP) $(UNZIPS)
# Minix 1.5 PC for the 386. Invoke as is to use default cc, or as "make
# minix CC=gcc" to use gcc. Try "make linux" if you have a working termios.h.
minix: unix_make
$(MAKE) unzips CF="$(CF) -DMINIX -DSHORT_NAMES -DNO_LCHOWN -DNO_LCHMOD" CC=$(CC) LD=$(CC)
# MPE/iX, the Unix variant for HP 3000 systems.
mpeix: unix_make
$(MAKE) unzips CC=c89\
CF="$(CF) -DUNIX -D_POSIX_SOURCE -DHAVE_TERMIOS_H -DPASSWD_FROM_STDIN -DNO_PARAM_H -DNO_LCHOWN -DNO_LCHMOD"\
LF2=-lbsd CP=cp LN="ln -s"
# NeXT info.
next:
@echo
@echo\
' Please pick a specific NeXT target: "make next10" will create a generic'
@echo\
' NeXT executable; "make next2x" will create a smaller executable (for'
@echo\
' NeXTstep 2.0 and higher); "make next3x" will create a small executable'
@echo\
' with significantly better optimization (NeXTstep 3.0 and higher only);'
@echo\
' "make nextfat" will create a fat, multi-architecture (NeXT plus Intel)'
@echo\
' executable (NeXTstep 3.1 and higher only).'
@echo
# 68030 BSD 4.3+Mach. NeXT 2.x: make the executable smaller.
next2x: unix_make
$(MAKE) unzips LF2="-object -s"
# NeXT 3.x: as above, plus better optimization.
next3x: unix_make
$(MAKE) unzips CFLAGS="-O2" LF2="-object -s"
# NeXT 3.1+: make the executable fat (multi-architecture binary [MAB],
# for "black" [NeXT] and "white" [x86] hardware, so far).
nextfat: unix_make
$(MAKE) unzips CFLAGS="-O2 -arch i386 -arch m68k" \
LF2="-arch i386 -arch m68k -object -s"
# IBM OS/390 (formerly MVS) compiled under "OpenEdition" shell
os390: unix_make
set -x; \
$(MAKE) $(MAKEF) unzips \
CC=c89 LD="\$$(CC) -Wl,EDIT=NO" \
CF="$(CF) -DSYSV -DUNIX -DOS390 -DEBCDIC -DNO_PARAM_H \
-DNO_LCHOWN -DNO_LCHMOD \
-D_ALL_SOURCE $(HOST_VERSINFO)" LF2=""
# Sequent Symmetry running Dynix/ptx (sort of SysV.3): needs to link
# with libseq to get symlink().
ptx: unix_make
$(MAKE) unzips CF="$(CF) -DSYSV -DTERMIO -DPTX -DNO_LCHOWN -DNO_LCHMOD" LF2="$(LF2) -lseq"
# Pyramid 90X (probably all) under >= OSx4.1, either universe. (This is an
# experimental target! If it fails, use either pyr_ucb or pyr_att instead.)
# The make in the BSD half is too stupid to understand $(MAKE), sigh...
pyramid: unix_make
-make $(MAKEF) pyr_`universe`
# QNX/Neutrino is "special" because you don't have any native development
# tools yet. Set ARCH to "x86", "ppcbe", "ppcle", "mipsbe", or "mipsle"
# to produce x86, PowerPC (big- or little-endian) and MIPS (big-
# or little-endian) using gcc. [cjh]
qnxnto: unix_make
@if [ "$(ARCH)" = "" ] ; then \
echo "You didn't set ARCH; I'll assume you meant ARCH=x86..." ; \
echo "" ; \
$(MAKE) $(MAKEF) CC="qcc -Vgcc_ntox86" unzips ; \
else \
echo "Making unzip for $(ARCH)..." ; \
echo "" ; \
$(MAKE) $(MAKEF) CC="qcc -Vgcc_nto$(ARCH)" unzips ; \
fi
# REGULUS: 68040-based, "real-time" SysV.3 mutant; uses gcc, with "REGULUS"
# predefined.
regulus: unix_make
$(MAKE) unzips CF="$(CF) -traditional -DSYSV -DNO_MKDIR -DNO_LCHOWN -DNO_LCHMOD"
# IBM RS/6000 under AIX 3.2
rs6000: unix_make
$(MAKE) unzips CF="$(CF) -DBSD -D_BSD -DUNIX" LF2="-lbsd"
# SCO cross compile from Unix to DOS. Tested with Xenix/386 and OpenDeskTop.
# Should work with Xenix/286 as well. (davidsen) Note that you *must* remove
# the Unix objects and executable before doing this! (Piet Plomp: gcc won't
# recognize the -M0 flag that forces 8086 code.) (GRR: may need to reduce
# stack to 0c00h if using 286/small-model code...?)
sco_dos: unix_make
$(MAKE) unzips CFLAGS="-O -dos -M0" M=msdos OSDEP_H="msdos/doscfg.h" \
LF="-dos -F 2000" LF2="-o unzip.exe" \
FL="-dos" FL2="-o funzip.exe" SL="-dos" SL2="-o unzipsfx.exe"
# SCO UNIX with shared libraries and no international support. If you are
# not using a USA-style keyboard and display, you may want to remove -nointl
# to get support. It adds quite a bit to the size of the executable.
sco_sl: unix_make
$(MAKE) unzips LF="$(LF) -nointl" LF2="$(LF2) -lc_s"\
SL="$(SL) -nointl" FL="$(FL) -nointl"
# SCO Xenix/286 2.2.3 or later with development system 2.2.1 or later
sco_x286: unix_make
$(MAKE) unzips CF="$(CF) -Mel2 -LARGE -DNO_MKDIR -DNO_LCHOWN -DNO_LCHMOD" \
LF="$(LF) -Mel2 -LARGE -lx" SL="$(SL) -Mel2 -LARGE" \
FL="$(FL) -Mel2 -LARGE"
# Sequent Symmetry with Dynix. (386, but needs -DZMEM)
# This should also work on Balance but I can't test it just yet.
sequent: unix_make
$(MAKE) unzips CF="$(CF) -DBSD -DZMEM -DNO_LCHOWN -DNO_LCHMOD"
# Sun 2, 3, 4 running SunOS 3.x
sunos3: unix_make
$(MAKE) unzips CF="$(CF) -DNO_UID_GID -DUID_USHORT -DNO_LCHOWN -DNO_LCHMOD"
# Generic System V + GNU C
sysv_gcc: unix_make
$(MAKE) unzips CC=gcc LD=gcc CFLAGS="-O2 -DSYSV" LF2=""
$(STRIP) $(UNZIPS)
# AT&T 6300+, System V.2 Unix: run-time out-of-memory error if don't use -Ml;
# also compile-time error if work arrays dimensioned at HSIZE+2 (>32K)
sysv6300: unix_make
$(MAKE) unzips CF="$(CF) -Ml -DSYSV -DNO_LCHOWN -DNO_LCHMOD" LF="$(LF) -Ml"\
SL="$(SL) -Ml" FL="$(FL) -Ml"
# Texas Instruments System V.3 (running on HP 9000-1500)
ti_sysv: unix_make
$(MAKE) unzips CF="$(CF) -DSYSV -DNO_UID_GID -DUID_USHORT -DNO_LCHOWN -DNO_LCHMOD"
# SCO Xenix (Joe Foster 950508: "unzip needs to be linked with -lx [for the
# opendir(), readdir(), telldir(), rewinddir(), and closedir() calls]")
xenix: unix_make
$(MAKE) unzips LF2="$(LF2) -lx"
# Wombat 68000 (or whatever).
# I didn't do this. I swear. No, really.
wombat: unix_make
@echo
@echo ' Ha ha! Just kidding.'
@echo
|