# Process this file with automake to produce an input makefile. # # Copyright (C) 2013-2017, 2019 Patrick McDermott # # This file is part of the ProteanOS Development Kit. # # The ProteanOS Development Kit is free software: you can redistribute # it and/or modify it under the terms of the GNU General Public License # as published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # The ProteanOS Development Kit 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 GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with the ProteanOS Development Kit. If not, see # . KEY = '2250 31F0 47FF E516 63ED 516F 1A45 9ECD E4D6 04BE' if IN_GIT PACKAGE_VERSION_GIT = $$(git describe --tags --dirty | sed 's|^.*/||') else PACKAGE_VERSION_GIT = $(PACKAGE_VERSION) endif # PACKAGE_STRING is used in the test suite output and log. # PACKAGE_VERSION can't be overridden. Automake ignores it in the IN_GIT # conditional (and throws a warning), and setting it to $(PACKAGE_VERSION_GIT) # outside the conditional causes PACKAGE_VERSION_GIT to reference itself. # VERSION is not set here because it is used by: # * Automake's distdir macro # * Automake's distdir target (which checks for $(VERSION) in NEWS) # * Our release target PACKAGE_STRING = $(PACKAGE_NAME) $(PACKAGE_VERSION_GIT) MANUAL = ProteanOS Development Kit Manual TEXTDOMAIN = $$(printf '%s\n' '$(PACKAGE)' | sed -e 's|-|_|g') SUFFIXES = .sh .sho .ms .1in .1 .8in .8 # This PACKAGE_VERSION stuff is a rather gross hack, but it's the only reliable # way to put Git commit information in the prokit executable. Setting # PACKAGE_VERSION in configure causes it to become outdated until the next # configure run. Adding it to the preprocessor command line can cause multiple # values of it to exist in the linked executable. LINK = printf "PACKAGE_VERSION='%s'\n" "$(PACKAGE_VERSION_GIT)" | \ '$(srcdir)/tools/shld.sh' -I '$(SH)' -o $@ config.sh - bin_PROGRAMS = prokit prokit_SOURCES = prokit_SHPPFLAGS = \ -DPKGDATADIR="$(pkgdatadir)" \ -DLOCALEDIR="$(localedir)" \ -DTEXTDOMAIN="$(TEXTDOMAIN)" \ -DOPKG_CERT="$(pkglibexecdir)/opkg-cert" if EMBEDDED_USIGN prokit_SHPPFLAGS += \ -DUSIGN_EMBEDDED=true \ -DUSIGN="$(pkglibexecdir)/usign$(EXEEXT)" else prokit_SHPPFLAGS += \ -DUSIGN_EMBEDDED=false \ -DUSIGN="$(USIGN)" endif prokit_LDADD = $(prokit_SOURCES:.sh=.sho) EXTRA_prokit_DEPENDENCIES = config.sh locale_MESSAGES = $(locale_sources:.sh=.ms) man1_MANS = $(man1_sources:.1in=.1) man8_MANS = $(man8_sources:.8in=.8) do_subst = sed \ -e 's|[@]PACKAGE_NAME[@]|$(PACKAGE_NAME)|g' \ -e "s|[@]PACKAGE_VERSION[@]|$(PACKAGE_VERSION_GIT)|g" \ -e 's|[@]MANUAL[@]|$(MANUAL)|g' dist_pkglibexec_SCRIPTS = opkg-cert noinst_DATA = $(locale_MESSAGES) .builddirstamp CLEANFILES = \ $(prokit_LDADD) \ $(locale_MESSAGES) \ $(man1_MANS) \ $(man8_MANS) \ man/*.*.mdwn \ .builddirstamp EXTRA_DIST = \ autogen.sh \ $(locale_sources) \ $(man1_sources) \ $(man8_sources) \ scripts/announce-release.sh \ tools/shpp.sh \ tools/shld.sh \ build-aux/tap-driver.sh \ tests/aux/tap-functions.sh AM_TESTS_ENVIRONMENT = srcdir=$(top_srcdir) COLOR_TEST_LOGS=$(COLOR_TEST_LOGS) LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/tap-driver.sh .builddirstamp: $(AM_V_GEN)touch .builddirstamp todo_script = \ /^[0-9]* .[ \t]*\#[ \t]*TODO/,/^[0-9]* \.[ \t]*[^ \t\#]/{ \ /^[0-9]* \.[ \t]*\#/p; \ }; \ /^[0-9]* .[ \t]*\#[ \t]*FIXME/,/^[0-9]* \.[ \t]*[^ \t\#]/{ \ /^[0-9]* \.[ \t]*\#/p; \ }; \ /^[0-9]* .[ \t]*\#[ \t]*XXX/,/^[0-9]* \.[ \t]*[^ \t\#]/{ \ /^[0-9]* \.[ \t]*\#/p; \ }; todo: @set -e; \ printf '\n'; \ printf 'Code comments:\n'; \ printf '==============\n\n'; \ for f in $$(printf '%s\n' $(SOURCES) | sort -u); do \ printed=false; \ sed '=' "$(top_srcdir)/$${f}" | sed 'N; s/\n/ ./' | sed -n \ '$(todo_script)' | while read -r lineno line; do \ if ! $${printed}; then \ printf '%s:\n' "$${f}"; \ printed=true; \ fi; \ printf ' %6d %s\n' $${lineno} "$${line#.}"; \ done; \ done; \ printf '\n'; \ if [ -f '$(top_srcdir)/TODO' ]; then \ printf 'TODO file:\n'; \ printf '==========\n\n'; \ cat '$(top_srcdir)/TODO'; \ printf '\n'; \ fi wikiman_script = \ H; \ $${ \ g; \ s|^.*]*>\([^<]*\)|[[!meta title="\1"]]|; \ s|
\n*.*$$||; \ p; \ }; wikiman: $(man1_MANS) $(man8_MANS) set -e; \ for f in $(man1_MANS) $(man8_MANS); do \ groff -m man -T html "$${f}" | sed -n '$(wikiman_script)' \ >"$${f}.mdwn"; \ done install-data-local: $(locale_MESSAGES) @$(NORMAL_INSTALL) for f in $(locale_MESSAGES); do \ ff="$${f#*/}"; \ dir="$(DESTDIR)$(localedir)/$${ff%.ms}/LC_MESSAGES"; \ $(MKDIR_P) "$${dir}" || exit 1; \ $(INSTALL_DATA) "$${f}" "$${dir}/$(TEXTDOMAIN).ms" || \ exit $$?; \ done uninstall-local: @$(NORMAL_UNINSTALL) for f in $(locale_MESSAGES); do \ ff="$${f#*/}"; \ dir="$(DESTDIR)$(localedir)/$${ff%.ms}/LC_MESSAGES"; \ rm -f "$${dir}/$(TEXTDOMAIN).ms"; \ done really-clean: distclean rm -Rf $(srcdir)/aclocal.m4 $(srcdir)/autom4te.cache/ \ $(srcdir)/configure \ $(srcdir)/build-aux/ $(srcdir)/INSTALL $(srcdir)/Makefile.in \ $(srcdir)/ChangeLog dist-hook: set -e; \ if [ -d '$(srcdir)/.git' ]; then \ printf 'Generated file. Do not edit.\n\n' \ >'$(distdir)/ChangeLog~'; \ GIT_DIR='$(srcdir)/.git' git log --stat --color=never \ >>'$(distdir)/ChangeLog~'; \ mv '$(distdir)/ChangeLog~' '$(distdir)/ChangeLog'; \ $(MKDIR_P) '$(distdir)/3rdparty/'; \ >'$(distdir)/3rdparty/Manifest'; \ for d in $(3rdparty_dirs); do \ for f in $$(GIT_DIR="$(srcdir)/3rdparty/$${d}/.git" \ git ls-files); do \ printf '3rdparty/%s/%s\n' "$${d}" "$${f}" \ >>'$(distdir)/3rdparty/Manifest'; \ done; \ done; \ fi set -e; \ for f in $$(cat '$(distdir)/3rdparty/Manifest'); do \ $(MKDIR_P) "$(distdir)/$$(dirname "$${f}")"; \ cp -p "$${f}" "$(distdir)/$${f}"; \ done release: sed "s/^Released: ????-??-??\$$/Released: $$(date '+%Y-%m-%d')/" \ '$(srcdir)/NEWS' >'$(srcdir)/NEWS~' mv '$(srcdir)/NEWS~' '$(srcdir)/NEWS' $(MAKE) distcheck set -e; \ export GIT_DIR='$(srcdir)/.git'; \ export GIT_WORK_TREE='$(srcdir)'; \ git commit -m 'NEWS: Release $(PACKAGE) $(VERSION)' -- NEWS; \ git tag '$(PACKAGE)/$(VERSION)' HEAD; \ git push --tags origin master:master md5sum $(DIST_ARCHIVES) >MD5SUMS sha256sum $(DIST_ARCHIVES) >SHA256SUMS set -e; \ sigs=''; \ for f in $(DIST_ARCHIVES); do \ gpg --local-user $(KEY) --armor --detach-sign $${f}; \ sigs="$${sigs} $${f}.asc"; \ done; \ ssh files@files.proteanos.com mkdir -p files/pub/$(PACKAGE); \ rsync -az --progress --stats $(DIST_ARCHIVES) $${sigs} \ MD5SUMS SHA256SUMS \ files@files.proteanos.com:files/pub/$(PACKAGE)/$(VERSION)/ '$(srcdir)/scripts/announce-release.sh' \ $(PACKAGE) $(VERSION) '$(PACKAGE_NAME)' .sh.sho: $(AM_V_GEN)$(MKDIR_P) "$$(dirname $@)" $(AM_V_at)$(SH) -n $< $(AM_V_at)'$(srcdir)/tools/shpp.sh' $(prokit_SHPPFLAGS) $< $@ .sh.ms: $(AM_V_GEN)$(MKDIR_P) "$$(dirname $@)" $(AM_V_at)cp $< $@ .1in.1: $(AM_V_GEN)$(MKDIR_P) "$$(dirname $@)" $(AM_V_at)$(do_subst) $< >$@ .8in.8: $(AM_V_GEN)$(MKDIR_P) "$$(dirname $@)" $(AM_V_at)$(do_subst) $< >$@ include $(top_srcdir)/src/local.mk include $(top_srcdir)/locale/local.mk include $(top_srcdir)/man/local.mk include $(top_srcdir)/tests/local.mk include $(top_srcdir)/3rdparty/local.mk