# This file is part of Haketilo # # Copyright (C) 2021 jahoti # Copyright (C) 2021, 2022 Wojtek Kosior # # This program is free software: you can redistribute it and/or modify # it under the terms of the CC0 1.0 Universal License as published by # the Creative Commons Corporation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # CC0 1.0 Universal License for more details. SHELL = /bin/sh VPATH = <> version = <> extension_files = background/ common/ content/ html/ licenses/ \ icons/ copyright default_settings.json manifest.json metafiles = build.sh configure Makefile.in compute_scripts.awk README.txt \ re-generate_icons.sh shell_utils.sh upload_amo.sh write_makefile.sh # Configuration gets included here by write_makefile.sh # The default target: placed up here default: $(default_target) # haketilo-$(version).tar is not actually a phony target but it is too hard to # track all the files that might require remaking it, so we instead re-run it # every time. .PHONY: mozilla install-mozilla chromium install-chromium \ all all-unpacked default unpacked \ install install-html install-dvi install-pdf install-ps uninstall \ install-strip clean distclean mostlyclean maintainer-clean TAGS info \ dvi html pdf ps dist check installcheck installdirs \ test-prepare test test-environment haketilo-$(version).tar.gz # core files icons/haketilo16.png: icons/haketilo.svg cd "$(srcdir)" && ./re-generate_icons.sh # Use haketilo16.png as an "index" for all the icon PNGs # browser-specific targets all: mozilla chromium mozilla: mozilla-build.zip chromium: chromium-build.zip unpacked: $(default_target)-unpacked Makefile all-unpacked: mozilla-unpacked chromium-unpacked %-unpacked: $(extension_files) icons/haketilo16.png "$(srcdir)/build.sh" $* $(srcdir) $(UPDATE_URL) install install-strip: $(default_target)-unpacked cp -R $(default_target)-unpacked \ "$(DESTDIR)/{6fe13369-88e9-440f-b837-5012fb3bedec}" uninstall: rm -r "$(DESTDIR)/{6fe13369-88e9-440f-b837-5012fb3bedec}" %-build.zip: %-unpacked Makefile cd $< && zip -q -r ../$@ * certs/: mkdir $@ certs/%.key: | certs/ openssl genrsa -out $@ 2048 certs/rootCA.pem: certs/rootCA.key openssl req -x509 -new -nodes -key $< -days 1024 -out $@ \ -subj "/CN=Haketilo Test" pytest.ini: pytest.ini.in sed "s|<>|$(srcdir)|" <$< > $@ test-prepare: certs/rootCA.pem certs/site.key $(default_target)-build.zip \ pytest.ini check: test test: test-prepare PYTHONPYCACHEPREFIX="$$(pwd)/test__pycache__" MOZ_HEADLESS=whatever \ "$(PYTHON)" -m pytest test-environment: certs/rootCA.pem certs/site.key unset MOZ_HEADLESS; PYTHONPATH="$$PYTHONPATH:$(srcdir)/test" \ "$(PYTHON)" -m haketilo_test test-environment-with-haketilo: certs/rootCA.pem certs/site.key \ $(default_target)-build.zip unset MOZ_HEADLESS; PYTHONPATH="$$PYTHONPATH:$(srcdir)/test" \ "$(PYTHON)" -m haketilo_test --load-haketilo # helper targets clean mostlyclean: rm -rf mozilla-unpacked chromium-unpacked haketilo-[1-9]* rm -f mozilla-build.zip chromium-build.zip exports_init.js rm -rf pytest.ini certs injected_scripts geckodriver.log rm -rf certs/ test__pycache__/ .pytest_cache/ rm -f *.tar.gz distclean: clean rm -f Makefile config.status record.conf maintainer-clean: distclean @echo 'This command is intended for maintainers to use; it' @echo 'deletes files that may need special tools to rebuild.' rm -f "$(srcdir)"/icons/*.png "$(srcdir)"/FILES.txt # To make the next rule happy in case we're building from tarball. $(srcdir)/.git: $(srcdir)/FILES.txt: $(srcdir)/.git if [ -e "$(srcdir)/.git" ]; then \ git -C "$(srcdir)" ls-files --cached --recurse-submodules | \ grep -v gitmodules > $@; \ printf 'FILES.txt\n' >> $@; \ fi haketilo-$(version).tar.gz: FILES.txt HERE="$$(pwd)"; \ cd "$(srcdir)"; \ tar -czf "$$HERE/$@" --transform='s_^_haketilo-$(version)/_' \ $$(cat FILES.txt) dist: haketilo-$(version).tar.gz # Files for constructing the makefile Makefile: config.status Makefile.in record.conf version ./config.status config.status: write_makefile.sh cp "$(srcdir)"/write_makefile.sh config.status # Unused GNU-specified targets install-html: install-dvi: install-pdf: install-ps: TAGS: info: dvi: html: pdf: ps: installcheck: installdirs: