From 6d76e26d1a877d418db42c460e741933d15c05e1 Mon Sep 17 00:00:00 2001 From: Patrick McDermott Date: Thu, 20 Dec 2018 23:05:26 -0500 Subject: Switch to using GNU Automake --- diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..95b566f --- /dev/null +++ b/AUTHORS @@ -0,0 +1 @@ +Patrick McDermott diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..0e25202 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,178 @@ +# Process this file with automake to produce an input makefile. +# +# Copyright (C) 2013, 2014 Patrick McDermott +# +# This file is part of opkbuild. +# +# opkbuild 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. +# +# opkbuild 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 opkbuild. If not, see . + +include $(top_srcdir)/src/local.mk +include $(top_srcdir)/lib/local.mk +include $(top_srcdir)/lib/package/local.mk +include $(top_srcdir)/lib/metadata/local.mk +include $(top_srcdir)/man/local.mk +include $(top_srcdir)/locale/local.mk +include $(top_srcdir)/tests/local.mk + +MANUAL = Distribution Build System + +bin_SCRIPTS = $(bin_sources:.sh=) +pkgdata_SCRIPTS = $(pkgdata_sources:.sh=.sm) +pkgdatapackage_SCRIPTS = $(pkgdatapackage_sources:.sh=.sm) +pkgdatametadata_SCRIPTS = $(pkgdatametadata_sources:.sh=.sm) +man1_MANS = $(man1_sources:.1in=.1) +man3_MANS = $(man3_sources:.3in=.3) +locale_MESSAGES = $(locale_sources:.sh=.ms) +dist_pkgdata_DATA = optstring +CLEANFILES = \ + $(bin_SCRIPTS) \ + $(pkgdata_SCRIPTS) \ + $(pkgdatapackage_SCRIPTS) \ + $(pkgdatametadata_SCRIPTS) \ + $(man1_MANS) \ + $(man3_MANS) \ + $(locale_MESSAGES) +pkgdatapackagedir = $(pkgdatadir)/package +pkgdatametadatadir = $(pkgdatadir)/metadata +helperdir = $(pkgdatadir)/helpers +EXTRA_DIST = \ + COPYING \ + COPYING.2 \ + COPYING.3 \ + NEWS.opkhelper \ + TODO \ + autogen.sh \ + mksysconf.in \ + $(bin_sources) \ + $(pkgdata_sources) \ + $(pkgdatapackage_sources) \ + $(pkgdatametadata_sources) \ + $(man1_sources) \ + $(man3_sources) \ + $(locale_sources) \ + $(tests) \ + $(tests_data) \ + tests/common.sh \ + scripts/changelog2news.sh + +SUFFIXES = .sh .sm .1in .1 .3in .3 .ms + +do_subst = sed \ + -e 's|@[@]PACKAGE_NAME[@]@|$(PACKAGE_NAME)|g' \ + -e 's|@[@]PACKAGE_VERSION[@]@|$(PACKAGE_VERSION)|g' \ + -e 's|@[@]PACKAGE_DESCRIPTION[@]@|$(MANUAL)|g' \ + -e 's|@[@]BINDIR[@]@|$(bindir)|g' \ + -e 's|@[@]PKGLIBDIR[@]@|$(pkgdatadir)|g' \ + -e 's|@[@]DATADIR[@]@|$(datadir)|g' \ + -e 's|@[@]LOCALEDIR[@]@|$(localedir)|g' \ + -e 's|@[@]SYSCONFDIR[@]@|$(sysconfdir)|g' \ + -e 's|@[@]HELPERDIR[@]@|$(helperdir)|g' \ + -e 's|@[@]SH[@]@|$(SH)|g' \ + -e 's|@[@]OPKG[@]@|$(OPKG)|g' \ + -e 's|@[@]METADATA[@]@|$(METADATA)|g' + +all-local: $(locale_MESSAGES) + +install-data-local: $(locale_MESSAGES) + @$(NORMAL_INSTALL) + set -e; for f in $(locale_MESSAGES); do \ + ff="$${f#*/}"; \ + dd="$(DESTDIR)/$(localedir)/$${ff%/?*}/LC_MESSAGES"; \ + $(MKDIR_P) "$${dd}"; \ + df="$${dd}/$${ff##*/}"; \ + cp "$${f}" "$${df}"; \ + chmod 644 "$${df}"; \ + done + +uninstall-local: + @$(NORMAL_UNINSTALL) + set -e; for f in $(locale_MESSAGES); do \ + ff="$${f#*/}"; \ + dd="$(DESTDIR)/$(localedir)/$${ff%/?*}/LC_MESSAGES"; \ + df="$${dd}/$${ff##*/}"; \ + rm -f "$${df}"; \ + done + +uninstall-hook: + for dir in \ + '$(DESTDIR)$(pkgdatametadatadir)' \ + '$(DESTDIR)$(pkgdatapackagedir)' \ + '$(DESTDIR)$(pkgdatadir)'; do \ + if [ -d "$${dir}" ]; then \ + rmdir "$${dir}"; \ + fi; \ + 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: + if [ -d '$(srcdir)/.git' ]; then \ + printf 'Generated file. Do not edit.\n\n' \ + >'$(distdir)/ChangeLog~'; \ + git log --stat --color=never >>'$(distdir)/ChangeLog~'; \ + mv '$(distdir)/ChangeLog~' '$(distdir)/ChangeLog'; \ + fi + +test: + @cd '$(srcdir)/tests'; \ + all=0; failed=0; \ + for test in $(tests); do \ + out="$$($(sh) "$(srcdir)/$${test}" 2>&1)"; \ + if [ $${?} -eq 0 ]; then \ + printf 'PASS: %s\n' "$${test}"; \ + else \ + printf 'FAIL: %s\n' "$${test}"; \ + echo "$${out}" | sed 's/^/ /'; \ + failed=$$(($$failed + 1)); \ + fi; \ + all=$$(($$all + 1)); \ + done; \ + banner="$$(printf '%d out of %d tests failed' $${failed} $${all})"; \ + l=$$(echo "$${banner}" | wc -c); \ + i=1; while [ "$${i}" -lt "$${l}" ]; do \ + printf '='; \ + i=$$(($$i + 1)); \ + done; \ + printf '\n%s\n' "$${banner}"; \ + i=1; while [ $${i} -lt $${l} ]; do \ + printf '='; \ + i=$$(($$i + 1)); \ + done; \ + printf '\n'; \ + exit $${failed} + +.sh: + $(AM_V_GEN)$(MKDIR_P) "$$(dirname $@)" + $(AM_V_at)$(do_subst) $< >$@ + $(AM_V_at)chmod a+x $@ + +.sh.sm: + $(AM_V_GEN)$(MKDIR_P) "$$(dirname $@)" + $(AM_V_at)$(do_subst) $< >$@ + +.1in.1: + $(AM_V_GEN)$(MKDIR_P) "$$(dirname $@)" + $(AM_V_at)$(do_subst) $< >$@ + +.3in.3: + $(AM_V_GEN)$(MKDIR_P) "$$(dirname $@)" + $(AM_V_at)$(do_subst) $< >$@ + +.sh.ms: + $(AM_V_GEN)$(MKDIR_P) "$$(dirname $@)" + $(AM_V_at)cp $< $@ diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index 67bb5a9..0000000 --- a/Makefile.in +++ /dev/null @@ -1,297 +0,0 @@ -# opkbuild -# Makefile.in -# Input Makefile for configure. -# -# Copyright (C) 2012-2013 Patrick "P. J." McDermott -# -# This program 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 2 of the License, or -# (at your option) any later version. -# -# 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 -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -package_name = @PACKAGE_NAME@ -package_version = @PACKAGE_VERSION@ -package_description = @PACKAGE_DESCRIPTION@ -package_library = @PACKAGE_LIBRARY@ - -srcdir = @srcdir@ -prefix = @prefix@ -exec_prefix = @prefix@ -bindir = @bindir@ -libdir = @libdir@ -pkglibdir = $(libdir)/@PACKAGE_LIBRARY@ -datadir = @datadir@ -mandir = @mandir@ -man1dir = $(mandir)/man1 -man3dir = $(mandir)/man3 -localedir = @localedir@ -sysconfdir = @sysconfdir@ - -DESTDIR = / - -sh = @SH@ -opkg = @OPKG@ - -metadata = @METADATA@ - -pkglibpackagedir = $(pkglibdir)/package -pkglibmetadatadir = $(pkglibdir)/metadata -pkgdatadir = $(datadir)/@PACKAGE_NAME@ -helperdir = $(pkgdatadir)/helpers - -include $(srcdir)/src/local.mk -include $(srcdir)/lib/local.mk -include $(srcdir)/lib/package/local.mk -include $(srcdir)/lib/metadata/local.mk -include $(srcdir)/man/local.mk -include $(srcdir)/locale/local.mk -include $(srcdir)/tests/local.mk - -bin = $(bin_srcs:.sh=) -pkglib = $(pkglib_srcs:.sh=.sm) -pkglibpackage = $(pkglibpackage_srcs:.sh=.sm) -pkglibmetadata = $(pkglibmetadata_srcs:.sh=.sm) -man1 = $(man1_srcs:.1in=.1) -man3 = $(man3_srcs:.3in=.3) -locale = $(locale_srcs:.sh=.ms) -pkgdata = optstring - -distdir = $(package_name)-$(package_version) -# TODO: Remove mksysconf.in when no longer used. -distfiles = \ - configure \ - Makefile.in \ - mksysconf.in \ - COPYING \ - COPYING.2 \ - COPYING.3 \ - README \ - INSTALL \ - NEWS \ - NEWS.opkhelper \ - TODO \ - optstring \ - scripts/changelog2news.sh \ - src/local.mk \ - lib/local.mk \ - lib/package/local.mk \ - lib/metadata/local.mk \ - man/local.mk \ - locale/local.mk \ - tests/local.mk \ - $(bin_srcs) \ - $(pkglib_srcs) \ - $(pkglibpackage_srcs) \ - $(pkglibmetadata_srcs) \ - $(man1_srcs) \ - $(man3_srcs) \ - $(locale_srcs) \ - $(tests) \ - $(tests_data) \ - tests/common.sh - -script = \ - s&@[@]PACKAGE_NAME@@&$(package_name)&;\ - s&@[@]PACKAGE_VERSION@@&$(package_version)&;\ - s&@[@]PACKAGE_DESCRIPTION@@&$(package_description)&;\ - s&@[@]BINDIR@@&$(bindir)&;\ - s&@[@]PKGLIBDIR@@&$(pkglibdir)&;\ - s&@[@]DATADIR@@&$(datadir)&;\ - s&@[@]LOCALEDIR@@&$(localedir)&;\ - s&@[@]SYSCONFDIR@@&$(sysconfdir)&;\ - s&@[@]HELPERDIR@@&$(helperdir)&;\ - s&@[@]SH@@&$(sh)&;\ - s&@[@]OPKG@@&$(opkg)&;\ - s&@[@]METADATA@@&$(metadata)&;\ - -.SUFFIXES: -.SUFFIXES: .sh .sm .1in .1 .3in .3 .ms - -# XXX: Support for lists of multiple targets in inference rules doesn't appear -# to be required by POSIX.1-2008 [1], but it exists in GNU Make and NetBSD -# pmake. Expand this into separate rules if it is a problem with certain make -# implementations. -# [1]: Compare the inference and target rule definitions after fragments -# <#tag_20_76_13_06> and <#tag_20_76_13_04> in -# . -.sh: - @printf ' SED %s\n' '$@' - @sed '$(script)' '$(srcdir)/$?' >'$@' - @chmod 755 '$@' -.sh.sm .1in.1 .3in.3: - @printf ' SED %s\n' '$@' - @sed '$(script)' '$(srcdir)/$?' >'$@' - @chmod 644 '$@' -.sh.ms: - @printf ' CP %s\n' '$@' - @obj='$@'; mkdir -p "$${obj%/*}" - @cp '$(srcdir)/$?' '$@' - @chmod 644 '$@' - -all: all-exec all-data -all-exec: all-bin all-pkglib all-pkglibpackage all-pkglibmetadata -all-bin: $(bin) -all-pkglib: $(pkglib) -all-pkglibpackage: $(pkglibpackage) -all-pkglibmetadata: $(pkglibmetadata) -all-data: all-man1 all-man3 all-locale -all-man1: $(man1) -all-man3: $(man3) -all-locale: $(locale) - -clean_cmds = \ - set -e; \ - for f in $${files}; do \ - printf ' RM %s\n' "$${f}"; \ - rm -f "$${f}"; \ - done -clean: clean-exec clean-data -clean-exec: clean-bin clean-pkglib clean-pkglibpackage clean-pkglibmetadata -clean-bin: - @files='$(bin)'; $(clean_cmds) -clean-pkglib: - @files='$(pkglib)'; $(clean_cmds) -clean-pkglibpackage: - @files='$(pkglibpackage)'; $(clean_cmds) -clean-pkglibmetadata: - @files='$(pkglibmetadata)'; $(clean_cmds) -clean-data: clean-man1 clean-man3 clean-locale -clean-man1: - @files='$(man1)'; $(clean_cmds) -clean-man3: - @files='$(man3)'; $(clean_cmds) -clean-locale: - @files='$(locale)'; $(clean_cmds) - -install_cmds = \ - set -e; \ - mkdir -p "$(DESTDIR)/$${dir}"; \ - for f in $${files}; do \ - printf ' INSTALL %s\n' "$${f}"; \ - ff="$$(basename "$${f}")"; \ - cp "$${f}" "$(DESTDIR)/$${dir}/$${ff}"; \ - chmod "$${mode}" "$(DESTDIR)/$${dir}/$${ff}"; \ - done -install: all install-exec install-data -install-exec: all-exec install-bin install-pkglib install-pkglibpackage \ - install-pkglibmetadata -install-bin: - @files='$(bin)'; dir='$(bindir)'; mode='755'; $(install_cmds) -install-pkglib: - @files='$(pkglib)'; dir='$(pkglibdir)'; mode='644'; $(install_cmds) -install-pkglibpackage: - @files='$(pkglibpackage)'; dir='$(pkglibpackagedir)'; \ - mode='644'; $(install_cmds) -install-pkglibmetadata: - @files='$(pkglibmetadata)'; dir='$(pkglibmetadatadir)'; \ - mode='644'; $(install_cmds) -install-data: all-data install-man1 install-man3 install-locale install-pkgdata -install-man1: - @files='$(man1)'; dir='$(man1dir)'; mode='644'; $(install_cmds) -install-man3: - @files='$(man3)'; dir='$(man3dir)'; mode='644'; $(install_cmds) -install-locale: - @mkdir -p '$(DESTDIR)/$(localedir)' - @set -e; for f in $(locale); do \ - printf ' INSTALL %s\n' "$${f}"; \ - ff="$${f#*/}"; \ - dd="$(DESTDIR)/$(localedir)/$${ff%/?*}/LC_MESSAGES"; \ - mkdir -p "$${dd}"; \ - df="$${dd}/$${ff##*/}"; \ - cp "$${f}" "$${df}"; \ - chmod 644 "$${df}"; \ - done -install-pkgdata: - @files='$(pkgdata)'; dir='$(pkgdatadir)'; mode='644'; $(install_cmds) - -uninstall_cmds = \ - set -e; \ - for f in $${files}; do \ - printf ' RM %s\n' "$${f}"; \ - ff="$$(basename "$${f}")"; \ - rm -f "$(DESTDIR)/$${dir}/$${ff}"; \ - done -uninstall: uninstall-exec uninstall-data -uninstall-exec: uninstall-bin uninstall-pkglibpackage uninstall-pkglibmetadata \ - uninstall-pkglib -uninstall-bin: - @files='$(bin)'; dir='$(bindir)'; $(uninstall_cmds) -uninstall-pkglib: - @files='$(pkglib)'; dir='$(pkglibdir)'; $(uninstall_cmds) - @rmdir '$(DESTDIR)/$(pkglibdir)' -uninstall-pkglibpackage: - @files='$(pkglibpackage)'; dir='$(pkglibpackagedir)'; \ - $(uninstall_cmds) - @rmdir '$(DESTDIR)/$(pkglibpackagedir)' -uninstall-pkglibmetadata: - @files='$(pkglibmetadata)'; dir='$(pkglibmetadatadir)'; \ - $(uninstall_cmds) - @rmdir '$(DESTDIR)/$(pkglibmetadatadir)' -uninstall-data: uninstall-man1 uninstall-man3 uninstall-locale -uninstall-man1: - @files='$(man1)'; dir='$(man1dir)'; $(uninstall_cmds) -uninstall-man3: - @files='$(man3)'; dir='$(man3dir)'; $(uninstall_cmds) -uninstall-locale: - @set -e; for f in $(locale); do \ - printf ' RM %s\n' "$${f}"; \ - ff="$${f#*/}"; \ - dd="$(DESTDIR)/$(localedir)/$${ff%/?*}/LC_MESSAGES"; \ - df="$${dd}/$${ff##*/}"; \ - rm -f "$${df}"; \ - done - -test: all - @cd '$(srcdir)/tests'; \ - all=0; failed=0; \ - for test in $(tests); do \ - out="$$($(sh) "$(srcdir)/$${test}" 2>&1)"; \ - if [ $${?} -eq 0 ]; then \ - printf 'PASS: %s\n' "$${test}"; \ - else \ - printf 'FAIL: %s\n' "$${test}"; \ - echo "$${out}" | sed 's/^/ /'; \ - failed=$$(($$failed + 1)); \ - fi; \ - all=$$(($$all + 1)); \ - done; \ - banner="$$(printf '%d out of %d tests failed' $${failed} $${all})"; \ - l=$$(echo "$${banner}" | wc -c); \ - i=1; while [ "$${i}" -lt "$${l}" ]; do \ - printf '='; \ - i=$$(($$i + 1)); \ - done; \ - printf '\n%s\n' "$${banner}"; \ - i=1; while [ $${i} -lt $${l} ]; do \ - printf '='; \ - i=$$(($$i + 1)); \ - done; \ - printf '\n'; \ - exit $${failed} - -$(distdir): - @mkdir -p '$(distdir)' - @set -e; for f in $(distfiles); do \ - mkdir -p "$(distdir)/$$(dirname $${f})"; \ - cp -p "$${f}" "$(distdir)/$${f}"; \ - done - -dist dist-gzip: $(distdir) - @tar -cf - '$(distdir)' | gzip -9c > '$(distdir).tar.gz' - @rm -Rf '$(distdir)' - -dist-bzip2: $(distdir) - @tar -cf - '$(distdir)' | bzip2 -9c > '$(distdir).tar.bz2' - @rm -Rf '$(distdir)' - -dist-xz: $(distdir) - @tar -cf - '$(distdir)' | xz -c > '$(distdir).tar.xz' - @rm -Rf '$(distdir)' diff --git a/autogen.sh b/autogen.sh index 2051523..c4a5ec8 100755 --- a/autogen.sh +++ b/autogen.sh @@ -2,7 +2,7 @@ # # Script to generate the build system. # -# Copyright (C) 2013 Patrick "P. J." McDermott +# Copyright (C) 2013 Patrick McDermott # # Copying and distribution of this file, with or without modification, # are permitted in any medium without royalty provided the copyright @@ -21,6 +21,7 @@ This file is generated upon release. Run \`git log\` for a list of changes. EOF aclocal autoconf + automake --add-missing --copy )} "${srcdir}/configure" "${@}" diff --git a/configure.ac b/configure.ac index 5429166..1148a18 100644 --- a/configure.ac +++ b/configure.ac @@ -25,6 +25,9 @@ AC_SUBST([PACKAGE_LIBRARY], ['libopkbuild.1']) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_SRCDIR([src/opkbuild.sh]) +AM_INIT_AUTOMAKE([gnu check-news dist-bzip2 dist-xz subdir-objects]) +AM_SILENT_RULES([yes]) + AC_ARG_WITH( [sh], [AS_HELP_STRING([--with-sh=PATH], diff --git a/lib/local.mk b/lib/local.mk index d0d5cbd..19be4d1 100644 --- a/lib/local.mk +++ b/lib/local.mk @@ -16,7 +16,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -pkglib_srcs = \ +pkgdata_sources = \ lib/load.sh \ lib/common.sh \ lib/locale.sh \ diff --git a/lib/metadata/local.mk b/lib/metadata/local.mk index 9c32560..34d678d 100644 --- a/lib/metadata/local.mk +++ b/lib/metadata/local.mk @@ -16,5 +16,5 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -pkglibmetadata_srcs = \ +pkgdatametadata_sources = \ lib/metadata/proteanos.sh diff --git a/lib/package/local.mk b/lib/package/local.mk index 6839f77..5dfddf2 100644 --- a/lib/package/local.mk +++ b/lib/package/local.mk @@ -16,5 +16,5 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -pkglibpackage_srcs = \ +pkgdatapackage_sources = \ lib/package/2.sh diff --git a/locale/local.mk b/locale/local.mk index 7f75252..237508d 100644 --- a/locale/local.mk +++ b/locale/local.mk @@ -16,7 +16,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -locale_srcs = \ +locale_sources = \ locale/en_MID/libopkbuild_1.sh \ locale/en_US/libopkbuild_1.sh \ locale/en_US/opkbuild.sh diff --git a/man/local.mk b/man/local.mk index 0a397bd..0646e7b 100644 --- a/man/local.mk +++ b/man/local.mk @@ -16,7 +16,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -#man1_srcs = \ +#man1_sources = \ # opkbuild.1in \ # ob-checkbuilddeps.1in \ # ob-buildenv.1in \ @@ -27,7 +27,7 @@ # ob-gencontrol.1in \ # ob-buildopk.1in \ # ob-genchanges.1in -#man3_srcs = \ +#man3_sources = \ # ob_get_text_domain.3in \ # ob_set_text_domain.3in \ # ob_get_msg.3in \ diff --git a/src/local.mk b/src/local.mk index 630b72c..6d1ccd6 100644 --- a/src/local.mk +++ b/src/local.mk @@ -16,7 +16,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -bin_srcs = \ +bin_sources = \ src/opkbuild.sh \ src/ob-checkbuilddeps.sh \ src/ob-buildenv.sh \ -- cgit v0.9.1