#!/usr/bin/make AM_MAKEFLAGS = --no-print-directory AUTOMAKE_OPTIONS = color-tests # remove target it the command fails .DELETE_ON_ERROR: # keep itermediate files .SECONDARY: pythondir = $(prefix)/lib/python3/dist-packages configsdir = $(sysconfdir)/ipfire.org crondir = $(sysconfdir)/cron.d CLEANFILES = DISTCLEANFILES = EXTRA_DIST = INSTALL_DIRS = noinst_DATA = DISTCHECK_CONFIGURE_FLAGS = \ --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) # ------------------------------------------------------------------------------ bin_SCRIPTS = \ src/scripts/ipfire.org \ src/scripts/ipfire.org-webapp EXTRA_DIST += \ src/scripts/ipfire.org.in \ src/scripts/ipfire.org-webapp.in CLEANFILES += \ src/scripts/ipfire.org \ src/scripts/ipfire.org-webapp configs_DATA = \ ipfire.org.conf.sample EXTRA_DIST += \ ipfire.org.conf.sample.in CLEANFILES += \ ipfire.org.conf.sample backend_PYTHON = \ src/backend/__init__.py \ src/backend/accounts.py \ src/backend/analytics.py \ src/backend/asterisk.py \ src/backend/base.py \ src/backend/blog.py \ src/backend/bugzilla.py \ src/backend/cache.py \ src/backend/campaigns.py \ src/backend/countries.py \ src/backend/database.py \ src/backend/decorators.py \ src/backend/fireinfo.py \ src/backend/httpclient.py \ src/backend/hwdata.py \ src/backend/iuse.py \ src/backend/lists.py \ src/backend/messages.py \ src/backend/mirrors.py \ src/backend/misc.py \ src/backend/netboot.py \ src/backend/nopaste.py \ src/backend/ratelimit.py \ src/backend/releases.py \ src/backend/resolver.py \ src/backend/settings.py \ src/backend/toots.py \ src/backend/util.py \ src/backend/wiki.py \ src/backend/zeiterfassung.py backenddir = $(pythondir)/ipfire # ------------------------------------------------------------------------------ web_PYTHON = \ src/web/__init__.py \ src/web/analytics.py \ src/web/auth.py \ src/web/base.py \ src/web/blog.py \ src/web/boot.py \ src/web/docs.py \ src/web/donate.py \ src/web/downloads.py \ src/web/fireinfo.py \ src/web/handlers.py \ src/web/iuse.py \ src/web/lists.py \ src/web/location.py \ src/web/nopaste.py \ src/web/ui_modules.py \ src/web/users.py \ src/web/voip.py webdir = $(backenddir)/web # ------------------------------------------------------------------------------ # TODO install the base for now and add all other templates later templates_DATA = \ src/templates/base.html \ src/templates/error.html \ src/templates/index.html templatesdir = $(datadir)/templates templates_analytics_DATA = \ src/templates/analytics/docs.html \ src/templates/analytics/index.html templates_analyticsdir = $(templatesdir)/analytics templates_analytics_modules_DATA = \ src/templates/analytics/modules/summary.html templates_analytics_modulesdir = $(templates_analyticsdir)/modules templates_auth_DATA = \ src/templates/auth/activate.html \ src/templates/auth/activated.html \ src/templates/auth/join.html \ src/templates/auth/join-success.html \ src/templates/auth/login.html \ src/templates/auth/password-reset.html \ src/templates/auth/password-reset-initiation.html \ src/templates/auth/password-reset-successful.html templates_authdir = $(templatesdir)/auth templates_auth_messages_DATA = \ src/templates/auth/messages/donation-reminder.html \ src/templates/auth/messages/donation-reminder.txt \ src/templates/auth/messages/join.html \ src/templates/auth/messages/join.txt \ src/templates/auth/messages/password-reset.html \ src/templates/auth/messages/password-reset.txt \ src/templates/auth/messages/profile-setup.html \ src/templates/auth/messages/profile-setup.txt \ src/templates/auth/messages/profile-setup-2.html \ src/templates/auth/messages/profile-setup-2.txt templates_auth_messagesdir = $(templates_authdir)/messages templates_auth_modules_DATA = \ src/templates/auth/modules/password.html \ src/templates/auth/modules/password.js templates_auth_modulesdir = $(templates_authdir)/modules templates_blog_DATA = \ src/templates/blog/delete.html \ src/templates/blog/drafts.html \ src/templates/blog/feed.xml \ src/templates/blog/index.html \ src/templates/blog/post.html \ src/templates/blog/publish.html \ src/templates/blog/write.html \ src/templates/blog/year.html templates_blogdir = $(templatesdir)/blog templates_blog_messages_DATA = \ src/templates/blog/messages/announcement.html \ src/templates/blog/messages/announcement.txt templates_blog_messagesdir = $(templates_blogdir)/messages templates_blog_modules_DATA = \ src/templates/blog/modules/history-navigation.html \ src/templates/blog/modules/list.html templates_blog_modulesdir = $(templates_blogdir)/modules templates_donate_DATA = \ src/templates/donate/donate.html \ src/templates/donate/error.html \ src/templates/donate/thank-you.html templates_donatedir = $(templatesdir)/donate templates_donate_messages_DATA = \ src/templates/donate/messages/ask-again.html \ src/templates/donate/messages/ask-again.txt \ src/templates/donate/messages/christmas-1.html \ src/templates/donate/messages/christmas-1.txt \ src/templates/donate/messages/christmas-2.html \ src/templates/donate/messages/christmas-2.txt \ src/templates/donate/messages/christmas-3.html \ src/templates/donate/messages/christmas-3.txt \ src/templates/donate/messages/christmas-4.html \ src/templates/donate/messages/christmas-4.txt \ src/templates/donate/messages/convert-to-monthly.html \ src/templates/donate/messages/convert-to-monthly.txt templates_donate_messagesdir = $(templates_donatedir)/messages templates_docs_DATA = \ src/templates/docs/404.html \ src/templates/docs/base.html \ src/templates/docs/confirm-delete.html \ src/templates/docs/confirm-restore.html \ src/templates/docs/diff.html \ src/templates/docs/edit.html \ src/templates/docs/page.html \ src/templates/docs/recent-changes.html \ src/templates/docs/revisions.html \ src/templates/docs/search-results.html \ src/templates/docs/tree.html \ src/templates/docs/watchlist.html templates_docsdir = $(templatesdir)/docs templates_docs_files_DATA = \ src/templates/docs/files/detail.html \ src/templates/docs/files/index.html templates_docs_filesdir = $(templates_docsdir)/files templates_docs_modules_DATA = \ src/templates/docs/modules/diff.html \ src/templates/docs/modules/header.html \ src/templates/docs/modules/list.html templates_docs_modulesdir = $(templates_docsdir)/modules templates_downloads_DATA = \ src/templates/downloads/cloud.html \ src/templates/downloads/mirrors.html \ src/templates/downloads/release.html \ src/templates/downloads/thank-you.html templates_downloadsdir = $(templatesdir)/downloads templates_fireinfo_DATA = \ src/templates/fireinfo/admin.html \ src/templates/fireinfo/driver.html \ src/templates/fireinfo/index.html \ src/templates/fireinfo/i-use-1.png \ src/templates/fireinfo/processors.html \ src/templates/fireinfo/profile.html \ src/templates/fireinfo/releases.html \ src/templates/fireinfo/vendor.html \ src/templates/fireinfo/vendors.html templates_fireinfodir = $(templatesdir)/fireinfo templates_fireinfo_modules_DATA = \ src/templates/fireinfo/modules/table-devices-and-groups.html \ src/templates/fireinfo/modules/table-devices.html templates_fireinfo_modulesdir = $(templates_fireinfodir)/modules templates_location_DATA = \ src/templates/location/base.html \ src/templates/location/download.html \ src/templates/location/how-to-use.html \ src/templates/location/index.html \ src/templates/location/lookup.html templates_locationdir = $(templatesdir)/location templates_lists_DATA = \ src/templates/lists/index.html templates_listsdir = $(templatesdir)/lists templates_messages_DATA = \ src/templates/messages/base.html \ src/templates/messages/base-promo.html \ src/templates/messages/fonts.css \ src/templates/messages/main.css templates_messagesdir = $(templatesdir)/messages templates_modules_DATA = \ src/templates/modules/ipfire-logo.html \ src/templates/modules/map.html \ src/templates/modules/progress-bar.html templates_modulesdir = $(templatesdir)/modules templates_netboot_DATA = \ src/templates/netboot/menu.cfg \ src/templates/netboot/menu-config.cfg \ src/templates/netboot/menu-header.cfg \ src/templates/netboot/menu-separator.cfg \ src/templates/netboot/premenu.cfg templates_netbootdir = $(templatesdir)/netboot templates_nopaste_DATA = \ src/templates/nopaste/create.html \ src/templates/nopaste/upload.html \ src/templates/nopaste/view.html templates_nopastedir = $(templatesdir)/nopaste templates_nopaste_modules_DATA = \ src/templates/nopaste/modules/code.html templates_nopaste_modulesdir = $(templates_nopastedir)/modules templates_people_messages_DATA = \ src/templates/people/messages/new-account.txt templates_people_messagesdir = $(templates_peopledir)/messages templates_static_DATA = \ src/templates/static/about.html \ src/templates/static/legal.html \ src/templates/static/help.html \ src/templates/static/partners.html \ src/templates/static/sitemap.html templates_staticdir = $(templatesdir)/static templates_users_DATA = \ src/templates/users/delete.html \ src/templates/users/deleted.html \ src/templates/users/edit.html \ src/templates/users/index.html \ src/templates/users/passwd.html \ src/templates/users/show.html \ src/templates/users/subscribe.html \ src/templates/users/subscribed.html \ src/templates/users/unsubscribe.html \ src/templates/users/unsubscribed.html templates_usersdir = $(templatesdir)/users templates_users_groups_DATA = \ src/templates/users/groups/index.html \ src/templates/users/groups/show.html templates_users_groupsdir = $(templates_usersdir)/groups templates_users_modules_DATA = \ src/templates/users/modules/list.html templates_users_modulesdir = $(templates_usersdir)/modules templates_voip_DATA = \ src/templates/voip/index.html templates_voipdir = $(templatesdir)/voip templates_voip_modules_DATA = \ src/templates/voip/modules/conferences.html \ src/templates/voip/modules/outbound-registrations.html \ src/templates/voip/modules/queues.html \ src/templates/voip/modules/registrations.html templates_voip_modulesdir = $(templates_voipdir)/modules templates_wikidir = $(templatesdir)/wiki templates_wiki_messages_DATA = \ src/templates/wiki/messages/page-changed.txt templates_wiki_messagesdir = $(templates_wikidir)/messages # ------------------------------------------------------------------------------ SASS_FILES = \ src/sass/main.sass \ src/sass/_code-highlighting.sass \ src/sass/_fonts.sass \ src/sass/_icons.sass \ src/sass/_variables.sass EXTRA_DIST += \ src/sass/listing.sass \ src/templates/messages/fonts.sass \ src/templates/messages/main.sass CLEANFILES += \ src/templates/messages/fonts.css \ src/templates/messages/main.css static_DATA = \ src/static/favicon.ico \ src/static/robots.txt \ src/sass/listing.css \ src/sass/main.css CLEANFILES += \ src/sass/listing.css \ src/sass/main.css EXTRA_DIST += \ $(SASS_FILES) staticdir = $(datadir)/static static_css_DATA = \ src/static/css/Control.Geocoder.css \ src/static/css/leaflet.css \ src/static/css/prettify.css static_cssdir = $(staticdir)/css static_flagsdir = $(staticdir)/flags static_flags_1x1_DATA = \ src/flag-icons/flags/1x1/ad.svg \ src/flag-icons/flags/1x1/ae.svg \ src/flag-icons/flags/1x1/af.svg \ src/flag-icons/flags/1x1/ag.svg \ src/flag-icons/flags/1x1/ai.svg \ src/flag-icons/flags/1x1/al.svg \ src/flag-icons/flags/1x1/am.svg \ src/flag-icons/flags/1x1/ao.svg \ src/flag-icons/flags/1x1/aq.svg \ src/flag-icons/flags/1x1/ar.svg \ src/flag-icons/flags/1x1/as.svg \ src/flag-icons/flags/1x1/at.svg \ src/flag-icons/flags/1x1/au.svg \ src/flag-icons/flags/1x1/aw.svg \ src/flag-icons/flags/1x1/ax.svg \ src/flag-icons/flags/1x1/az.svg \ src/flag-icons/flags/1x1/ba.svg \ src/flag-icons/flags/1x1/bb.svg \ src/flag-icons/flags/1x1/bd.svg \ src/flag-icons/flags/1x1/be.svg \ src/flag-icons/flags/1x1/bf.svg \ src/flag-icons/flags/1x1/bg.svg \ src/flag-icons/flags/1x1/bh.svg \ src/flag-icons/flags/1x1/bi.svg \ src/flag-icons/flags/1x1/bj.svg \ src/flag-icons/flags/1x1/bl.svg \ src/flag-icons/flags/1x1/bm.svg \ src/flag-icons/flags/1x1/bn.svg \ src/flag-icons/flags/1x1/bo.svg \ src/flag-icons/flags/1x1/bq.svg \ src/flag-icons/flags/1x1/br.svg \ src/flag-icons/flags/1x1/bs.svg \ src/flag-icons/flags/1x1/bt.svg \ src/flag-icons/flags/1x1/bv.svg \ src/flag-icons/flags/1x1/bw.svg \ src/flag-icons/flags/1x1/by.svg \ src/flag-icons/flags/1x1/bz.svg \ src/flag-icons/flags/1x1/ca.svg \ src/flag-icons/flags/1x1/cc.svg \ src/flag-icons/flags/1x1/cd.svg \ src/flag-icons/flags/1x1/cf.svg \ src/flag-icons/flags/1x1/cg.svg \ src/flag-icons/flags/1x1/ch.svg \ src/flag-icons/flags/1x1/ci.svg \ src/flag-icons/flags/1x1/ck.svg \ src/flag-icons/flags/1x1/cl.svg \ src/flag-icons/flags/1x1/cm.svg \ src/flag-icons/flags/1x1/cn.svg \ src/flag-icons/flags/1x1/co.svg \ src/flag-icons/flags/1x1/cr.svg \ src/flag-icons/flags/1x1/cu.svg \ src/flag-icons/flags/1x1/cv.svg \ src/flag-icons/flags/1x1/cw.svg \ src/flag-icons/flags/1x1/cx.svg \ src/flag-icons/flags/1x1/cy.svg \ src/flag-icons/flags/1x1/cz.svg \ src/flag-icons/flags/1x1/de.svg \ src/flag-icons/flags/1x1/dj.svg \ src/flag-icons/flags/1x1/dk.svg \ src/flag-icons/flags/1x1/dm.svg \ src/flag-icons/flags/1x1/do.svg \ src/flag-icons/flags/1x1/dz.svg \ src/flag-icons/flags/1x1/ec.svg \ src/flag-icons/flags/1x1/ee.svg \ src/flag-icons/flags/1x1/eg.svg \ src/flag-icons/flags/1x1/eh.svg \ src/flag-icons/flags/1x1/er.svg \ src/flag-icons/flags/1x1/es-ct.svg \ src/flag-icons/flags/1x1/es.svg \ src/flag-icons/flags/1x1/et.svg \ src/flag-icons/flags/1x1/eu.svg \ src/flag-icons/flags/1x1/fi.svg \ src/flag-icons/flags/1x1/fj.svg \ src/flag-icons/flags/1x1/fk.svg \ src/flag-icons/flags/1x1/fm.svg \ src/flag-icons/flags/1x1/fo.svg \ src/flag-icons/flags/1x1/fr.svg \ src/flag-icons/flags/1x1/ga.svg \ src/flag-icons/flags/1x1/gb-eng.svg \ src/flag-icons/flags/1x1/gb-nir.svg \ src/flag-icons/flags/1x1/gb-sct.svg \ src/flag-icons/flags/1x1/gb.svg \ src/flag-icons/flags/1x1/gb-wls.svg \ src/flag-icons/flags/1x1/gd.svg \ src/flag-icons/flags/1x1/ge.svg \ src/flag-icons/flags/1x1/gf.svg \ src/flag-icons/flags/1x1/gg.svg \ src/flag-icons/flags/1x1/gh.svg \ src/flag-icons/flags/1x1/gi.svg \ src/flag-icons/flags/1x1/gl.svg \ src/flag-icons/flags/1x1/gm.svg \ src/flag-icons/flags/1x1/gn.svg \ src/flag-icons/flags/1x1/gp.svg \ src/flag-icons/flags/1x1/gq.svg \ src/flag-icons/flags/1x1/gr.svg \ src/flag-icons/flags/1x1/gs.svg \ src/flag-icons/flags/1x1/gt.svg \ src/flag-icons/flags/1x1/gu.svg \ src/flag-icons/flags/1x1/gw.svg \ src/flag-icons/flags/1x1/gy.svg \ src/flag-icons/flags/1x1/hk.svg \ src/flag-icons/flags/1x1/hm.svg \ src/flag-icons/flags/1x1/hn.svg \ src/flag-icons/flags/1x1/hr.svg \ src/flag-icons/flags/1x1/ht.svg \ src/flag-icons/flags/1x1/hu.svg \ src/flag-icons/flags/1x1/id.svg \ src/flag-icons/flags/1x1/ie.svg \ src/flag-icons/flags/1x1/il.svg \ src/flag-icons/flags/1x1/im.svg \ src/flag-icons/flags/1x1/in.svg \ src/flag-icons/flags/1x1/io.svg \ src/flag-icons/flags/1x1/iq.svg \ src/flag-icons/flags/1x1/ir.svg \ src/flag-icons/flags/1x1/is.svg \ src/flag-icons/flags/1x1/it.svg \ src/flag-icons/flags/1x1/je.svg \ src/flag-icons/flags/1x1/jm.svg \ src/flag-icons/flags/1x1/jo.svg \ src/flag-icons/flags/1x1/jp.svg \ src/flag-icons/flags/1x1/ke.svg \ src/flag-icons/flags/1x1/kg.svg \ src/flag-icons/flags/1x1/kh.svg \ src/flag-icons/flags/1x1/ki.svg \ src/flag-icons/flags/1x1/km.svg \ src/flag-icons/flags/1x1/kn.svg \ src/flag-icons/flags/1x1/kp.svg \ src/flag-icons/flags/1x1/kr.svg \ src/flag-icons/flags/1x1/kw.svg \ src/flag-icons/flags/1x1/ky.svg \ src/flag-icons/flags/1x1/kz.svg \ src/flag-icons/flags/1x1/la.svg \ src/flag-icons/flags/1x1/lb.svg \ src/flag-icons/flags/1x1/lc.svg \ src/flag-icons/flags/1x1/li.svg \ src/flag-icons/flags/1x1/lk.svg \ src/flag-icons/flags/1x1/lr.svg \ src/flag-icons/flags/1x1/ls.svg \ src/flag-icons/flags/1x1/lt.svg \ src/flag-icons/flags/1x1/lu.svg \ src/flag-icons/flags/1x1/lv.svg \ src/flag-icons/flags/1x1/ly.svg \ src/flag-icons/flags/1x1/ma.svg \ src/flag-icons/flags/1x1/mc.svg \ src/flag-icons/flags/1x1/md.svg \ src/flag-icons/flags/1x1/me.svg \ src/flag-icons/flags/1x1/mf.svg \ src/flag-icons/flags/1x1/mg.svg \ src/flag-icons/flags/1x1/mh.svg \ src/flag-icons/flags/1x1/mk.svg \ src/flag-icons/flags/1x1/ml.svg \ src/flag-icons/flags/1x1/mm.svg \ src/flag-icons/flags/1x1/mn.svg \ src/flag-icons/flags/1x1/mo.svg \ src/flag-icons/flags/1x1/mp.svg \ src/flag-icons/flags/1x1/mq.svg \ src/flag-icons/flags/1x1/mr.svg \ src/flag-icons/flags/1x1/ms.svg \ src/flag-icons/flags/1x1/mt.svg \ src/flag-icons/flags/1x1/mu.svg \ src/flag-icons/flags/1x1/mv.svg \ src/flag-icons/flags/1x1/mw.svg \ src/flag-icons/flags/1x1/mx.svg \ src/flag-icons/flags/1x1/my.svg \ src/flag-icons/flags/1x1/mz.svg \ src/flag-icons/flags/1x1/na.svg \ src/flag-icons/flags/1x1/nc.svg \ src/flag-icons/flags/1x1/ne.svg \ src/flag-icons/flags/1x1/nf.svg \ src/flag-icons/flags/1x1/ng.svg \ src/flag-icons/flags/1x1/ni.svg \ src/flag-icons/flags/1x1/nl.svg \ src/flag-icons/flags/1x1/no.svg \ src/flag-icons/flags/1x1/np.svg \ src/flag-icons/flags/1x1/nr.svg \ src/flag-icons/flags/1x1/nu.svg \ src/flag-icons/flags/1x1/nz.svg \ src/flag-icons/flags/1x1/om.svg \ src/flag-icons/flags/1x1/pa.svg \ src/flag-icons/flags/1x1/pe.svg \ src/flag-icons/flags/1x1/pf.svg \ src/flag-icons/flags/1x1/pg.svg \ src/flag-icons/flags/1x1/ph.svg \ src/flag-icons/flags/1x1/pk.svg \ src/flag-icons/flags/1x1/pl.svg \ src/flag-icons/flags/1x1/pm.svg \ src/flag-icons/flags/1x1/pn.svg \ src/flag-icons/flags/1x1/pr.svg \ src/flag-icons/flags/1x1/ps.svg \ src/flag-icons/flags/1x1/pt.svg \ src/flag-icons/flags/1x1/pw.svg \ src/flag-icons/flags/1x1/py.svg \ src/flag-icons/flags/1x1/qa.svg \ src/flag-icons/flags/1x1/re.svg \ src/flag-icons/flags/1x1/ro.svg \ src/flag-icons/flags/1x1/rs.svg \ src/flag-icons/flags/1x1/ru.svg \ src/flag-icons/flags/1x1/rw.svg \ src/flag-icons/flags/1x1/sa.svg \ src/flag-icons/flags/1x1/sb.svg \ src/flag-icons/flags/1x1/sc.svg \ src/flag-icons/flags/1x1/sd.svg \ src/flag-icons/flags/1x1/se.svg \ src/flag-icons/flags/1x1/sg.svg \ src/flag-icons/flags/1x1/sh.svg \ src/flag-icons/flags/1x1/si.svg \ src/flag-icons/flags/1x1/sj.svg \ src/flag-icons/flags/1x1/sk.svg \ src/flag-icons/flags/1x1/sl.svg \ src/flag-icons/flags/1x1/sm.svg \ src/flag-icons/flags/1x1/sn.svg \ src/flag-icons/flags/1x1/so.svg \ src/flag-icons/flags/1x1/sr.svg \ src/flag-icons/flags/1x1/ss.svg \ src/flag-icons/flags/1x1/st.svg \ src/flag-icons/flags/1x1/sv.svg \ src/flag-icons/flags/1x1/sx.svg \ src/flag-icons/flags/1x1/sy.svg \ src/flag-icons/flags/1x1/sz.svg \ src/flag-icons/flags/1x1/tc.svg \ src/flag-icons/flags/1x1/td.svg \ src/flag-icons/flags/1x1/tf.svg \ src/flag-icons/flags/1x1/tg.svg \ src/flag-icons/flags/1x1/th.svg \ src/flag-icons/flags/1x1/tj.svg \ src/flag-icons/flags/1x1/tk.svg \ src/flag-icons/flags/1x1/tl.svg \ src/flag-icons/flags/1x1/tm.svg \ src/flag-icons/flags/1x1/tn.svg \ src/flag-icons/flags/1x1/to.svg \ src/flag-icons/flags/1x1/tr.svg \ src/flag-icons/flags/1x1/tt.svg \ src/flag-icons/flags/1x1/tv.svg \ src/flag-icons/flags/1x1/tw.svg \ src/flag-icons/flags/1x1/tz.svg \ src/flag-icons/flags/1x1/ua.svg \ src/flag-icons/flags/1x1/ug.svg \ src/flag-icons/flags/1x1/um.svg \ src/flag-icons/flags/1x1/un.svg \ src/flag-icons/flags/1x1/us.svg \ src/flag-icons/flags/1x1/uy.svg \ src/flag-icons/flags/1x1/uz.svg \ src/flag-icons/flags/1x1/va.svg \ src/flag-icons/flags/1x1/vc.svg \ src/flag-icons/flags/1x1/ve.svg \ src/flag-icons/flags/1x1/vg.svg \ src/flag-icons/flags/1x1/vi.svg \ src/flag-icons/flags/1x1/vn.svg \ src/flag-icons/flags/1x1/vu.svg \ src/flag-icons/flags/1x1/wf.svg \ src/flag-icons/flags/1x1/ws.svg \ src/flag-icons/flags/1x1/xk.svg \ src/flag-icons/flags/1x1/ye.svg \ src/flag-icons/flags/1x1/yt.svg \ src/flag-icons/flags/1x1/za.svg \ src/flag-icons/flags/1x1/zm.svg \ src/flag-icons/flags/1x1/zw.svg static_flags_1x1dir = $(static_flagsdir)/1x1 static_flags_4x3_DATA = \ src/flag-icons/flags/4x3/ad.svg \ src/flag-icons/flags/4x3/ae.svg \ src/flag-icons/flags/4x3/af.svg \ src/flag-icons/flags/4x3/ag.svg \ src/flag-icons/flags/4x3/ai.svg \ src/flag-icons/flags/4x3/al.svg \ src/flag-icons/flags/4x3/am.svg \ src/flag-icons/flags/4x3/ao.svg \ src/flag-icons/flags/4x3/aq.svg \ src/flag-icons/flags/4x3/ar.svg \ src/flag-icons/flags/4x3/as.svg \ src/flag-icons/flags/4x3/at.svg \ src/flag-icons/flags/4x3/au.svg \ src/flag-icons/flags/4x3/aw.svg \ src/flag-icons/flags/4x3/ax.svg \ src/flag-icons/flags/4x3/az.svg \ src/flag-icons/flags/4x3/ba.svg \ src/flag-icons/flags/4x3/bb.svg \ src/flag-icons/flags/4x3/bd.svg \ src/flag-icons/flags/4x3/be.svg \ src/flag-icons/flags/4x3/bf.svg \ src/flag-icons/flags/4x3/bg.svg \ src/flag-icons/flags/4x3/bh.svg \ src/flag-icons/flags/4x3/bi.svg \ src/flag-icons/flags/4x3/bj.svg \ src/flag-icons/flags/4x3/bl.svg \ src/flag-icons/flags/4x3/bm.svg \ src/flag-icons/flags/4x3/bn.svg \ src/flag-icons/flags/4x3/bo.svg \ src/flag-icons/flags/4x3/bq.svg \ src/flag-icons/flags/4x3/br.svg \ src/flag-icons/flags/4x3/bs.svg \ src/flag-icons/flags/4x3/bt.svg \ src/flag-icons/flags/4x3/bv.svg \ src/flag-icons/flags/4x3/bw.svg \ src/flag-icons/flags/4x3/by.svg \ src/flag-icons/flags/4x3/bz.svg \ src/flag-icons/flags/4x3/ca.svg \ src/flag-icons/flags/4x3/cc.svg \ src/flag-icons/flags/4x3/cd.svg \ src/flag-icons/flags/4x3/cf.svg \ src/flag-icons/flags/4x3/cg.svg \ src/flag-icons/flags/4x3/ch.svg \ src/flag-icons/flags/4x3/ci.svg \ src/flag-icons/flags/4x3/ck.svg \ src/flag-icons/flags/4x3/cl.svg \ src/flag-icons/flags/4x3/cm.svg \ src/flag-icons/flags/4x3/cn.svg \ src/flag-icons/flags/4x3/co.svg \ src/flag-icons/flags/4x3/cr.svg \ src/flag-icons/flags/4x3/cu.svg \ src/flag-icons/flags/4x3/cv.svg \ src/flag-icons/flags/4x3/cw.svg \ src/flag-icons/flags/4x3/cx.svg \ src/flag-icons/flags/4x3/cy.svg \ src/flag-icons/flags/4x3/cz.svg \ src/flag-icons/flags/4x3/de.svg \ src/flag-icons/flags/4x3/dj.svg \ src/flag-icons/flags/4x3/dk.svg \ src/flag-icons/flags/4x3/dm.svg \ src/flag-icons/flags/4x3/do.svg \ src/flag-icons/flags/4x3/dz.svg \ src/flag-icons/flags/4x3/ec.svg \ src/flag-icons/flags/4x3/ee.svg \ src/flag-icons/flags/4x3/eg.svg \ src/flag-icons/flags/4x3/eh.svg \ src/flag-icons/flags/4x3/er.svg \ src/flag-icons/flags/4x3/es-ct.svg \ src/flag-icons/flags/4x3/es.svg \ src/flag-icons/flags/4x3/et.svg \ src/flag-icons/flags/4x3/eu.svg \ src/flag-icons/flags/4x3/fi.svg \ src/flag-icons/flags/4x3/fj.svg \ src/flag-icons/flags/4x3/fk.svg \ src/flag-icons/flags/4x3/fm.svg \ src/flag-icons/flags/4x3/fo.svg \ src/flag-icons/flags/4x3/fr.svg \ src/flag-icons/flags/4x3/ga.svg \ src/flag-icons/flags/4x3/gb-eng.svg \ src/flag-icons/flags/4x3/gb-nir.svg \ src/flag-icons/flags/4x3/gb-sct.svg \ src/flag-icons/flags/4x3/gb.svg \ src/flag-icons/flags/4x3/gb-wls.svg \ src/flag-icons/flags/4x3/gd.svg \ src/flag-icons/flags/4x3/ge.svg \ src/flag-icons/flags/4x3/gf.svg \ src/flag-icons/flags/4x3/gg.svg \ src/flag-icons/flags/4x3/gh.svg \ src/flag-icons/flags/4x3/gi.svg \ src/flag-icons/flags/4x3/gl.svg \ src/flag-icons/flags/4x3/gm.svg \ src/flag-icons/flags/4x3/gn.svg \ src/flag-icons/flags/4x3/gp.svg \ src/flag-icons/flags/4x3/gq.svg \ src/flag-icons/flags/4x3/gr.svg \ src/flag-icons/flags/4x3/gs.svg \ src/flag-icons/flags/4x3/gt.svg \ src/flag-icons/flags/4x3/gu.svg \ src/flag-icons/flags/4x3/gw.svg \ src/flag-icons/flags/4x3/gy.svg \ src/flag-icons/flags/4x3/hk.svg \ src/flag-icons/flags/4x3/hm.svg \ src/flag-icons/flags/4x3/hn.svg \ src/flag-icons/flags/4x3/hr.svg \ src/flag-icons/flags/4x3/ht.svg \ src/flag-icons/flags/4x3/hu.svg \ src/flag-icons/flags/4x3/id.svg \ src/flag-icons/flags/4x3/ie.svg \ src/flag-icons/flags/4x3/il.svg \ src/flag-icons/flags/4x3/im.svg \ src/flag-icons/flags/4x3/in.svg \ src/flag-icons/flags/4x3/io.svg \ src/flag-icons/flags/4x3/iq.svg \ src/flag-icons/flags/4x3/ir.svg \ src/flag-icons/flags/4x3/is.svg \ src/flag-icons/flags/4x3/it.svg \ src/flag-icons/flags/4x3/je.svg \ src/flag-icons/flags/4x3/jm.svg \ src/flag-icons/flags/4x3/jo.svg \ src/flag-icons/flags/4x3/jp.svg \ src/flag-icons/flags/4x3/ke.svg \ src/flag-icons/flags/4x3/kg.svg \ src/flag-icons/flags/4x3/kh.svg \ src/flag-icons/flags/4x3/ki.svg \ src/flag-icons/flags/4x3/km.svg \ src/flag-icons/flags/4x3/kn.svg \ src/flag-icons/flags/4x3/kp.svg \ src/flag-icons/flags/4x3/kr.svg \ src/flag-icons/flags/4x3/kw.svg \ src/flag-icons/flags/4x3/ky.svg \ src/flag-icons/flags/4x3/kz.svg \ src/flag-icons/flags/4x3/la.svg \ src/flag-icons/flags/4x3/lb.svg \ src/flag-icons/flags/4x3/lc.svg \ src/flag-icons/flags/4x3/li.svg \ src/flag-icons/flags/4x3/lk.svg \ src/flag-icons/flags/4x3/lr.svg \ src/flag-icons/flags/4x3/ls.svg \ src/flag-icons/flags/4x3/lt.svg \ src/flag-icons/flags/4x3/lu.svg \ src/flag-icons/flags/4x3/lv.svg \ src/flag-icons/flags/4x3/ly.svg \ src/flag-icons/flags/4x3/ma.svg \ src/flag-icons/flags/4x3/mc.svg \ src/flag-icons/flags/4x3/md.svg \ src/flag-icons/flags/4x3/me.svg \ src/flag-icons/flags/4x3/mf.svg \ src/flag-icons/flags/4x3/mg.svg \ src/flag-icons/flags/4x3/mh.svg \ src/flag-icons/flags/4x3/mk.svg \ src/flag-icons/flags/4x3/ml.svg \ src/flag-icons/flags/4x3/mm.svg \ src/flag-icons/flags/4x3/mn.svg \ src/flag-icons/flags/4x3/mo.svg \ src/flag-icons/flags/4x3/mp.svg \ src/flag-icons/flags/4x3/mq.svg \ src/flag-icons/flags/4x3/mr.svg \ src/flag-icons/flags/4x3/ms.svg \ src/flag-icons/flags/4x3/mt.svg \ src/flag-icons/flags/4x3/mu.svg \ src/flag-icons/flags/4x3/mv.svg \ src/flag-icons/flags/4x3/mw.svg \ src/flag-icons/flags/4x3/mx.svg \ src/flag-icons/flags/4x3/my.svg \ src/flag-icons/flags/4x3/mz.svg \ src/flag-icons/flags/4x3/na.svg \ src/flag-icons/flags/4x3/nc.svg \ src/flag-icons/flags/4x3/ne.svg \ src/flag-icons/flags/4x3/nf.svg \ src/flag-icons/flags/4x3/ng.svg \ src/flag-icons/flags/4x3/ni.svg \ src/flag-icons/flags/4x3/nl.svg \ src/flag-icons/flags/4x3/no.svg \ src/flag-icons/flags/4x3/np.svg \ src/flag-icons/flags/4x3/nr.svg \ src/flag-icons/flags/4x3/nu.svg \ src/flag-icons/flags/4x3/nz.svg \ src/flag-icons/flags/4x3/om.svg \ src/flag-icons/flags/4x3/pa.svg \ src/flag-icons/flags/4x3/pe.svg \ src/flag-icons/flags/4x3/pf.svg \ src/flag-icons/flags/4x3/pg.svg \ src/flag-icons/flags/4x3/ph.svg \ src/flag-icons/flags/4x3/pk.svg \ src/flag-icons/flags/4x3/pl.svg \ src/flag-icons/flags/4x3/pm.svg \ src/flag-icons/flags/4x3/pn.svg \ src/flag-icons/flags/4x3/pr.svg \ src/flag-icons/flags/4x3/ps.svg \ src/flag-icons/flags/4x3/pt.svg \ src/flag-icons/flags/4x3/pw.svg \ src/flag-icons/flags/4x3/py.svg \ src/flag-icons/flags/4x3/qa.svg \ src/flag-icons/flags/4x3/re.svg \ src/flag-icons/flags/4x3/ro.svg \ src/flag-icons/flags/4x3/rs.svg \ src/flag-icons/flags/4x3/ru.svg \ src/flag-icons/flags/4x3/rw.svg \ src/flag-icons/flags/4x3/sa.svg \ src/flag-icons/flags/4x3/sb.svg \ src/flag-icons/flags/4x3/sc.svg \ src/flag-icons/flags/4x3/sd.svg \ src/flag-icons/flags/4x3/se.svg \ src/flag-icons/flags/4x3/sg.svg \ src/flag-icons/flags/4x3/sh.svg \ src/flag-icons/flags/4x3/si.svg \ src/flag-icons/flags/4x3/sj.svg \ src/flag-icons/flags/4x3/sk.svg \ src/flag-icons/flags/4x3/sl.svg \ src/flag-icons/flags/4x3/sm.svg \ src/flag-icons/flags/4x3/sn.svg \ src/flag-icons/flags/4x3/so.svg \ src/flag-icons/flags/4x3/sr.svg \ src/flag-icons/flags/4x3/ss.svg \ src/flag-icons/flags/4x3/st.svg \ src/flag-icons/flags/4x3/sv.svg \ src/flag-icons/flags/4x3/sx.svg \ src/flag-icons/flags/4x3/sy.svg \ src/flag-icons/flags/4x3/sz.svg \ src/flag-icons/flags/4x3/tc.svg \ src/flag-icons/flags/4x3/td.svg \ src/flag-icons/flags/4x3/tf.svg \ src/flag-icons/flags/4x3/tg.svg \ src/flag-icons/flags/4x3/th.svg \ src/flag-icons/flags/4x3/tj.svg \ src/flag-icons/flags/4x3/tk.svg \ src/flag-icons/flags/4x3/tl.svg \ src/flag-icons/flags/4x3/tm.svg \ src/flag-icons/flags/4x3/tn.svg \ src/flag-icons/flags/4x3/to.svg \ src/flag-icons/flags/4x3/tr.svg \ src/flag-icons/flags/4x3/tt.svg \ src/flag-icons/flags/4x3/tv.svg \ src/flag-icons/flags/4x3/tw.svg \ src/flag-icons/flags/4x3/tz.svg \ src/flag-icons/flags/4x3/ua.svg \ src/flag-icons/flags/4x3/ug.svg \ src/flag-icons/flags/4x3/um.svg \ src/flag-icons/flags/4x3/un.svg \ src/flag-icons/flags/4x3/us.svg \ src/flag-icons/flags/4x3/uy.svg \ src/flag-icons/flags/4x3/uz.svg \ src/flag-icons/flags/4x3/va.svg \ src/flag-icons/flags/4x3/vc.svg \ src/flag-icons/flags/4x3/ve.svg \ src/flag-icons/flags/4x3/vg.svg \ src/flag-icons/flags/4x3/vi.svg \ src/flag-icons/flags/4x3/vn.svg \ src/flag-icons/flags/4x3/vu.svg \ src/flag-icons/flags/4x3/wf.svg \ src/flag-icons/flags/4x3/ws.svg \ src/flag-icons/flags/4x3/xk.svg \ src/flag-icons/flags/4x3/ye.svg \ src/flag-icons/flags/4x3/yt.svg \ src/flag-icons/flags/4x3/za.svg \ src/flag-icons/flags/4x3/zm.svg \ src/flag-icons/flags/4x3/zw.svg static_flags_4x3dir = $(static_flagsdir)/4x3 dist_static_fonts_DATA = \ src/static/fonts/prompt/Prompt-Black.ttf \ src/static/fonts/prompt/Prompt-BlackItalic.ttf \ src/static/fonts/prompt/Prompt-Bold.ttf \ src/static/fonts/prompt/Prompt-BoldItalic.ttf \ src/static/fonts/prompt/Prompt-ExtraBold.ttf \ src/static/fonts/prompt/Prompt-ExtraBoldItalic.ttf \ src/static/fonts/prompt/Prompt-ExtraLight.ttf \ src/static/fonts/prompt/Prompt-ExtraLightItalic.ttf \ src/static/fonts/prompt/Prompt-Italic.ttf \ src/static/fonts/prompt/Prompt-Light.ttf \ src/static/fonts/prompt/Prompt-LightItalic.ttf \ src/static/fonts/prompt/Prompt-Medium.ttf \ src/static/fonts/prompt/Prompt-MediumItalic.ttf \ src/static/fonts/prompt/Prompt-Regular.ttf \ src/static/fonts/prompt/Prompt-SemiBold.ttf \ src/static/fonts/prompt/Prompt-SemiBoldItalic.ttf \ src/static/fonts/prompt/Prompt-Thin.ttf \ src/static/fonts/prompt/Prompt-ThinItalic.ttf \ \ src/font-awesome/webfonts/fa-brands-400.ttf \ src/font-awesome/webfonts/fa-brands-400.woff2 \ src/font-awesome/webfonts/fa-regular-400.ttf \ src/font-awesome/webfonts/fa-regular-400.woff2 \ src/font-awesome/webfonts/fa-solid-900.ttf \ src/font-awesome/webfonts/fa-solid-900.woff2 \ \ src/payment-font/fonts/paymentfont-webfont.eot \ src/payment-font/fonts/paymentfont-webfont.svg \ src/payment-font/fonts/paymentfont-webfont.ttf \ src/payment-font/fonts/paymentfont-webfont.woff static_fonts_DATA = \ src/static/fonts/prompt/Prompt-Black.woff2 \ src/static/fonts/prompt/Prompt-BlackItalic.woff2 \ src/static/fonts/prompt/Prompt-Bold.woff2 \ src/static/fonts/prompt/Prompt-BoldItalic.woff2 \ src/static/fonts/prompt/Prompt-ExtraBold.woff2 \ src/static/fonts/prompt/Prompt-ExtraBoldItalic.woff2 \ src/static/fonts/prompt/Prompt-ExtraLight.woff2 \ src/static/fonts/prompt/Prompt-ExtraLightItalic.woff2 \ src/static/fonts/prompt/Prompt-Italic.woff2 \ src/static/fonts/prompt/Prompt-Light.woff2 \ src/static/fonts/prompt/Prompt-LightItalic.woff2 \ src/static/fonts/prompt/Prompt-Medium.woff2 \ src/static/fonts/prompt/Prompt-MediumItalic.woff2 \ src/static/fonts/prompt/Prompt-Regular.woff2 \ src/static/fonts/prompt/Prompt-SemiBold.woff2 \ src/static/fonts/prompt/Prompt-SemiBoldItalic.woff2 \ src/static/fonts/prompt/Prompt-Thin.woff2 \ src/static/fonts/prompt/Prompt-ThinItalic.woff2 static_fontsdir = $(staticdir)/fonts EXTRA_DIST += \ src/static/fonts/prompt/DESCRIPTION.en_us.html \ src/static/fonts/prompt/METADATA.pb \ src/static/fonts/prompt/OFL.txt CLEANFILES += \ $(static_fonts_DATA) static_img_DATA = \ src/static/img/apple-touch-icon-192x192-precomposed.png \ src/static/img/apple-touch-icon-180x180-precomposed.png \ src/static/img/apple-touch-icon-152x152-precomposed.png \ src/static/img/apple-touch-icon-144x144-precomposed.png \ src/static/img/apple-touch-icon-120x120-precomposed.png \ src/static/img/apple-touch-icon-76x76-precomposed.png \ src/static/img/apple-touch-icon-72x72-precomposed.png \ src/static/img/apple-touch-icon-60x60-precomposed.png \ src/static/img/bash-logo.svg \ src/static/img/debian-logo.svg \ src/static/img/default-avatar.jpg \ src/static/img/ipfire-tux.png \ src/static/img/iuse-not-found.png \ src/static/img/kyberio-logo.svg \ src/static/img/lightningwirelabs-logo.svg \ src/static/img/python-logo.svg \ src/static/img/tor.svg static_imgdir = $(staticdir)/img # From https://www.pexels.com/photo/123-let-s-go-imaginary-text-704767/ dist_static_img_auth_DATA = \ src/static/img/auth/join.jpg static_img_auth_DATA = \ src/static/img/auth/join@600.jpg CLEANFILES += \ src/static/img/auth/join@600.jpg static_img_authdir = $(static_imgdir)/auth static_img_downloadsdir = $(static_imgdir)/downloads dist_static_img_downloads_cloud_DATA = \ src/static/img/downloads/cloud/aws.svg \ src/static/img/downloads/cloud/exoscale.svg \ src/static/img/downloads/cloud/hetzner.svg static_img_downloads_clouddir = $(static_img_downloadsdir)/cloud static_images_tux_DATA = \ src/static/img/tux/ipfire_tux_16x16.png \ src/static/img/tux/ipfire_tux_20x20.png \ src/static/img/tux/ipfire_tux_32x32.png \ src/static/img/tux/ipfire_tux_48x48.png \ src/static/img/tux/ipfire_tux_64x64.png \ src/static/img/tux/ipfire_tux_128x128.png \ src/static/img/tux/ipfire_tux_256x256.png \ src/static/img/tux/ipfire_tux_420x420.png \ src/static/img/tux/ipfire_tux_512x512.png static_images_tuxdir = $(static_imgdir)/tux static_images_DATA = \ src/static/images/marker-icon.png \ src/static/images/marker-icon-2x.png \ src/static/images/marker-shadow.png static_imagesdir = $(staticdir)/images EXTRA_DIST += \ src/static/videos/firewall.mp4 CLEANFILES += \ $(static_videos_DATA) static_videos_DATA = \ src/static/videos/firewall.jpg \ src/static/videos/firewall@1920.av1.mp4 \ src/static/videos/firewall@1920.h265.mp4 \ src/static/videos/firewall@1920.h264.mp4 \ src/static/videos/firewall@1920.vp9.mp4 static_videosdir = $(staticdir)/videos static_js_DATA = \ src/static/js/Control.Geocoder.min.js \ src/static/js/editor.js \ src/static/js/jquery-3.6.0.min.js \ src/static/js/leaflet.min.js \ src/static/js/maps.js \ src/static/js/prettify.js \ src/static/js/site.js \ \ src/static/js/zxcvbn/dist/zxcvbn.js \ src/static/js/zxcvbn/dist/zxcvbn.js.map static_jsdir = $(staticdir)/js static_netboot_DATA = \ src/static/netboot/boot.png \ src/static/netboot/boot.svg \ src/static/netboot/ipxe.kpxe \ src/static/netboot/menu.c32 \ src/static/netboot/pxelinux.0 \ src/static/netboot/vesamenu.c32 static_netbootdir = $(staticdir)/netboot # ------------------------------------------------------------------------------ EXTRA_DIST += \ src/error-pages/Gemfile \ src/error-pages/Gemfile.lock \ src/error-pages/_config.yml \ src/error-pages/_layouts/error.html \ src/error-pages/assets/main.sass \ src/error-pages/500.markdown \ src/error-pages/502.markdown \ src/error-pages/503.markdown \ src/error-pages/504.markdown .PHONY: error-pages error-pages: $(AM_V_GEN)cd src/error-pages && JEKYLL_ENV=production \ $(JEKYLL) build --quiet --incremental .PHONY: upload-error-pages upload-error-pages: error-pages rsync --verbose --progress --recursive --delete -e "ssh -p 222" --exclude="feed.xml" \ src/error-pages/_site/ root@fw01.haj.ipfire.org:/etc/haproxy/errors/ # ------------------------------------------------------------------------------ dist_cron_DATA = \ src/crontab/ipfire # ------------------------------------------------------------------------------ if HAVE_SYSTEMD systemdsystemunit_DATA = \ src/systemd/ipfire.org-webapp-1.service \ src/systemd/ipfire.org-webapp-2.service \ src/systemd/ipfire.org-webapp-3.service \ src/systemd/ipfire.org-webapp-4.service CLEANFILES += \ $(systemdsystemunit_DATA) INSTALL_DIRS += \ $(systemdsystemunitdir) endif EXTRA_DIST += \ src/systemd/ipfire.org-webapp-1.service.in \ src/systemd/ipfire.org-webapp-3.service.in \ src/systemd/ipfire.org-webapp-3.service.in \ src/systemd/ipfire.org-webapp-4.service.in # ------------------------------------------------------------------------------ substitutions = \ '|PACKAGE_NAME=$(PACKAGE_NAME)|' \ '|PACKAGE_VERSION=$(PACKAGE_VERSION)|' \ '|PYTHON=$(PYTHON)|' \ '|configsdir=$(configsdir)|' \ '|bindir=$(bindir)|' \ '|datadir=$(datadir)|' SED_PROCESS = \ $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ $(SED) $(subst '|,-e 's|@,$(subst =,\@|,$(subst |',|g',$(substitutions)))) \ < $< > $@ %: %.in Makefile $(SED_PROCESS) %.css: %.sass Makefile $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ $(SASSC) --style compressed $< > $@ src/sass/main.css: $(SASS_FILES) Makefile $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ $(SASSC) --style compressed $< > $@ src/static/favicon.ico: src/static/img/ipfire-tux.png Makefile $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ $(CONVERT) $< -background none -flatten -density 1200 \ -resize 50% -define icon:auto-resize=64,48,32,16 $@ src/static/img/apple-touch-icon-%-precomposed.png: src/static/img/ipfire-tux.png Makefile $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ $(CONVERT) -background none -flatten -density 1200 -bordercolor none -border 5%x5% \ -resize $(patsubst src/static/img/apple-touch-icon-%-precomposed.png,%,$@) -gravity center \ -extent $(patsubst src/static/img/apple-touch-icon-%-precomposed.png,%,$@)x$(patsubst src/static/img/apple-touch-icon-%-precomposed.png,%,$@) \ $< $@ # Resizes images for being used in messages which are 600px wide %@600.jpg: %.jpg $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ $(CONVERT) -units PixelsPerInch $< -resize 600x -strip -quality 85 $@ # Fonts %.woff2: %.ttf $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ $(WOFF2_COMPRESS) $^ >/dev/null # Video Stuff # Multi-threading options for faster encoding FFMPEG_MT = \ -row-mt 1 \ -threads $(shell getconf _NPROCESSORS_ONLN) \ -tile-columns 2 # Enable to log less #FFMPEG += \ # -loglevel quiet # AV1 src/static/videos/firewall@%.av1.mp4: src/static/videos/firewall.mp4 $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ $(FFMPEG) -y \ -i $^ \ -map_metadata -1 \ -an \ -c:v libsvtav1 \ -b:v 0 \ -crf 31 \ -strict experimental \ -preset 3 \ -pix_fmt yuv420p \ -movflags +faststart \ -vf scale=$(patsubst src/static/videos/firewall@%.av1.mp4,%,$@):-2:flags=lanczos,fps=25 \ $(FFMPEG_MT) \ $@ # H.256 src/static/videos/firewall@%.h265.mp4: src/static/videos/firewall.mp4 $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ $(FFMPEG) -y \ -i $^ \ -map_metadata -1 \ -an \ -c:v libx265 \ -b:v 0 \ -crf 27 \ -preset veryslow \ -pix_fmt yuv420p \ -movflags +faststart \ -tag:v hvc1 \ -vf scale=$(patsubst src/static/videos/firewall@%.h265.mp4,%,$@):-2:flags=lanczos,fps=25 \ $(FFMPEG_MT) \ $@ # H.264 src/static/videos/firewall@%.h264.mp4: src/static/videos/firewall.mp4 $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ $(FFMPEG) -y \ -i $^ \ -map_metadata -1 \ -an \ -c:v libx264 \ -b:v 0 \ -crf 27 \ -preset veryslow \ -profile:v main \ -pix_fmt yuv420p \ -movflags +faststart \ -vf scale=$(patsubst src/static/videos/firewall@%.h264.mp4,%,$@):-2:flags=lanczos,fps=25 \ $(FFMPEG_MT) \ $@ # VP9 src/static/videos/firewall@%.vp9.mp4: src/static/videos/firewall.mp4 $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ $(FFMPEG) -y \ -i $^ \ -map_metadata -1 \ -an \ -c:v libvpx-vp9 \ -b:v 0 \ -crf 31 \ -deadline best \ -preset veryslow \ -pix_fmt yuv420p \ -movflags +faststart \ -vf scale=$(patsubst src/static/videos/firewall@%.vp9.mp4,%,$@):-2:flags=lanczos,fps=25 \ $(FFMPEG_MT) \ $@ # Cover image src/static/videos/firewall.jpg: src/static/videos/firewall.mp4 $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ $(FFMPEG) -y \ -i $^ \ -map_metadata -1 \ -qscale:v 1 \ -frames:v 1 \ -vf scale=1920:-2 \ $@ .PHONY: update update: for i in src/systemd/ipfire.org-webapp-*.service; do systemctl restart $$(basename $${i}) && sleep 5; done