kolibrios/programs/fs/unzip60/human68k/Makefile
siemargl e9b1c1bac6 unzip initial commit
git-svn-id: svn://kolibrios.org@6725 a494cfbc-eb01-0410-851d-a64ba20cac60
2016-11-18 13:40:05 +00:00

230 lines
6.6 KiB
Makefile

# Makefile for UnZip 5.53 and later: Human68k with gcc NIIMI Satoshi
#
# The original Makefile maybe works fine, but X680x0 is too slow
# to process it. So I split out needed part.
#
# Last revised: 25 Dec 06
#
# 1999/09/23: Modified by Shimazaki Ryo.
ifeq "$(TARGET)" "X68030"
COPT = -m68020-40
AOPT = -m68020
LDFLAGS = -L/usr/local/lib/lib060
endif
CC = gcc2
CFLAGS = $(COPT) -Wall -O2 -I. -fomit-frame-pointer -fstrength-reduce \
-DHAVE_TWONCALL_H -D__DOS_INLINE__ -DASM_CRC -DASM_INFLATECODES
#LDFLAGS = -Wl,-x
LIBS = -lhmem -lttyi -lsignal
AS = g2as
ASFLAGS = $(AOPT) -1 -c4 -y
# UnZipSFX flags
XC = -DSFX
# fUnZip flags
FC = -DFUNZIP
# object files
OBJS = unzip.o crc32.o crc_68.o crypt.o envargs.o explode.o extract.o \
fileio.o globals.o inflate.o flate.o list.o match.o process.o \
ttyio.o ubz2err.o unreduce.o unshrink.o zipinfo.o human68k.o
OBJX = unzipsfx.o crc32_.o crc_68.o crypt_.o extract_.o fileio_.o globals_.o \
inflate_.o flate_.o match_.o process_.o ttyio_.o ubz2err_.o human68k_.o
OBJF = funzip.o crc32f.o crc_68.o cryptf.o globalsf.o inflatef.o flatef.o \
ttyiof.o
UNZIP_H = unzip.h unzpriv.h globals.h
UNZIPS = unzip.x unzipsfx.x funzip.x
DOCS = unzip.txt unzipsfx.txt zipinfo.txt funzip.txt
.c.o:
$(CC) $(CFLAGS) -I. -c $< -o $@
# for debugging
.c.s:
$(CC) $(CFLAGS) -c $< -o $@
all: unzips
unzips: $(UNZIPS)
docs: $(DOCS)
unzipsman: unzips docs
unzipsdocs: unzips docs
clean:
rm -f $(OBJS) $(OBJF) $(OBJX) $(UNZIPS)
unzip.x: $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
unzipsfx.x: $(OBJX)
$(CC) $(LDFLAGS) -o $@ $(OBJX) $(LIBS)
funzip.x: $(OBJF)
$(CC) $(LDFLAGS) -o $@ $(OBJF) $(LIBS)
crc32.o: crc32.c $(UNZIP_H) zip.h crc32.h
crypt.o: crypt.c $(UNZIP_H) zip.h crypt.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.hh
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
crc32_.o: crc32.c $(UNZIP_H) zip.h crc32.h
$(CC) $(CFLAGS) $(XC) -c $< -o $@
crypt_.o: crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
$(CC) $(CFLAGS) $(XC) -c $< -o $@
extract_.o: extract.c $(UNZIP_H) crc32.h crypt.h
$(CC) $(CFLAGS) $(XC) -c $< -o $@
fileio_.o: fileio.c $(UNZIP_H) crc32.h crypt.h ttyio.h ebcdic.h
$(CC) $(CFLAGS) $(XC) -c $< -o $@
globals_.o: globals.c $(UNZIP_H)
$(CC) $(CFLAGS) $(XC) -c $< -o $@
inflate_.o: inflate.c inflate.h $(UNZIP_H) crypt.h
$(CC) $(CFLAGS) $(XC) -c $< -o $@
match_.o: match.c $(UNZIP_H)
$(CC) $(CFLAGS) $(XC) -c $< -o $@
process_.o: process.c $(UNZIP_H) crc32.h
$(CC) $(CFLAGS) $(XC) -c $< -o $@
ttyio_.o: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
$(CC) $(CFLAGS) $(XC) -c $< -o $@
ubz2err_.o: ubz2err.c $(UNZIP_H)
$(CC) $(CFLAGS) $(XC) -c $< -o $@
unzipsfx.o: unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h
$(CC) $(CFLAGS) $(XC) -c $< -o $@
# funzip
crc32f.o: crc32.c $(UNZIP_H) zip.h crc32.h
$(CC) $(CFLAGS) $(FC) -c $< -o $@
cryptf.o: crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
$(CC) $(CFLAGS) $(FC) -c $< -o $@
globalsf.o: globals.c $(UNZIP_H)
$(CC) $(CFLAGS) $(FC) -c $< -o $@
inflatef.o: inflate.c inflate.h $(UNZIP_H) crypt.h
$(CC) $(CFLAGS) $(FC) -c $< -o $@
ttyiof.o: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
$(CC) $(CFLAGS) $(FC) -c $< -o $@
human68k.o: human68k/human68k.c $(UNZIP_H)
$(CC) $(CFLAGS) -I. -c human68k/human68k.c -o $@
human68k_.o: human68k/human68k.c $(UNZIP_H) # unzipsfx
$(CC) $(CFLAGS) $(XC) -I. -c human68k/human68k.c -o $@
crc_68.o: human68k/crc_68.s
$(AS) $(ASFLAGS) $< -o $@
flate.o: human68k/flate.s human68k/g_offs.mac
$(AS) $(ASFLAGS) $< -o $@
flate_.o: human68k/flate.s human68k/g_offs_.mac # unzipsfx
$(AS) $(ASFLAGS) $< -o $@ -sSFX
flatef.o: human68k/flate.s human68k/g_offsf.mac # funzip
$(AS) $(ASFLAGS) $< -o $@ -sFUNZIP
human68k/g_offs.mac: human68k/gbloffs.x
human68k/mkgoff.x >! $@
human68k/g_offs_.mac: human68k/gbloffs_.x # unzipsfx
human68k/mkgoff_.x >! $@
human68k/g_offsf.mac: human68k/gbloffsf.x # funzip
human68k/mkgofff.x >! $@
human68k/gbloffs.x: gbloffs.c $(UNZIP_H) crypt.h
$(CC) $(CFLAGS) gbloffs.c -o $@
human68k/gbloffs_.x: gbloffs.c $(UNZIP_H) crypt.h # unzipsfx
$(CC) $(CFLAGS) gbloffs.c -o $@ $(XC)
human68k/gbloffsf.x: gbloffs.c $(UNZIP_H) crypt.h # funzip
$(CC) $(CFLAGS) gbloffs.c -o $@ $(FC)
# the test zipfile
TESTZIP = testmake.zip
# test some basic features of the build
test: check
check: unzips
@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 -f 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.x $(TESTZIP) > testsfx.x
@chmod 0700 testsfx.x
@./testsfx -bo notes
@if diff notes testun/notes; then true; else \
echo '##### ERROR: unzipsfx file disagrees with unzip'; fi
@rm -f testsfx.x notes testun/notes testun/notes2
@rmdir testun
#
@echo '##### testing complete.'
# EOF