mirror of
https://github.com/arvidn/libtorrent.git
synced 2026-05-07 08:19:55 -04:00
232 lines
6.6 KiB
Makefile
232 lines
6.6 KiB
Makefile
# this makefile assumes that you have docutils and rst2pdf installed
|
|
# (python-docutils) as well as aafigure (python-aafigure)
|
|
|
|
ifndef WEB_PATH
|
|
WEB_PATH = ~/web/products/libtorrent
|
|
endif
|
|
|
|
ifndef RST2HTML
|
|
RST2HTML:=rst2html
|
|
endif
|
|
|
|
ifndef AAFIGURE
|
|
AAFIGURE=aafigure
|
|
endif
|
|
|
|
REFERENCE_TARGETS = \
|
|
manual-ref \
|
|
tutorial-ref \
|
|
tuning-ref \
|
|
features-ref \
|
|
upgrade_to_1.2-ref \
|
|
upgrade_to_2.0-ref \
|
|
reference \
|
|
reference-Core \
|
|
reference-DHT \
|
|
reference-Session \
|
|
reference-Torrent_Handle \
|
|
reference-Torrent_Info \
|
|
reference-Trackers \
|
|
reference-PeerClass \
|
|
reference-Torrent_Status \
|
|
reference-Stats \
|
|
reference-Resume_Data \
|
|
reference-Add_Torrent \
|
|
reference-Plugins \
|
|
reference-Create_Torrents \
|
|
reference-Error_Codes \
|
|
reference-Storage \
|
|
reference-Custom_Storage \
|
|
reference-Utility \
|
|
reference-Bencoding \
|
|
reference-Alerts \
|
|
reference-Filter \
|
|
reference-Settings \
|
|
reference-Bdecoding \
|
|
reference-ed25519
|
|
|
|
MANUAL_TARGETS = index \
|
|
udp_tracker_protocol \
|
|
dht_rss \
|
|
dht_store \
|
|
client_test \
|
|
building \
|
|
troubleshooting \
|
|
contributing\
|
|
examples \
|
|
extension_protocol \
|
|
dht_extensions \
|
|
dht_sec \
|
|
python_binding \
|
|
projects \
|
|
utp \
|
|
hacking \
|
|
streaming \
|
|
fuzzing \
|
|
security-audit
|
|
|
|
TARGETS = single-page-ref \
|
|
$(MANUAL_TARGETS) \
|
|
$(REFERENCE_TARGETS)
|
|
|
|
FIGURES = $(addprefix img/, \
|
|
read_disk_buffers \
|
|
write_disk_buffers \
|
|
hacking \
|
|
utp_stack \
|
|
storage \
|
|
troubleshooting \
|
|
troubleshooting_thumb \
|
|
screenshot_thumb \
|
|
logo-color \
|
|
logo-bw \
|
|
our_delay_base_thumb \
|
|
delays_thumb \
|
|
cwnd_thumb \
|
|
)
|
|
|
|
STAGE_IMG = $(addprefix img/, \
|
|
logo-color-text \
|
|
logo-color \
|
|
screenshot \
|
|
bitcoin \
|
|
ip_id_v4 \
|
|
ip_id_v6 \
|
|
hash_distribution \
|
|
complete_bit_prefixes \
|
|
our_delay_base \
|
|
delays \
|
|
cwnd \
|
|
)
|
|
|
|
ORIG_HEADERS = $(wildcard ../include/libtorrent/*.hpp)
|
|
HEADERS = $(ORIG_HEADERS:../%=%)
|
|
|
|
html: $(TARGETS:=.html) $(FIGURES:=.png) todo.html favicon.ico $(HEADERS)
|
|
|
|
stage: $(addprefix $(WEB_PATH)/, $(TARGETS:=.html) $(FIGURES:=.png) todo.html favicon.ico style.css $(HEADERS) $(STAGE_IMG:=.png))
|
|
|
|
rst: $(TARGETS:=.rst) todo.html
|
|
|
|
pdf: $(TARGETS:=.pdf) $(FIGURES:=.png)
|
|
|
|
epub: $(TARGETS:=.epub) $(FIGURES:=.png)
|
|
|
|
all: html pdf favicon.ico
|
|
|
|
img/logo-color-text.png: img/logo-color-text.svg
|
|
convert -background transparent $< -resize 400 $@
|
|
|
|
img/%.png: img/%.svg
|
|
convert -background transparent $< -resize 128x128 $@
|
|
|
|
favicon.ico: favicon-16.png favicon-32.png favicon-64.png
|
|
icotool -o $@ -c $?
|
|
|
|
favicon-16.png: img/logo-color.svg
|
|
convert -background transparent $< -resize 16x16 $@
|
|
|
|
favicon-32.png: img/logo-color.svg
|
|
convert -background transparent $< -resize 32x32 $@
|
|
|
|
favicon-64.png: img/logo-color.svg
|
|
convert -background transparent $< -resize 64x64 $@
|
|
|
|
single-page-ref.rst: gen_reference_doc.py ../include/libtorrent/*.hpp ../include/libtorrent/kademlia/*.hpp settings-ref.rst stats_counters.rst
|
|
python3 gen_reference_doc.py --single-page
|
|
|
|
settings.rst hunspell/settings.dic: ../include/libtorrent/settings_pack.hpp hunspell/libtorrent.dic
|
|
python3 gen_settings_doc.py || { rm $@; exit 1; }
|
|
cat hunspell/libtorrent.dic >>hunspell/settings.dic
|
|
|
|
stats_counters.rst: ../src/session_stats.cpp ../include/libtorrent/performance_counters.hpp
|
|
python3 gen_stats_doc.py || { rm $@; exit 1; }
|
|
|
|
manual.rst: stats_counters.rst
|
|
touch manual.rst
|
|
|
|
%_thumb.png: %.png
|
|
convert $< -resize 400 $@
|
|
|
|
img/troubleshooting_thumb.png: img/troubleshooting.png
|
|
convert $< -resize 800x800 $@
|
|
|
|
todo.html:gen_todo.py ../src/*.cpp ../include/libtorrent/*.hpp
|
|
python3 gen_todo.py
|
|
|
|
$(REFERENCE_TARGETS:=.rst) plain_text_out.txt settings-ref.rst:gen_reference_doc.py ../include/libtorrent/*.hpp ../include/libtorrent/kademlia/*.hpp manual.rst tuning.rst tutorial.rst features.rst settings.rst stats_counters.rst hunspell/settings.dic
|
|
python3 gen_reference_doc.py --plain-output
|
|
|
|
spell-check:plain_text_out.txt $(MANUAL_TARGETS:=.html) manual.rst settings.rst tutorial.rst
|
|
python3 filter-rst.py manual.rst >manual-plain.txt
|
|
python3 filter-rst.py tutorial.rst >tutorial-plain.txt
|
|
python3 filter-rst.py tuning.rst >tuning-plain.txt
|
|
python3 filter-rst.py settings.rst >settings-plain.txt
|
|
python3 filter-rst.py upgrade_to_1.2.rst >upgrade-1_2-plain.txt
|
|
python3 filter-rst.py upgrade_to_2.0.rst >upgrade-2_0-plain.txt
|
|
hunspell -i UTF-8 -d hunspell/en_US -p hunspell/libtorrent.dic -l plain_text_out.txt >hunspell-report.txt
|
|
hunspell -i UTF-8 -d hunspell/en_US -p hunspell/libtorrent.dic -l manual-plain.txt >>hunspell-report.txt
|
|
hunspell -i UTF-8 -d hunspell/en_US -p hunspell/libtorrent.dic -l tutorial-plain.txt >>hunspell-report.txt
|
|
hunspell -i UTF-8 -d hunspell/en_US -p hunspell/libtorrent.dic -l tuning-plain.txt >>hunspell-report.txt
|
|
hunspell -i UTF-8 -d hunspell/en_US -p hunspell/libtorrent.dic -l upgrade-1_2-plain.txt >>hunspell-report.txt
|
|
hunspell -i UTF-8 -d hunspell/en_US -p hunspell/libtorrent.dic -l upgrade-2_0-plain.txt >>hunspell-report.txt
|
|
hunspell -i UTF-8 -d hunspell/en_US -p hunspell/settings.dic -l settings-plain.txt >>hunspell-report.txt
|
|
hunspell -i UTF-8 -d hunspell/en_US -p hunspell/libtorrent.dic -H -l $(MANUAL_TARGETS:=.html) >>hunspell-report.txt
|
|
@if [ -s hunspell-report.txt ]; then echo 'spellcheck failed, fix words or add to dictionary:'; cat hunspell-report.txt; false; fi;
|
|
|
|
%.epub:%.rst
|
|
rst2epub --exit-status=2 $< $@
|
|
|
|
%.pdf:%.rst
|
|
rst2pdf $< -o $@ --stylesheets stylesheet
|
|
|
|
%.html:%.rst template.txt template2.txt
|
|
$(RST2HTML) --title=libtorrent --exit-status=2 --template=template.txt --stylesheet-path=style.css --link-stylesheet --no-toc-backlinks $< > $@ || { rm $@; exit 1; }
|
|
|
|
%.png:%.dot
|
|
dot -Tpng $< >$@ || { rm $@; exit 1; }
|
|
|
|
%.png:%.diagram
|
|
$(AAFIGURE) --scale 0.6 -o $@ $< || { rm $@; exit 1; }
|
|
|
|
include/libtorrent/%.hpp: ../include/libtorrent/%.hpp
|
|
mkdir -p include/libtorrent >/dev/null
|
|
cp $< $@
|
|
|
|
# stage rules
|
|
|
|
$(WEB_PATH)/%.html:%.rst template.txt template2.txt
|
|
mkdir -p $(WEB_PATH) >/dev/null
|
|
$(RST2HTML) --title=libtorrent --exit-status=2 --template=template2.txt --stylesheet-path=style.css --link-stylesheet --no-toc-backlinks $< > $@ || { rm $@; exit 1; }
|
|
|
|
$(WEB_PATH)/img/%.png: img/%.png
|
|
mkdir -p $(WEB_PATH)/img >/dev/null
|
|
cp $< $@
|
|
|
|
$(WEB_PATH)/%.png: %.png
|
|
cp $< $@
|
|
|
|
$(WEB_PATH)/%.css: %.css
|
|
cp $< $@
|
|
|
|
$(WEB_PATH)/%.svg: %.svg
|
|
cp $< $@
|
|
|
|
$(WEB_PATH)/%.html: %.html
|
|
cp $< $@
|
|
|
|
$(WEB_PATH)/%.ico: %.ico
|
|
cp $< $@
|
|
|
|
$(WEB_PATH)/include/libtorrent/%.hpp: ../include/libtorrent/%.hpp
|
|
mkdir -p $(WEB_PATH)/include/libtorrent
|
|
cp $< $@
|
|
|
|
$(WEB_PATH)/img/%.png: img/%.png
|
|
mkdir -p $(WEB_PATH)/img >/dev/null
|
|
cp $< $@
|
|
|
|
clean:
|
|
rm -f $(TARGETS:=.html) $(TARGETS:=.pdf) $(FIGURES:=.png) $(REFERENCE_TARGETS:=.rst) settings.rst todo.html reference*.html stats_counters.rst hunspell/settings.dic favicon-16.png favicon-32.png favicon-64.png favicon.ico
|
|
|