169 lines
5.4 KiB
Text
169 lines
5.4 KiB
Text
# Makefile for Zip, ZipCloak, ZipNote and ZipSplit
|
|
# using emx 0.9c for DOS.
|
|
# By Kai-Uwe Rommel, Chr. Spieler, E-Yen Tan (and others).
|
|
# Last updated 7th January 2007.
|
|
#
|
|
# This Makefile is a stripped down version of win32/Makefile.emx that
|
|
# builds executables applying the default MSDOS emx setup. For variant
|
|
# targets (using zlib), and cross-compilation for WIN32 or OS/2, take a
|
|
# look into "win32/makefile.emx" resp. "os2/makefile.os2".
|
|
#
|
|
# Supported Make utilities:
|
|
# - Microsoft/IBM nmake (e.g. from MSC 6.0 or newer)
|
|
# - dmake 3.8 or higher
|
|
# - GNU make, at least version 3.68 (GNUish 16-bit port, RSXNT Make 3.75 in a
|
|
# Win95/WinNT DOS box, DJGPP v1.12 Make 3.71, some versions of DJGPP v2.x
|
|
# 32-bit Make; current DJGPP v2.01 Make 3.76.1 does NOT work)
|
|
# - NOT watcom make
|
|
# The "smart" Make utilities mentioned below are Christian Spieler's
|
|
# enhanced version of GNUish 16-bit Make (3.74) and his adaption of these
|
|
# GNU Make sources to EMX (32-bit).
|
|
|
|
# Supported 32-bit C Compilers for MSDOS:
|
|
# - GNU gcc (emx kit 0.9c or newer, 32-bit)
|
|
|
|
# Supported Assemblers:
|
|
# - GNU as with GNU gcc
|
|
|
|
|
|
# To use, enter "make/nmake/dmake -f msdos/makefile.emx"
|
|
# (this makefile depends on its name being "msdos/makefile.emx").
|
|
|
|
# emx 0.9c, gcc, a.out format, for MS-DOS
|
|
CC=gcc -O2 -m486 -Wall
|
|
CFLAGS=-DDOS -DMSDOS -DASM_CRC
|
|
AS=gcc
|
|
ASFLAGS=-Di386
|
|
LDFLAGS=-o ./
|
|
LDFLAGS2=-s -Zsmall-conv
|
|
OUT=-o
|
|
OBJ=.o
|
|
CRCA_O=crc_gcc.o
|
|
OBJA=matchgcc.o
|
|
OBJZS=msdos.o
|
|
OBJUS=msdos_.o
|
|
OSDEP_H=msdos/osdep.h
|
|
ZIPUP_H=msdos/zipup.h
|
|
|
|
#default settings for target dependent macros:
|
|
DIRSEP = /
|
|
AS_DIRSEP = /
|
|
RM = del
|
|
LOCAL_OPTS = $(LOCAL_ZIP)
|
|
CCFLAGS = $(CFLAGS) $(LOCAL_OPTS)
|
|
|
|
|
|
OBJZ1 = zip$(OBJ) zipfile$(OBJ) zipup$(OBJ) fileio$(OBJ) util$(OBJ) \
|
|
crc32$(OBJ) $(CRCA_O)
|
|
OBJZ2 = globals$(OBJ) deflate$(OBJ) trees$(OBJ) crypt$(OBJ) \
|
|
ttyio$(OBJ)
|
|
OBJZ = $(OBJZ1) $(OBJZ2) $(OBJZS) $(OBJA)
|
|
|
|
OBJU1 = zipfile_$(OBJ) fileio_$(OBJ) util_$(OBJ) globals$(OBJ)
|
|
OBJU = $(OBJU1) $(OBJUS)
|
|
|
|
OBJN = zipnote$(OBJ) $(OBJU)
|
|
OBJS = zipsplit$(OBJ) $(OBJU)
|
|
OBJC1 = zipcloak$(OBJ) crc32_$(OBJ) crypt_$(OBJ) ttyio$(OBJ)
|
|
OBJC = $(OBJC1) $(OBJU)
|
|
|
|
ZIP_H = zip.h ziperr.h tailor.h $(OSDEP_H)
|
|
|
|
# rules
|
|
|
|
.SUFFIXES: .c $(OBJ)
|
|
|
|
.c$(OBJ):
|
|
$(CC) -c -I. $(CCFLAGS) $(OUT)$@ $<
|
|
|
|
# targets
|
|
|
|
all: zip.exe zipnote.exe zipsplit.exe zipcloak.exe
|
|
|
|
zip$(OBJ): zip.c $(ZIP_H) revision.h crc32.h crypt.h ttyio.h
|
|
zipfile$(OBJ): zipfile.c $(ZIP_H) crc32.h
|
|
zipup$(OBJ): zipup.c $(ZIP_H) revision.h crc32.h crypt.h $(ZIPUP_H)
|
|
fileio$(OBJ): fileio.c $(ZIP_H) crc32.h
|
|
util$(OBJ): util.c $(ZIP_H)
|
|
globals$(OBJ): globals.c $(ZIP_H)
|
|
deflate$(OBJ): deflate.c $(ZIP_H)
|
|
trees$(OBJ): trees.c $(ZIP_H)
|
|
crc32$(OBJ): crc32.c $(ZIP_H) crc32.h
|
|
crypt$(OBJ): crypt.c $(ZIP_H) crypt.h crc32.h ttyio.h
|
|
ttyio$(OBJ): ttyio.c $(ZIP_H) crypt.h ttyio.h
|
|
|
|
msdos$(OBJ): msdos/msdos.c $(ZIP_H)
|
|
$(CC) -c -I. $(CCFLAGS) msdos$(DIRSEP)msdos.c
|
|
|
|
win32zip$(OBJ): win32/win32zip.c $(ZIP_H) win32/win32zip.h win32/nt.h
|
|
$(CC) -c -I. $(CCFLAGS) win32$(DIRSEP)win32zip.c
|
|
|
|
win32$(OBJ): win32/win32.c $(ZIP_H) win32/win32zip.h
|
|
$(CC) -c -I. $(CCFLAGS) win32$(DIRSEP)win32.c
|
|
|
|
nt$(OBJ): win32/nt.c $(ZIP_H) win32/nt.h
|
|
$(CC) -c -I. $(CCFLAGS) win32$(DIRSEP)nt.c
|
|
|
|
crc_gcc$(OBJ): crc_i386.S # 32bit, GNU AS
|
|
$(AS) $(ASFLAGS) -x assembler-with-cpp -c -o $@ crc_i386.S
|
|
|
|
matchgcc$(OBJ): match.S
|
|
$(AS) $(ASFLAGS) -x assembler-with-cpp -c -o $@ match.S
|
|
|
|
zipcloak$(OBJ): zipcloak.c $(ZIP_H) revision.h crc32.h crypt.h ttyio.h
|
|
zipnote$(OBJ): zipnote.c $(ZIP_H) revision.h
|
|
zipsplit$(OBJ): zipsplit.c $(ZIP_H) revision.h
|
|
|
|
zipfile_$(OBJ): zipfile.c $(ZIP_H) crc32.h
|
|
$(CC) -c -I. $(CCFLAGS) -DUTIL $(OUT)$@ zipfile.c
|
|
|
|
fileio_$(OBJ): fileio.c $(ZIP_H) crc32.h
|
|
$(CC) -c -I. $(CCFLAGS) -DUTIL $(OUT)$@ fileio.c
|
|
|
|
util_$(OBJ): util.c $(ZIP_H)
|
|
$(CC) -c -I. $(CCFLAGS) -DUTIL $(OUT)$@ util.c
|
|
|
|
crc32_$(OBJ): crc32.c $(ZIP_H) crc32.h
|
|
$(CC) -c -I. $(CCFLAGS) -DUTIL $(OUT)$@ crc32.c
|
|
|
|
crypt_$(OBJ): crypt.c $(ZIP_H) crypt.h crc32.h ttyio.h
|
|
$(CC) -c -I. $(CCFLAGS) -DUTIL $(OUT)$@ crypt.c
|
|
|
|
msdos_$(OBJ): msdos/msdos.c $(ZIP_H)
|
|
$(CC) -c -I. $(CCFLAGS) -DUTIL $(OUT)$@ msdos$(DIRSEP)msdos.c
|
|
|
|
win32_$(OBJ): win32/win32.c $(ZIP_H) win32/win32zip.h
|
|
$(CC) -c -I. $(CCFLAGS) -DUTIL $(OUT)$@ win32$(DIRSEP)win32.c
|
|
|
|
# This next bit is nasty, but is needed to overcome the MS-DOS command
|
|
# line limit as response files for emx's gcc seem to only work if each
|
|
# file is on a different line. DJGPP doesn't do this (if you are at all
|
|
# interested).
|
|
|
|
zip.exe: $(OBJZ)
|
|
# for DUMB make utilities, uncomment the following commands:
|
|
-@$(RM) zip.rsp
|
|
@for %%f in ($(OBJZ1)) do echo %%f >> zip.rsp
|
|
@for %%f in ($(OBJZ2)) do echo %%f >> zip.rsp
|
|
@for %%f in ($(OBJZS) $(OBJA)) do echo %%f >> zip.rsp
|
|
$(CC) $(LDFLAGS)$@ @zip.rsp $(LDFLAGS2)
|
|
@$(RM) zip.rsp
|
|
# smart make utilities (like well done ports of GNU Make) can use this:
|
|
# $(CC) $(LDFLAGS)$@ $(OBJZ) $(LDFLAGS2)
|
|
|
|
zipcloak.exe: $(OBJC)
|
|
# for DUMB make utilities, uncomment the following commands:
|
|
-@$(RM) zipcloak.rsp
|
|
@for %%f in ($(OBJC1)) do echo %%f >> zipcloak.rsp
|
|
@for %%f in ($(OBJU1)) do echo %%f >> zipcloak.rsp
|
|
@for %%f in ($(OBJUS)) do echo %%f >> zipcloak.rsp
|
|
$(CC) $(LDFLAGS)$@ @zipcloak.rsp $(LDFLAGS2)
|
|
@$(RM) zipcloak.rsp
|
|
# smart make utilities (like well done ports of GNU Make) can use this:
|
|
# $(CC) $(LDFLAGS)$@ $(OBJC) $(LDFLAGS2)
|
|
|
|
zipnote.exe: $(OBJN)
|
|
$(CC) $(LDFLAGS)$@ $(OBJN) $(LDFLAGS2)
|
|
|
|
zipsplit.exe: $(OBJS)
|
|
$(CC) $(LDFLAGS)$@ $(OBJS) $(LDFLAGS2)
|