DIST_SUBDIRS = $(SUBDIRS)
srcdir = @srcdir@
top_builddir = @top_builddir@
builddir = @builddir@
VPATH = @srcdir@
bin_PROGRAMS =
dist_man_MANS =
bashcompletiondir = @bashcompletiondir@
dist_bashcompletion_DATA =
zshcompletiondir = @zshcompletiondir@
dist_zshcompletion_DATA =
if COND_GCOV
MAYBE_COVERAGE = --coverage
endif
CLEANFILES = *.gcno *.gcda *.gcov \
$(builddir)/tmp/*.png \
$(builddir)/tmp/*.sixel \
$(builddir)/tmp/*.txt \
$(builddir)/tmp/*.pipe \
$(builddir)/tmp/server.py \
$(builddir)/tmp/server.key \
$(builddir)/tmp/server.crt \
$(builddir)/tmp/testfile
if WANT_IMG2SIXEL
bin_PROGRAMS += img2sixel
img2sixel_SOURCES = $(srcdir)/img2sixel.c $(srcdir)/malloc_stub.c $(srcdir)/malloc_stub.h
img2sixel_CPPFLAGS = -I$(top_builddir)/include/ $(AM_CPPFLAGS)
img2sixel_CFLAGS = $(CFLAGS) $(AM_CFLAGS) $(MAYBE_COVERAGE)
img2sixel_LDADD = $(top_builddir)/src/libsixel.la
dist_man_MANS += $(srcdir)/img2sixel.1
dist_bashcompletion_DATA += $(srcdir)/shell-completion/bash/img2sixel
dist_zshcompletion_DATA += $(srcdir)/shell-completion/zsh/_img2sixel
endif
if WANT_SIXEL2PNG
bin_PROGRAMS += sixel2png
sixel2png_SOURCES = $(srcdir)/sixel2png.c $(srcdir)/malloc_stub.c $(srcdir)/malloc_stub.h
sixel2png_CPPFLAGS = -I$(top_builddir)/include/ $(AM_CPPFLAGS)
sixel2png_CFLAGS = $(CFLAGS) $(AM_CFLAGS) $(MAYBE_COVERAGE)
sixel2png_LDADD = $(top_builddir)/src/libsixel.la
dist_man_MANS += $(srcdir)/sixel2png.1
endif
check: test_impl
test: all test_impl
test_impl:
@echo '[start]'
if WANT_IMG2SIXEL
@echo '[test1] invalid option handling'
mkdir $(builddir)/tmp/
touch $(builddir)/tmp/testfile
chmod -r $(builddir)/tmp/testfile
test ! $$($(WINE) $(builddir)/img2sixel $(builddir)/tmp/testfile)
test ! $$($(WINE) $(builddir)/img2sixel $(builddir)/tmp/invalid_filename)
test ! $$($(WINE) $(builddir)/img2sixel .)
test ! $$($(WINE) $(builddir)/img2sixel -d invalid_option)
test ! $$($(WINE) $(builddir)/img2sixel -r invalid_option)
test ! $$($(WINE) $(builddir)/img2sixel -s invalid_option)
test ! $$($(WINE) $(builddir)/img2sixel -t invalid_option)
test ! $$($(WINE) $(builddir)/img2sixel -w invalid_option)
test ! $$($(WINE) $(builddir)/img2sixel -h invalid_option)
test ! $$($(WINE) $(builddir)/img2sixel -f invalid_option)
test ! $$($(WINE) $(builddir)/img2sixel -q invalid_option)
test ! $$($(WINE) $(builddir)/img2sixel -l invalid_option)
test ! $$($(WINE) $(builddir)/img2sixel -b invalid_option)
test ! $$($(WINE) $(builddir)/img2sixel -E invalid_option)
test ! $$($(WINE) $(builddir)/img2sixel -B invalid_option)
test ! $$($(WINE) $(builddir)/img2sixel -B \#ffff $(top_srcdir)/images/map8.png)
test ! $$($(WINE) $(builddir)/img2sixel -B \#0000000000000 $(top_srcdir)/images/map8.png)
test ! $$($(WINE) $(builddir)/img2sixel -B \#00G)
test ! $$($(WINE) $(builddir)/img2sixel -B test)
test ! $$($(WINE) $(builddir)/img2sixel -B rgb:11/11)
test ! $$($(WINE) $(builddir)/img2sixel -%)
test ! $$($(WINE) $(builddir)/img2sixel -m $(builddir)/tmp/invalid_filename $(top_srcdir)/images/snake.jpg)
test ! $$($(WINE) $(builddir)/img2sixel -p16 -e $(top_srcdir)/images/snake.jpg)
test ! $$($(WINE) $(builddir)/img2sixel -I -C0 $(top_srcdir)/images/snake.png)
test ! $$($(WINE) $(builddir)/img2sixel -I -p8 $(top_srcdir)/images/snake.png)
test ! $$($(WINE) $(builddir)/img2sixel -p64 -bxterm256 $(top_srcdir)/images/snake.png)
test ! $$($(WINE) $(builddir)/img2sixel -8 -P $(top_srcdir)/images/snake.png)
@echo '[test2] STDIN handling'
test ! $$(echo -n a | $(WINE) $(builddir)/img2sixel)
@echo '[test3] print information'
$(WINE) $(builddir)/img2sixel -H
$(WINE) $(builddir)/img2sixel -V
@echo '[test4] conversion options'
$(WINE) $(builddir)/img2sixel $(srcdir)/images/snake.jpg -datkinson -flum -saverage | $(WINE) $(builddir)/img2sixel | tee $(builddir)/tmp/snake.sixel
$(WINE) $(builddir)/img2sixel -w50% -h150% -dfs -Bblue -thls -shistogram < $(top_srcdir)/images/snake.jpg | tee $(builddir)/tmp/snake2.sixel
$(WINE) $(builddir)/img2sixel -w210 -h210 -djajuni -bxterm256 -o $(builddir)/tmp/snake3.sixel < $(top_srcdir)/images/snake.jpg
$(WINE) $(builddir)/img2sixel -w105% -h100 -B\ $(WINE) $(builddir)/img2sixel -7 -sauto -w100 -rgaussian -qauto -dburkes -tauto $(top_srcdir)/images/snake.tga
$(WINE) $(builddir)/img2sixel -p200 -8 -scenter -Brgb:0/f/A -h100 -qfull -rhanning -dstucki -thls $(top_srcdir)/images/snake.tiff
$(WINE) $(builddir)/img2sixel -8 -qauto -thls -e $(top_srcdir)/images/snake.pgm
$(WINE) $(builddir)/img2sixel -8 -m $(top_srcdir)/images/map8-palette.png -Esize $(top_srcdir)/images/snake.ppm
$(WINE) $(builddir)/img2sixel -7 -m $(top_srcdir)/images/map16-palette.png -Efast $(top_srcdir)/images/snake.jpg
$(WINE) $(builddir)/img2sixel -7 -w300 $(top_srcdir)/images/snake-palette.png
$(WINE) $(builddir)/img2sixel -7 -w100 -h100 -bxterm16 -B\#aB3 -B\#aB3 $(top_srcdir)/images/snake.pbm
$(WINE) $(builddir)/img2sixel -I -dstucki -thls -B\#a0B030 $(top_srcdir)/images/snake.ppm
$(WINE) $(builddir)/img2sixel -bvt340color $(top_srcdir)/images/snake.ppm
$(WINE) $(builddir)/img2sixel -bvt340mono $(top_srcdir)/images/snake.tga
$(WINE) $(builddir)/img2sixel -bgray1 -w120 $(top_srcdir)/images/snake.tga
$(WINE) $(builddir)/img2sixel -bgray2 -w120 $(top_srcdir)/images/snake.tga
$(WINE) $(builddir)/img2sixel -bgray4 -w120 $(top_srcdir)/images/snake.tga
$(WINE) $(builddir)/img2sixel -bgray8 -w120 $(top_srcdir)/images/snake.tga
$(WINE) $(builddir)/img2sixel -I -8 -dburkes -B\#ffffffffffff $(top_srcdir)/images/snake-ascii.ppm
$(WINE) $(builddir)/img2sixel -I -C10 -djajuni $(top_srcdir)/images/snake.png
$(WINE) $(builddir)/img2sixel -I -Eauto $(top_srcdir)/images/snake-ascii.pgm
$(WINE) $(builddir)/img2sixel -I -datkinson $(top_srcdir)/images/snake-ascii.pbm
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/snake-grayscale.png
$(WINE) $(builddir)/img2sixel -m $(top_srcdir)/images/map8-palette.png $(top_srcdir)/images/snake-grayscale.png
$(WINE) $(builddir)/img2sixel -m $(top_srcdir)/images/snake-grayscale.png $(top_srcdir)/images/snake.png
$(WINE) $(builddir)/img2sixel -c200x200+100+100 -dx_dither $(top_srcdir)/images/snake-grayscale.png
$(WINE) $(builddir)/img2sixel -c200x200+100+100 -w400 -da_dither $(top_srcdir)/images/snake-grayscale.png
$(WINE) $(builddir)/img2sixel -I $(top_srcdir)/images/snake-grayscale.png
$(WINE) $(builddir)/img2sixel -I $(top_srcdir)/images/snake-grayscale.jpg
$(WINE) $(builddir)/img2sixel -m $(top_srcdir)/images/map8.six -m $(top_srcdir)/images/map8.six $(top_srcdir)/images/snake.six
$(WINE) $(builddir)/img2sixel -w200 -p8 $(top_srcdir)/images/snake.six
$(WINE) $(builddir)/img2sixel -c200x200+2000+2000 $(top_srcdir)/images/snake.six
$(WINE) $(builddir)/img2sixel -bxterm16 $(top_srcdir)/images/snake.six
$(WINE) $(builddir)/img2sixel -e $(top_srcdir)/images/snake.six
$(WINE) $(builddir)/img2sixel -I $(top_srcdir)/images/snake.six
$(WINE) $(builddir)/img2sixel -I -da_dither -w100 $(top_srcdir)/images/snake.six
$(WINE) $(builddir)/img2sixel -I -dx_dither -h100 $(top_srcdir)/images/snake.six
$(WINE) $(builddir)/img2sixel -I -c2000x100+40+20 -wauto -h200 -qhigh -dfs -rbilinear -trgb $(top_srcdir)/images/snake.ppm
$(WINE) $(builddir)/img2sixel -I -v -w200 -hauto -c100x1000+40+20 -qlow -dnone -rhamming -thls $(top_srcdir)/images/snake.bmp
$(WINE) $(builddir)/img2sixel -m $(top_srcdir)/images/map8.png -w200 -fauto -rwelsh $(top_srcdir)/images/egret.jpg
$(WINE) $(builddir)/img2sixel -m $(top_srcdir)/images/map16.png -w100 -hauto -rbicubic -dauto $(top_srcdir)/images/snake.ppm
$(WINE) $(builddir)/img2sixel -p 16 -C3 -h100 -fnorm -rlanczos2 $(top_srcdir)/images/snake.jpg
$(WINE) $(builddir)/img2sixel -v -p 8 -h200 -fnorm -rlanczos2 -dnone $(top_srcdir)/images/snake.jpg
$(WINE) $(builddir)/img2sixel -p 2 -h100 -wauto -rlanczos3 $(top_srcdir)/images/snake.jpg
$(WINE) $(builddir)/img2sixel -p 1 -h100 -n1 $(top_srcdir)/images/snake.jpg && printf '\033[*1z'
$(WINE) $(builddir)/img2sixel -e -h140 -rlanczos4 -P $(top_srcdir)/images/snake.jpg
$(WINE) $(builddir)/img2sixel -e -i -P $(top_srcdir)/images/snake.jpg > /dev/null
$(WINE) $(builddir)/img2sixel -w204 -h204 $(top_srcdir)/images/snake.png | $(WINE) $(builddir)/img2sixel > /dev/null
@echo '[test5] DCS arguments handling'
seq 0 10 | while read i; do \
seq 0 2 | while read j; do \
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/map8.png | \
sed "s/Pq/P$${i};;$${j}q/" | \
$(WINE) $(builddir)/img2sixel; \
done; \
done
@echo
@echo '[test6] DCS format variations'
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/snake.png| sed 's/C/C:/g'| tr : '\t'| $(WINE) $(builddir)/img2sixel
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/snake.png| sed 's/"1;1;600;450/"1;1;700;500/'| $(WINE) $(builddir)/img2sixel
@echo
@echo '[test7] animation'
$(WINE) $(builddir)/img2sixel -ldisable -dnone -u -lauto $(top_srcdir)/images/seq2gif.gif
$(WINE) $(builddir)/img2sixel -ldisable -dnone -g $(top_srcdir)/images/seq2gif.gif
$(WINE) $(builddir)/img2sixel -ldisable -dnone -u -g $(top_srcdir)/images/seq2gif.gif
$(WINE) $(builddir)/img2sixel -S -datkinson $(top_srcdir)/images/seq2gif.gif
@echo
@echo '[test8] progressive jpeg'
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/snake-progressive.jpg
if HAVE_PNG
@echo
@echo '[test9] various PNG'
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/basic/basn0g01.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/basic/basn0g02.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/basic/basn0g04.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/basic/basn0g08.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/basic/basn0g16.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/basic/basn3p01.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/basic/basn3p02.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/basic/basn3p04.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/basic/basn3p08.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/basic/basn4a08.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/basic/basn4a16.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/basic/basn6a08.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/basic/basn6a16.png
$(WINE) $(builddir)/img2sixel -w32 $(top_srcdir)/images/pngsuite/basic/basn0g01.png
$(WINE) $(builddir)/img2sixel -w32 $(top_srcdir)/images/pngsuite/basic/basn0g02.png
$(WINE) $(builddir)/img2sixel -w32 $(top_srcdir)/images/pngsuite/basic/basn0g04.png
$(WINE) $(builddir)/img2sixel -w32 $(top_srcdir)/images/pngsuite/basic/basn0g08.png
$(WINE) $(builddir)/img2sixel -w32 $(top_srcdir)/images/pngsuite/basic/basn0g16.png
$(WINE) $(builddir)/img2sixel -w32 $(top_srcdir)/images/pngsuite/basic/basn3p01.png
$(WINE) $(builddir)/img2sixel -w32 $(top_srcdir)/images/pngsuite/basic/basn3p02.png
$(WINE) $(builddir)/img2sixel -w32 $(top_srcdir)/images/pngsuite/basic/basn3p04.png
$(WINE) $(builddir)/img2sixel -w32 $(top_srcdir)/images/pngsuite/basic/basn3p08.png
$(WINE) $(builddir)/img2sixel -w32 $(top_srcdir)/images/pngsuite/basic/basn4a08.png
$(WINE) $(builddir)/img2sixel -w32 $(top_srcdir)/images/pngsuite/basic/basn4a16.png
$(WINE) $(builddir)/img2sixel -w32 $(top_srcdir)/images/pngsuite/basic/basn6a08.png
$(WINE) $(builddir)/img2sixel -w32 $(top_srcdir)/images/pngsuite/basic/basn6a16.png
$(WINE) $(builddir)/img2sixel -c16x16+8+8 $(top_srcdir)/images/pngsuite/basic/basn0g01.png
$(WINE) $(builddir)/img2sixel -c16x16+8+8 $(top_srcdir)/images/pngsuite/basic/basn0g02.png
$(WINE) $(builddir)/img2sixel -c16x16+8+8 $(top_srcdir)/images/pngsuite/basic/basn0g04.png
$(WINE) $(builddir)/img2sixel -c16x16+8+8 $(top_srcdir)/images/pngsuite/basic/basn0g08.png
$(WINE) $(builddir)/img2sixel -c16x16+8+8 $(top_srcdir)/images/pngsuite/basic/basn0g16.png
$(WINE) $(builddir)/img2sixel -c16x16+8+8 $(top_srcdir)/images/pngsuite/basic/basn3p01.png
$(WINE) $(builddir)/img2sixel -c16x16+8+8 $(top_srcdir)/images/pngsuite/basic/basn3p02.png
$(WINE) $(builddir)/img2sixel -c16x16+8+8 $(top_srcdir)/images/pngsuite/basic/basn3p04.png
$(WINE) $(builddir)/img2sixel -c16x16+8+8 $(top_srcdir)/images/pngsuite/basic/basn3p08.png
$(WINE) $(builddir)/img2sixel -c16x16+8+8 $(top_srcdir)/images/pngsuite/basic/basn4a08.png
$(WINE) $(builddir)/img2sixel -c16x16+8+8 $(top_srcdir)/images/pngsuite/basic/basn4a16.png
$(WINE) $(builddir)/img2sixel -c16x16+8+8 $(top_srcdir)/images/pngsuite/basic/basn6a08.png
$(WINE) $(builddir)/img2sixel -c16x16+8+8 $(top_srcdir)/images/pngsuite/basic/basn6a16.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/background/bgai4a08.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/background/bgai4a16.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/background/bgan6a08.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/background/bgan6a16.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/background/bgbn4a08.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/background/bggn4a16.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/background/bgwn6a08.png
$(WINE) $(builddir)/img2sixel $(top_srcdir)/images/pngsuite/background/bgyn6a16.png
$(WINE) $(builddir)/img2sixel -B\ $(WINE) $(builddir)/img2sixel -B\ $(WINE) $(builddir)/img2sixel -B\ $(WINE) $(builddir)/img2sixel -B\ $(WINE) $(builddir)/img2sixel -B\ $(WINE) $(builddir)/img2sixel -B\ $(WINE) $(builddir)/img2sixel -B\ $(WINE) $(builddir)/img2sixel -B\ $(WINE) $(builddir)/img2sixel -w32 -B\ $(WINE) $(builddir)/img2sixel -w32 -B\ $(WINE) $(builddir)/img2sixel -w32 -B\ $(WINE) $(builddir)/img2sixel -w32 -B\ $(WINE) $(builddir)/img2sixel -w32 -B\ $(WINE) $(builddir)/img2sixel -w32 -B\ $(WINE) $(builddir)/img2sixel -w32 -B\ $(WINE) $(builddir)/img2sixel -w32 -B\endif
if HAVE_CURL
@echo
@echo '[test10] curl'
test ! $$($(WINE) $(builddir)/img2sixel file:///test)
test ! $$($(WINE) $(builddir)/img2sixel https:///test)
$(WINE) $(builddir)/img2sixel file:///$$(pwd)/$(top_srcdir)/images/snake.jpg
if which openssl && which python; then \
openssl genrsa | openssl rsa > $(builddir)/tmp/server.key; \
openssl req -new -key $(builddir)/tmp/server.key -subj "/CN=localhost" | openssl x509 -req -signkey $(builddir)/tmp/server.key > $(builddir)/tmp/server.crt; \
echo "import BaseHTTPServer as bs, SimpleHTTPServer as ss, ssl" > $(builddir)/tmp/server.py; \
echo "httpd = bs.HTTPServer(('localhost', 4443), ss.SimpleHTTPRequestHandler)" >> $(builddir)/tmp/server.py; \
echo "httpd.socket = ssl.wrap_socket(httpd.socket, certfile='server.crt', keyfile='server.key', server_side=True)" >> $(builddir)/tmp/server.py; \
echo "httpd.handle_request()" >> $(builddir)/tmp/server.py; \
echo "httpd.handle_request()" >> $(builddir)/tmp/server.py; \
python $(builddir)/tmp/server.py & \
sleep 1; \
! $(WINE) $(builddir)/img2sixel 'https://localhost:4443/snake.sixel'; \
sleep 1; \
$(WINE) $(builddir)/img2sixel -k 'https://localhost:4443/snake.sixel'; \
fi
endif
if WANT_SIXEL2PNG
@echo '[test11] sixel2png'
test ! $$($(WINE) $(builddir)/sixel2png -i $(builddir)/tmp/unknown.sixel)
test ! $$($(WINE) $(builddir)/sixel2png -% < $(builddir)/tmp/snake.sixel)
test ! $$($(WINE) $(builddir)/sixel2png invalid_filename < $(builddir)/tmp/snake.sixel)
$(WINE) $(builddir)/sixel2png -H
$(WINE) $(builddir)/sixel2png -V
$(WINE) $(builddir)/sixel2png < $(builddir)/tmp/snake.sixel > $(builddir)/tmp/snake1.png
$(WINE) $(builddir)/sixel2png < $(builddir)/tmp/snake2.sixel > $(builddir)/tmp/snake2.png
$(WINE) $(builddir)/sixel2png - - < $(builddir)/tmp/snake3.sixel > $(builddir)/tmp/snake3.png
$(WINE) $(builddir)/sixel2png -i $(builddir)/tmp/snake.sixel -o $(builddir)/tmp/snake4.png
endif
@echo '[test13] documentation'
$(WINE) $(builddir)/img2sixel -H| grep ^\ \*\-|sed 's/^\ *//'| cut -f1 -d' '| cut -f1 -d, > $(builddir)/tmp/options1.txt
grep ^\.B $(srcdir)/img2sixel.1 | cut -f2 -d " " | grep "^\\\\" | tr -d '\\' | tr -d , > $(builddir)/tmp/options2.txt
grep ' --' $(srcdir)/shell-completion/bash/img2sixel| grep -v "' "| sed 's/.* \(-.\) .*/\1/' > $(builddir)/tmp/options3.txt
grep '{-' $(srcdir)/shell-completion/zsh/_img2sixel|cut -f1 -d,|cut -f2 -d'{' > $(builddir)/tmp/options4.txt
diff $(builddir)/tmp/options1.txt $(builddir)/tmp/options2.txt
diff $(builddir)/tmp/options2.txt $(builddir)/tmp/options3.txt
diff $(builddir)/tmp/options3.txt $(builddir)/tmp/options4.txt
endif
@echo '[succeeded]'
winetest: all
WINE=wine $(MAKE) test