📄 makefile.dj2
字号:
# Makefile for Info-ZIP's UnZip, UnZipSFX and fUnZip using DJGPP v2.01 or# higher, by Frank Donahoe. Last updated: 17 Feb 02# This Makefile is specifically tailored for GNU make and GNU C and# may not work with a generic Unix-compatible make utility. The latest# make version is 3.78.1. Thanks to Eli Zaretskii for generously responding# to questions with advice on the changes needed to make install work under# DJGPP version 2.0x.# Features used:# - pattern rules (%.o : %.c, etc.)# - GNU-specific conditionals and functions (ifeq, $(patsubst,,),...)## The stand-alone executable requires DPMI services to run. If running# in a DOS window under Windows 3.1 or later, the dpmi server is auto-# matically present. Under DOS, if a DPMI server is not loaded, the# program will look for "cwsdpmi.exe." If found, it will be loaded for# the duration of the program.## cwsdpmi is a "free" dpmi server written by Charles W. Sandmann# (sandman@clio.rice.edu). It may be found, among other sites, on SimTel# Net at the URL:## ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2misc/csdpmi?[b,s].zip## and on its mirrors worldwide. The latest version as of this writing is 5.# Archives with the b postscript contain the binaries. An alternate server# is found, l.c., in the archive pmode??[b,s].zip. The latest (20001022) is# v1.3.# Separators colon and <sp> are used in Unix, semi-colon and <sp> in DOS.VPATH=. msdosifdef NOASMUSE_ASMCRC=elseUSE_ASMCRC=1endif.PHONY : clean install uninstall# UnZip flags# LOCAL_UNZIP may be set in "AUTOEXEC.BAT" or defined in "djgpp.env" under# [make] as in the example below. Or, if you habitually work in a DOS box# under Windows9x, right click on the MS-DOS icon, select properties, then# program, to find a slot called batch file, where you may specify the path# to a file which will set the variables of choice every time the box is# opened.# See, for example, DOSWILD, in the file INSTALL.# [make]# +BUTT=-mcpu=pentiumpro# +LOC=-W -Wall# +LOCAL_UNZIP=-DUSE_UNSHRINK# BUTT may be defined to specify the target system. With gcc v2.95,# optimizing options like "-mcpu=pentiumpro -march=pentiumpro" are supported,# but the traditional "-m386" and "-m486" options of previous gcc 2.x# version will continue to work.# So if you are in the habit of compiling from source, programs for your# own use, it is well to consult gcc's manual for options suitable to# your processer and to set BUTT accordingly. Consult INSTALL for# LOCAL_UNZIP.LOC=CC=gccLD=$(CC)CPPFLAGS=-I. -DDOS -DUSE_VFAT $(ASMFLG) $(LOCAL_UNZIP) $(LOC)ASFLAGS=$(CPPFLAGS)CFLAGS=-Wall -O2 $(BUTT) $(CPPFLAGS)# See INSTALL for discussion of SFX_EXDIR.# EXDIR=-DSFX_EXDIRFUN_FLAGS=$(CFLAGS) -DFUNZIP# Include OFP for a modest decrease in size of unzipsfx.exe.OFP=-fomit-frame-pointerSFX_FLAGS=-Wall -O2 $(CPPFLAGS) -DSFX $(EXDIR) $(OFP)LDFLAGS=-s# general-purpose stuff# If cp.exe is not found change to CP=copy /Y .CP = cp -fp# If install.exe is not found change to INSTALL=$(CP) . To prevent a# conflict with any of the many different "install's" that might be found# in the path, GNU install will be called as `ginstall'. This also bypasses# a stub bug that cropped up with the install from fil316b.zip.INSTALL=ginstall# The default value of RM is "rm -f" . If rm.exe is not found, uncomment# the following:# RM=del# Laszlo Molnar who wrote DJ Packer and Markus F. X. J. Oberhumer who wrote# the compression library used by the DJ Packer have collaborated on the# Ultimate Packer for eXecutables, which has recently been released. Look# for upx???d.zip at http://upx.sourceforge.net/# As an alternative, look for "djp.exe", now two years old, in the archive# mlp107[b,s].zip, found in the same location as csdpmi?[b,s].zip (see above).# Do not add the option -s to djp.exe without making the required changes# to the target zipinfo$E. Uncomment the three lines beginning with $(DJP)# or $(DJPSX).#DJP = djp -q#DJPSX = djp -q -sDJP = upx -qq --bestDJPSX = $(DJP)E = .exeO = .oM=msdos# defaults for crc32 stuff and system dependent headersifdef USE_ASMCRCASMFLG = -DASM_CRCCRC32 = crc_gccelseASMFLG =CRC32 = crc32endif# object filesOBJS1 = unzip$O $(CRC32)$O crctab$O crypt$O envargs$O explode$OOBJS2 = extract$O fileio$O globals$O inflate$O list$O match$OOBJS3 = process$O ttyio$O unreduce$O unshrink$O zipinfo$OOBJS = $(OBJS1) $(OBJS2) $(OBJS3) $M$OOBJX = unzipsfx$O $(CRC32)$O crctab_$O crypt_$O extract_$O fileio_$O \ globals_$O inflate_$O match_$O process_$O ttyio_$O $M_$OOBJF = funzip$O $(CRC32)$O crypt-$O globals-$O inflate-$O ttyio-$OOBJECTS_ALL = $(sort $(OBJS) $(OBJX) $(OBJF) crc32$O crc_gcc$O)# Common header files included by all C sources:UNZIP_H = unzip.h unzpriv.h globals.h msdos/doscfg.h# executable filesUNZIPS = unzip$E zipinfo$E funzip$E unzipsfx$E# pattern rules to compile the sources:%$O : %.c $(CC) $(CFLAGS) -c $< -o $@%-$O: %.c $(CC) $(FUN_FLAGS) -c $< -o $@%_$O: %.c $(CC) $(SFX_FLAGS) -c $< -o $@%sfx$O: %.c $(CC) $(SFX_FLAGS) -c $< -o $@all: unzipsunzips: unzip$E zipinfo$E funzip$E unzipsfx$Eunzip$E: $(OBJS) $(LD) $(LDFLAGS) $(OBJS) -o $@# $(DJP) $@zipinfo$E: unzip$E stubify -g $@ stubedit $@ runfile=unzip argv0=zipinfofunzip$E: $(OBJF) $(LD) $(LDFLAGS) $(OBJF) -o $@# $(DJP) $@unzipsfx$E: $(OBJX) $(LD) $(LDFLAGS) $(OBJX) -o $@# $(DJPSX) $@# explicit compilation instructions:crc_gcc$O: crc_i386.S # 32bit, GNU AS $(CC) $(ASFLAGS) -x assembler-with-cpp -c -o $@ crc_i386.S# BIN_PATH may be defined in djgpp.env [make] or defined below. If the# installation is to the directory containing gcc.exe etc. place the# following in djgpp.env:# [make]# +BIN_PATH=%\DJDIR%\bin# Even if so placed, it can be over-ridden here by, say:# BIN_PATH=c:\usr\bininstall: -@if not exist $(BIN_PATH)\nul mkdir $(BIN_PATH) command.com /c for %f in ($(UNZIPS)) do $(INSTALL) %f $(BIN_PATH) > NULuninstall: command.com /c for %f in ($(UNZIPS)) do $(RM) $(BIN_PATH)\%f > NULclean:ifeq ($(firstword $(RM)), del) $(RM) *$O $(RM) *.~ $(RM) *.exeelse $(RM) $(OBJECTS_ALL) *.~ *.exeendif# Source dependencies:crc_gcc$O: crc_i386.Scrc32$O: crc32.c $(UNZIP_H) zip.hcrctab$O: crctab.c $(UNZIP_H) zip.hcrctab_$O: crctab.c $(UNZIP_H) zip.hcrypt$O: crypt.c $(UNZIP_H) zip.h crypt.h ttyio.hcrypt-$O: crypt.c $(UNZIP_H) zip.h crypt.h ttyio.hcrypt_$O: crypt.c $(UNZIP_H) zip.h crypt.h ttyio.henvargs$O: envargs.c $(UNZIP_H)explode$O: explode.c $(UNZIP_H)extract$O: extract.c $(UNZIP_H) crypt.hextract_$O: extract.c $(UNZIP_H) crypt.hfileio$O: fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.hfileio_$O: fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.hfunzip$O: funzip.c $(UNZIP_H) crypt.h ttyio.h tables.hglobals$O: globals.c $(UNZIP_H)globals-$O: globals.c $(UNZIP_H)globals_$O: globals.c $(UNZIP_H)inflate$O: inflate.c inflate.h $(UNZIP_H)inflate-$O: inflate.c inflate.h $(UNZIP_H) crypt.hinflate_$O: inflate.c inflate.h $(UNZIP_H)list$O: list.c $(UNZIP_H)match$O: match.c $(UNZIP_H)match_$O: match.c $(UNZIP_H)msdos$O: msdos/msdos.c $(UNZIP_H)msdos_$O: msdos/msdos.c $(UNZIP_H)process$O: process.c $(UNZIP_H)process_$O: process.c $(UNZIP_H)ttyio$O: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.httyio-$O: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.httyio_$O: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.hunreduce$O: unreduce.c $(UNZIP_H)unshrink$O: unshrink.c $(UNZIP_H)unzip$O: unzip.c $(UNZIP_H) crypt.h unzvers.h consts.hunzipsfx$O: unzip.c $(UNZIP_H) crypt.h unzvers.h consts.hzipinfo$O: zipinfo.c $(UNZIP_H)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -