From 443f79077d349db5aa14169a6c5ccf1e4bcd4cf1 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Sat, 15 Jun 2013 16:57:02 -0400 Subject: Merge branch 'feature/build-system-improvements'. --- (limited to 'Makefile.in') diff --git a/Makefile.in b/Makefile.in index b7a53a2..70b584a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2,7 +2,7 @@ # Makefile.in # Input Makefile for configure. # -# Copyright (C) 2012 Patrick "P. J." McDermott +# 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 @@ -19,102 +19,255 @@ package_name = @package_name@ package_version = @package_version@ +package_description = @package_description@ +package_library = @package_library@ srcdir = @srcdir@ prefix = @prefix@ bindir = @bindir@ libdir = @libdir@ +pkglibdir = @pkglibdir@ datadir = @datadir@ mandir = @mandir@ +man1dir = @man1dir@ +man3dir = @man3dir@ +localedir = @localedir@ sysconfdir = @sysconfdir@ -libopkbuild = @libopkbuild@ -metadata = @metadata@ -opkhelper_3_0 = @opkhelper_3_0@ DESTDIR = / sh = @sh@ +opkhelper_3_0 = @opkhelper_3_0@ + +metadata = @metadata@ + +pkglibpackagedir = $(pkglibdir)/package +pkglibmetadatadir = $(pkglibdir)/metadata -MACROS = \ - 'DESTDIR=$(DESTDIR)' \ - 'prefix=$(prefix)' \ - 'bindir=$(bindir)' \ - 'libdir=$(libdir)' \ - 'datadir=$(datadir)' \ - 'mandir=$(mandir)' \ - 'sysconfdir=$(sysconfdir)' \ - 'libopkbuild=$(libopkbuild)' \ - 'metadata=$(metadata)' \ - 'opkhelper_3_0=$(opkhelper_3_0)' +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) distdir = $(package_name)-$(package_version) -distfiles = configure Makefile.in COPYING.2 COPYING.3 \ - README INSTALL ChangeLog TODO +distfiles = \ + configure \ + Makefile.in \ + COPYING.2 \ + COPYING.3 \ + README \ + INSTALL \ + ChangeLog \ + TODO \ + 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) + +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&@@SH@@&$(sh)&;\ + s&@@METADATA@@&$(metadata)&;\ + s&@@OPKHELPER_3_0@@&$(opkhelper_3_0)&; .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-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 -all: - @printf 'Making executable files...\n' - @cd src && $(MAKE) $(MACROS) all - @printf 'Making library files...\n' - @cd lib && $(MAKE) $(MACROS) all - @cd lib/package && $(MAKE) $(MACROS) all - @cd lib/metadata && $(MAKE) $(MACROS) all - @printf 'Making locales...\n' - @cd locale && $(MAKE) $(MACROS) all - @printf 'Making manual pages...\n' - @cd man && $(MAKE) $(MACROS) all - -clean: - @printf 'Cleaning executable files...\n' - @cd src && $(MAKE) $(MACROS) clean - @printf 'Cleaning library files...\n' - @cd lib && $(MAKE) $(MACROS) clean - @cd lib/package && $(MAKE) $(MACROS) clean - @cd lib/metadata && $(MAKE) $(MACROS) clean - @printf 'Cleaning locales...\n' - @cd locale && $(MAKE) $(MACROS) clean - @printf 'Cleaning manual pages...\n' - @cd man && $(MAKE) $(MACROS) clean - -install: all - @printf 'Installing executable files...\n' - @cd src && $(MAKE) $(MACROS) install - @printf 'Installing libary files...\n' - @cd lib && $(MAKE) $(MACROS) install - @cd lib/package && $(MAKE) $(MACROS) install - @cd lib/metadata && $(MAKE) $(MACROS) install - @printf 'Installing locales...\n' - @cd locale && $(MAKE) $(MACROS) install - @printf 'Installing manual pages...\n' - @cd man && $(MAKE) $(MACROS) install - -uninstall: - @printf 'Uninstalling executable files...\n' - @cd src && $(MAKE) $(MACROS) uninstall - @printf 'Uninstalling library files...\n' - @cd lib/package && $(MAKE) $(MACROS) uninstall - @cd lib/metadata && $(MAKE) $(MACROS) uninstall - @cd lib && $(MAKE) $(MACROS) uninstall - @printf 'Uninstalling locales...\n' - @cd locale && $(MAKE) $(MACROS) uninstall - @printf 'Uninstalling manual pages...\n' - @cd man && $(MAKE) $(MACROS) uninstall +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 - @printf 'Running tests...\n' - @cd tests && $(MAKE) $(MACROS) 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} $(distdir): @mkdir -p '$(distdir)' - @cp -pR $(distfiles) '$(distdir)' - @cd src && $(MAKE) '../$(distdir)/src' - @cd lib && $(MAKE) '../$(distdir)/lib' - @cd lib/package && $(MAKE) '../../$(distdir)/lib/package' - @cd lib/metadata && $(MAKE) '../../$(distdir)/lib/metadata' - @cd locale && $(MAKE) '../$(distdir)/locale' - @cd man && $(MAKE) '../$(distdir)/man' - @cd tests && $(MAKE) '../$(distdir)/tests' + @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' -- cgit v0.9.1