Imported upstream 3.0.8
[tools/xdelta3.git] / Makefile.orig
1 # xdelta 3 - delta compression tools and library
2 # Copyright (C) 2001, 2003, 2004, 2005, 2006, 2007.  Joshua P. MacDonald
3
4 UNAME = $(shell uname)
5 CYGWIN = $(findstring CYGWIN, $(UNAME))
6 DARWIN = $(findstring Darwin, $(UNAME))
7 PYVER = 2.6
8
9 ifeq ("$(CYGWIN)", "")
10 SWIGTGT = xdelta3module.so
11 PYTGT = build/lib.macosx-10.6-universal-2.6/xdelta3main.so
12 else
13 SWIGTGT = xdelta3module.dll
14 PYTGT = build/lib.cygwin-1.5.24-i686-$(PYVER)/xdelta3main.dll
15 endif
16
17 SOURCES = xdelta3-blkcache.h \
18           xdelta3-cfgs.h \
19           xdelta3-decode.h \
20           xdelta3-djw.h \
21           xdelta3-fgk.h \
22           xdelta3-hash.h \
23           xdelta3-list.h \
24           xdelta3-main.h \
25           xdelta3-merge.h \
26           xdelta3-python.h \
27           xdelta3-second.h \
28           xdelta3-test.h \
29           xdelta3.c \
30           xdelta3.h
31
32 TARGETS = xdelta3-debug \
33           xdelta3-debug32 \
34           xdelta3-debug64 \
35           xdelta3 \
36           xdelta3-debug2 \
37           xdelta3-debugstdio \
38           xdelta3.o \
39           xdelta3_wrap.o \
40           xdelta3-32 \
41           xdelta3-64 \
42           xdelta3-everything \
43           xdelta3-Opg \
44           xdelta3-64-O \
45           xdelta3-Op \
46           xdelta3-decoder xdelta3-decoder-nomain.o \
47           xdelta3-nosec.o xdelta3-all.o xdelta3-fgk.o \
48           xdelta3-noext xdelta3-tools \
49           xdelta3-notools \
50           xdelta3_wrap.c xdelta3.py \
51           $(PYTGT) $(SWIGTGT) \
52           xdelta3-warnings
53
54 PYTHON = python
55
56 WIXDIR = "/cygdrive/c/Program Files/wix2.0.4820"
57
58 CFLAGS= -Wall -Wshadow -fno-builtin
59 WFLAGS= -Wextra -Wsign-compare -Wconversion -Wextra -Wno-unused-parameter
60
61 # $Format: "REL=$Xdelta3Version$" $
62 REL=3.0.1
63
64 RELDIR = xdelta$(REL)
65
66 EXTRA = Makefile COPYING linkxd3lib.c badcopy.c xdelta3.swig \
67         draft-korn-vcdiff.txt xdelta3.vcproj badcopy.vcproj \
68         testing/xdelta3-regtest.py xdelta3-test.py setup.py \
69         examples/Makefile examples/small_page_test.c \
70         examples/README examples/encode_decode_test.c \
71         examples/compare_test.c examples/speed_test.c \
72         examples/test.h examples/checksum_test.cc \
73         xdelta3.py xdelta3_wrap.c xdelta3.wxs xdelta3.wxi \
74         testing/cmp.h testing/delta.h testing/file.h \
75         testing/modify.h testing/random.h testing/segment.h \
76         testing/sizes.h testing/test.h testing/Makefile \
77         testing/regtest.cc README readme.txt xdelta3.1
78
79 SWIG_FLAGS = -DXD3_DEBUG=1 \
80               -DEXTERNAL_COMPRESSION=0 \
81               -DXD3_USE_LARGEFILE64=1 \
82               -DGENERIC_ENCODE_TABLES=1 \
83               -DSECONDARY_DJW=1 \
84               -DVCDIFF_TOOLS=1 \
85               -DSWIG_MODULE=1
86
87 all: xdelta3-debug32 xdelta3-debug64 xdelta3-debug2 xdelta3
88         (cd testing && make)
89
90 all-py: all $(PYTGT) $(SWIGTGT)
91
92 all-targets: $(TARGETS)
93
94 all-targets-test: all-targets test
95
96 pytgt: $(PYTGT)
97 swigtgt: $(SWIGTGT)
98
99 test:
100         ./xdelta3-debug test
101
102 tar:
103         tar --exclude ".svn" -czf /tmp/$(RELDIR)-tmp.tar.gz $(SOURCES) $(EXTRA)
104         rm -rf /tmp/$(RELDIR)
105         mkdir /tmp/$(RELDIR)
106         (cd /tmp/$(RELDIR) && tar -xzf ../$(RELDIR)-tmp.tar.gz)
107         tar -czf ./$(RELDIR).tar.gz -C /tmp $(RELDIR)
108         +tar -tzf ./$(RELDIR).tar.gz
109         rm -rf /tmp/$(RELDIR)
110
111 zip:
112         tar --exclude ".svn" -czf /tmp/$(RELDIR)-tmp.tar.gz $(SOURCES) $(EXTRA)
113         rm -rf /tmp/$(RELDIR)
114         mkdir /tmp/$(RELDIR)
115         (cd /tmp/$(RELDIR) && tar -xzf ../$(RELDIR)-tmp.tar.gz)
116         tar -czf ./$(RELDIR).tar.gz -C /tmp $(RELDIR)
117         +zip -r $(RELDIR).zip /tmp/$(RELDIR)
118         rm -rf /tmp/$(RELDIR)
119
120 clean:
121         rm -f $(TARGETS)
122         rm -rf build Debug Release core cifs* *.stackdump *.exe *~ *.dSYM \
123                 xdelta3.ncb xdelta3.suo xdelta3.sln xdelta3.wixobj xdelta3.msi
124
125 wix: xdelta3.wxs xdelta3.wxi readme.txt Release\xdelta3.exe
126         $(WIXDIR)/candle.exe xdelta3.wxs -out xdelta3.wixobj
127         $(WIXDIR)/light.exe xdelta3.wixobj -out xdelta3.msi
128
129 xdelta3: $(SOURCES)
130         $(CC) $(CFLAGS) -O3 xdelta3.c -lm -o xdelta3 \
131               -DGENERIC_ENCODE_TABLES=0 \
132               -DREGRESSION_TEST=1 \
133               -DSECONDARY_DJW=1 \
134               -DSECONDARY_FGK=1 \
135               -DXD3_DEBUG=0 \
136               -DXD3_MAIN=1 \
137               -DXD3_POSIX=1 \
138               -DXD3_USE_LARGEFILE64=1
139
140 xdelta3-debug32: $(SOURCES)
141         $(CC) -g $(CFLAGS) xdelta3.c -lm -o xdelta3-debug32 \
142                 -arch i386 \
143                 -DGENERIC_ENCODE_TABLES=1 \
144                 -DREGRESSION_TEST=1 \
145                 -DSECONDARY_DJW=1 \
146                 -DSECONDARY_FGK=1 \
147                 -DXD3_DEBUG=1 \
148                 -DXD3_MAIN=1 \
149                 -DXD3_POSIX=1 \
150                 -DXD3_USE_LARGEFILE64=1
151
152 xdelta3-debug64: $(SOURCES)
153         $(CC) -g $(CFLAGS) xdelta3.c -lm -o xdelta3-debug64 \
154                 -arch x86_64 \
155                 -DGENERIC_ENCODE_TABLES=1 \
156                 -DREGRESSION_TEST=1 \
157                 -DSECONDARY_DJW=1 \
158                 -DSECONDARY_FGK=1 \
159                 -DXD3_DEBUG=1 \
160                 -DXD3_MAIN=1 \
161                 -DXD3_POSIX=1 \
162                 -DXD3_USE_LARGEFILE64=1
163
164 xdelta3-warnings: $(SOURCES)
165         $(CC) -g $(CFLAGS) $(WFLAGS) xdelta3.c -lm -o xdelta3-warnings \
166                 -DGENERIC_ENCODE_TABLES=1 \
167                 -DREGRESSION_TEST=1 \
168                 -DSECONDARY_DJW=1 \
169                 -DSECONDARY_FGK=1 \
170                 -DXD3_DEBUG=1 \
171                 -DXD3_MAIN=1 \
172                 -DXD3_STDIO=1 \
173                 -DXD3_USE_LARGEFILE64=1
174
175 xdelta3-32: $(SOURCES)
176         $(CC) -g $(CFLAGS) xdelta3.c -lm -o xdelta3-32 \
177               -DXD3_DEBUG=1 \
178               -DXD3_USE_LARGEFILE64=0 \
179               -DREGRESSION_TEST=1 \
180               -DSECONDARY_DJW=1 \
181               -DSECONDARY_FGK=1 \
182               -DXD3_MAIN=1 \
183               -DXD3_POSIX=1
184
185 xdelta3-debug2: $(SOURCES)
186         $(CC) -g $(CFLAGS) \
187                 xdelta3.c -o xdelta3-debug2 \
188                 -DXD3_DEBUG=2 \
189                 -DXD3_MAIN=1 \
190                 -DXD3_POSIX=1 \
191                 -DXD3_USE_LARGEFILE64=1 \
192                 -DGENERIC_ENCODE_TABLES=1 \
193                 -DREGRESSION_TEST=1 \
194                 -DSECONDARY_DJW=1 \
195                 -DSECONDARY_FGK=1 \
196                 -lm
197
198 xdelta3-debugstdio: $(SOURCES)
199         $(CC) -g $(CFLAGS) xdelta3.c -o xdelta3-debugstdio \
200                 -DXD3_MAIN=1 \
201                 -DGENERIC_ENCODE_TABLES=1 \
202                 -DXD3_USE_LARGEFILE64=1 \
203                 -DXD3_STDIO=1 \
204                 -DREGRESSION_TEST=1 \
205                 -DXD3_DEBUG=1 \
206                 -DSECONDARY_DJW=1 \
207                 -DSECONDARY_FGK=1 \
208                 -lm
209
210 $(PYTGT): $(SOURCES) setup.py
211         $(PYTHON) setup.py install --verbose --compile --force
212
213 xdelta3_wrap.c xdelta3.py: xdelta3.swig
214         swig -python xdelta3.swig
215
216 xdelta3.o: $(SOURCES)
217         $(CC) -O3 $(CFLAGS) -c xdelta3.c $(SWIG_FLAGS) -o xdelta3.o
218
219 xdelta3_wrap.o: xdelta3_wrap.c
220         $(CC) -O3 $(CFLAGS) $(SWIG_FLAGS) \
221               -DHAVE_CONFIG_H \
222               -I/usr/include/python$(PYVER) \
223               -I/usr/lib/python$(PYVER)/config \
224               -fpic \
225               -c xdelta3_wrap.c
226
227 xdelta3module.dll: xdelta3_wrap.o xdelta3.o
228         gcc -shared -Wl,--enable-auto-image-base \
229                 xdelta3.o \
230                 xdelta3_wrap.o \
231                 -L/usr/lib/python$(PYVER)/config \
232                 -lpython$(PYVER) \
233                 -o xdelta3module.dll
234         cp $(SWIGTGT) /usr/lib/python$(PYVER)/site-packages
235
236 ifeq ("$(DARWIN)", "")
237 xdelta3module.so: xdelta3_wrap.o xdelta3.o
238         ld -shared xdelta3.o xdelta3_wrap.o \
239                 -o xdelta3module.so \
240                 /usr/lib/libpython$(PYVER).so \
241                 -lc
242 else
243 xdelta3module.so: xdelta3_wrap.o xdelta3.o
244         gcc-4.2 -Wl,-F. -bundle -undefined dynamic_lookup \
245                 -arch x86_64 $(CFLAGS) \
246                 xdelta3.o xdelta3_wrap.o -o xdelta3module.so
247         cp xdelta3module.so /Library/Python/2.6/site-packages
248 endif
249
250 xdelta3-decoder: $(SOURCES)
251         $(CC) -O3 -Wall -Wshadow xdelta3.c \
252             -DXD3_ENCODER=0 -DXD3_MAIN=1 -DSECONDARY_FGK=0 -DSECONDARY_DJW=0 \
253             -DXD3_STDIO=1 -DEXTERNAL_COMPRESSION=0 -DVCDIFF_TOOLS=0 \
254             -o xdelta3-decoder
255
256 xdelta3-decoder-nomain.o: $(SOURCES) linkxd3lib.c
257         $(CC) -O3 -Wall -Wshadow xdelta3.c linkxd3lib.c \
258             -DXD3_ENCODER=0 -DSECONDARY_FGK=0 -DSECONDARY_DJW=0 \
259             -o xdelta3-decoder-nomain.o
260         strip xdelta3-decoder-nomain.o
261
262 xdelta3-O++: $(SOURCES)
263         $(CXX) -g -O3 $(CFLAGS) xdelta3.c \
264                 -o xdelta3-O++ \
265                 -DXD3_MAIN=1 \
266                 -DSECONDARY_DJW=1 \
267                 -DREGRESSION_TEST=1 \
268                 -lm
269
270 xdelta3-Op: $(SOURCES)
271         $(CC) -g -O3 $(CFLAGS) xdelta3.c \
272                 -o xdelta3-Op \
273                 -DXD3_POSIX=1 \
274                 -DXD3_MAIN=1 \
275                 -DREGRESSION_TEST=1 \
276                 -lm
277
278 xdelta3-64: $(SOURCES)
279         $(CC) -g $(CFLAGS) \
280                 xdelta3.c \
281                 -o xdelta3-64 \
282                 -DXD3_POSIX=1 \
283                 -DXD3_MAIN=1 \
284                 -DREGRESSION_TEST=1 \
285                 -DXD3_DEBUG=0 \
286                 -DXD3_USE_LARGEFILE64=1 \
287                 -lm
288
289 xdelta3-64-O: $(SOURCES)
290         $(CC) -O3 $(CFLAGS) \
291                 xdelta3.c \
292                 -o xdelta3-64-O \
293                 -DXD3_POSIX=1 \
294                 -DXD3_MAIN=1 \
295                 -DXD3_USE_LARGEFILE64=1 \
296                 -lm
297
298 xdelta3-everything: $(SOURCES)
299         $(CC) -g $(CFLAGS) \
300                 xdelta3.c \
301                 -o xdelta3-everything \
302                 -DXD3_MAIN=1 \
303                 -DVCDIFF_TOOLS=1 \
304                 -DREGRESSION_TEST=1 \
305                 -DSECONDARY_FGK=1 \
306                 -DSECONDARY_DJW=1 \
307                 -DGENERIC_ENCODE_TABLES=1 \
308                 -DGENERIC_ENCODE_TABLES_COMPUTE=1 \
309                 -DXD3_POSIX=1 \
310                 -DEXTERNAL_COMPRESSION=1 \
311                 -DXD3_DEBUG=1 \
312                 -lm
313
314 xdelta3-Opg: $(SOURCES)
315         $(CC) -pg -g -O3 $(CFLAGS) \
316                 xdelta3.c \
317                 -o xdelta3-Opg \
318                 -DXD3_MAIN=1 \
319                 -DSECONDARY_DJW=1 \
320                 -DSECONDARY_FGK=1 \
321                 -DXD3_POSIX=1 \
322                 -DXD3_USE_LARGEFILE64=1 \
323                 -DREGRESSION_TEST=1
324
325 xdelta3-nosec.o: $(SOURCES)
326         $(CC) -O3 $(CFLAGS) -c xdelta3.c -DSECONDARY_FGK=0 -DSECONDARY_DJW=0 -o xdelta3-nosec.o
327
328 xdelta3-all.o: $(SOURCES)
329         $(CC) -O3 $(CFLAGS) -c xdelta3.c -DSECONDARY_FGK=1 -DSECONDARY_DJW=1 -o xdelta3-all.o
330
331 xdelta3-fgk.o: $(SOURCES)
332         $(CC) -O3 $(CFLAGS) -c xdelta3.c -DSECONDARY_FGK=1 -DSECONDARY_DJW=0 -o xdelta3-fgk.o
333
334 xdelta3-noext: $(SOURCES)
335         $(CC) -O3 $(CFLAGS) xdelta3.c -DXD3_MAIN=1 -DEXTERNAL_COMPRESSION=0 -o xdelta3-noext
336
337 xdelta3-tools: $(SOURCES)
338         $(CC) -O3 $(CFLAGS) xdelta3.c -DXD3_MAIN=1 -o xdelta3-tools
339
340 xdelta3-notools: $(SOURCES)
341         $(CC) -O3 $(CFLAGS) xdelta3.c -DXD3_MAIN=1 -DVCDIFF_TOOLS=0 -o xdelta3-notools