1# Makefile for UnZip 5.53+ using QDOS/xtc68 and GNU make
2#
3#      This makefile is a makefile for the xtc68 cross-compiler on Linux;
4#      conversion to a native c68 makefile should be trivial. This builds
5#      native QDOS binaries.
6#
7# Last modified:  25 Dec 06
8
9include /etc/ql.mak
10CFLAGS = -O -I. -I./qdos/
11
12OBJS = unzip.o process.o crypt.o envargs.o explode.o \
13         unshrink.o extract.o zipinfo.o inflate.o match.o unreduce.o \
14         ubz2err.o ttyio.o fileio.o list.o globals.o qdos.o config.o crc32.o
15
16FOBJS = funzip.o ttyio.o crypt.fo inflate.fo globals.fo config.o crc32.fo qdos.fo
17
18XOBJS = unzip.xo process.xo crypt.xo extract.xo fileio.xo \
19        ttyio.xo inflate.xo match.xo globals.xo ubz2err.xo \
20        qdos.xo config.o crc32.xo
21
22all : unzip unzipsfx funzip makesfx callstub
23
24# xtc68/cc is brain dead !!
25
26%.xo : %.c
27	qcpp -DSFX -DSFX_EXDIR -I. -I./qdos/ $*.c $*.i
28	c68 -O $*.i $*.s
29	as68 $*.s $*.xo
30	rm -f $*.s $*.i
31
32%.fo : %.c
33	qcpp -DFUNZIP -I. -I./qdos/ $*.c $*.i
34	c68 -O $*.i $*.s
35	as68 $*.s $*.fo
36	rm -f $*.s $*.i
37
38u : unzip
39
40f : funzip
41
42x : unzipsfx
43
44m : makesfx
45
46unzip :     $(OBJS)
47	$(LD) $(LDFLAGS) -o$@ $(OBJS) $(LDLIBS)
48
49unzipsfx :  $(XOBJS)
50	$(LD) $(LDFLAGS) -o$@ $(XOBJS) $(LDLIBS)
51
52funzip :    $(FOBJS)
53	$(LD) $(LDFLAGS) -o$@ $(FOBJS) $(LDLIBS)
54
55makesfx : qdos/makesfx.c
56	cp qdos/makesfx.c .
57	$(CC) $(CFLAGS) -o makesfx makesfx.c
58	rm -f makesfx.c
59
60callstub : qdos/callstub.c
61	cp qdos/callstub.c .
62	$(CC) -screspr.o $(CFLAGS) -o callstub callstub.c
63	rm -f callstub.c
64
65clean :
66	rm *.o *.xo *.fo
67
68cleaner : clean
69	rm unzip funzip unzipsfx makesfx
70
71
72$(OBJS) $(XOBJS) $(FOBJS) : unzip.h unzpriv.h globals.h \
73                             qdos/izqdos.h
74
75crc32.o crc32.fo crc32.xo : zip.h
76crypt.o crypt.fo crypt.xo ttyio.o ttyio.fo ttyio.xo : zip.h
77
78inflate.o inflate.fo inflate.xo : inflate.h
79
80fileio.o fileio.xo : ebcdic.h
81
82funzip.o : crc32.h
83crc32.o crc32.fo crc32.xo crypt.o crypt.fo crypt.xo : crc32.h
84fileio.o fileio.xo extract.o extract.xo process.o process.xo : crc32.h
85
86
87crypt.o crypt.fo crypt.xo ttyio.o ttyio.fo ttyio.xo : crypt.h
88unzip.o unzip.xo funzip.o : crypt.h
89fileio.o fileio.xo extract.o extract.xo : crypt.h
90inflate.o inflate.fo inflate.xo : crypt.h
91
92crypt.o crypt.fo crypt.xo ttyio.o ttyio.fo ttyio.xo : ttyio.h
93funzip.o fileio.o fileio.xo : ttyio.h
94
95unzip.o unzip.xo : unzvers.h consts.h
96
97
98# Special case object files:
99
100qdos.o: qdos/qdos.c
101	cp qdos/qdos.c .
102	$(CC) -c -oqdos.o $(CFLAGS) $*.c
103	rm -f qdos.c
104
105config.o: qdos/config.S
106	cp qdos/config.S .
107	$(CC) -c $*.S
108	rm -f config.S
109
110qdos.xo: qdos/qdos.c
111	cp qdos/qdos.c .
112	qcpp -DSFX -DSFX_EXDIR -I. -I./qdos/ qdos.c qdos.i
113	c68 qdos.i qdos.s
114	as68 qdos.s qdos.xo
115	rm -f qdos.s qdos.i
116	rm -f qdos.c
117
118qdos.fo: qdos/qdos.c
119	cp qdos/qdos.c .
120	qcpp -DFUNZIP -I. -I./qdos/ qdos.c qdos.i
121	c68 qdos.i qdos.s
122	as68 qdos.s qdos.fo
123	rm -f qdos.s qdos.i
124	rm -f qdos.c
125
126install:  unzip unzipsfx funzip makesfx callstub
127	qcp unzip /ql/exe/
128	qcp unzipsfx /ql/exe/
129	qcp funzip /ql/exe/
130	qcp makesfx /ql/exe/
131	cp callstub /ql/exe/
132