diff options
author | P. J. McDermott <pjm@nac.net> | 2014-02-27 19:09:31 (EST) |
---|---|---|
committer | P. J. McDermott <pjm@nac.net> | 2014-02-27 19:09:31 (EST) |
commit | 8b2b5b277d2225aabcc691bdcefe58f21382ec7f (patch) | |
tree | e4787f36b77861e47c5f635f9dc3891cf9a7c2c4 | |
parent | b732112c8e1b99ade1c89fa51ec1683fae05b21c (diff) |
Switch to using GNU Autoconf and Automake.
-rw-r--r-- | Makefile.am | 160 | ||||
-rw-r--r-- | Makefile.in | 284 | ||||
-rw-r--r-- | archtab/local.mk | 2 | ||||
-rwxr-xr-x | autogen.sh | 15 | ||||
-rwxr-xr-x | configure | 344 | ||||
-rw-r--r-- | configure.ac | 74 | ||||
-rw-r--r-- | lib/buildsystem/local.mk | 2 | ||||
-rw-r--r-- | lib/local.mk | 2 | ||||
-rw-r--r-- | locale/local.mk | 2 | ||||
-rw-r--r-- | man/local.mk | 2 | ||||
-rw-r--r-- | src/local.mk | 2 |
11 files changed, 255 insertions, 634 deletions
diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..a5875d6 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,160 @@ +# Process this file with automake to produce an input makefile. +# +# Copyright (C) 2013, 2014 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 3 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 <http://www.gnu.org/licenses/>. + +include $(top_srcdir)/src/local.mk +include $(top_srcdir)/lib/local.mk +include $(top_srcdir)/lib/buildsystem/local.mk +include $(top_srcdir)/man/local.mk +include $(top_srcdir)/locale/local.mk +include $(top_srcdir)/archtab/local.mk +include $(top_srcdir)/tests/local.mk + +bin_SCRIPTS = $(bin_sources:.sh=) +pkgdata_SCRIPTS = $(pkgdata_sources:.sh=.sm) +pkgdatabuildsystem_SCRIPTS = $(pkgdatabuildsystem_sources:.sh=.sm) +man1_MANS = $(man1_sources:.1in=.1) +locale_MESSAGES = $(locale_sources:.sh=.ms) +CLEANFILES = \ + $(bin_SCRIPTS) \ + $(pkgdata_SCRIPTS) \ + $(pkgdatabuildsystem_SCRIPTS) \ + $(man1_MANS) \ + $(locale_MESSAGES) +pkgdatabuildsystemdir = $(pkgdatadir)/buildsystem +archtabdir = $(pkgdatadir)/archtab +EXTRA_DIST = \ + COPYING.2 \ + COPYING.3 \ + autogen.sh \ + $(bin_sources) \ + $(pkgdata_sources) \ + $(pkgdatabuildsystem_sources) \ + $(man1_sources) \ + $(locale_sources) \ + $(archtab_sources) \ + $(tests) + +SUFFIXES = .sh .sm .1in .1 .ms + +textdomain = $$(printf '%s\n' '$(PACKAGE)' | sed -e 's|-|_|g') +do_subst = sed \ + -e 's|[@]PACKAGE[@]|$(PACKAGE)|g' \ + -e 's|[@]PACKAGE_NAME[@]|$(PACKAGE_NAME)|g' \ + -e 's|[@]PACKAGE_VERSION[@]|$(PACKAGE_VERSION)|g' \ + -e 's|[@]SH[@]|$(SH)|g' \ + -e 's|[@]multiarch_libdir[@]|$(multiarch_libdir)|g' \ + -e 's|[@]pkgdatadir[@]|$(pkgdatadir)|g' \ + -e 's|[@]localedir[@]|$(localedir)|g' \ + -e 's|[@]archtabdir[@]|$(archtabdir)|g' \ + -e 's|@[@]PACKAGE_NAME[@]@|$(PACKAGE)|g' \ + -e 's|@[@]PACKAGE_VERSION[@]@|$(PACKAGE_VERSION)|g' \ + -e 's|@[@]PACKAGE_DESCRIPTION[@]@|$(PACKAGE_NAME)|g' \ + -e 's|@[@]PKGLIBDIR[@]@|$(pkgdatadir)|g' \ + -e 's|@[@]LOCALEDIR[@]@|$(localedir)|g' \ + -e 's|@[@]ARCHTABDIR[@]@|$(archtabdir)|g' \ + -e 's|@[@]SH[@]@|$(SH)|g' \ + -e 's|@[@]MULTIARCH_LIBDIR[@]@|$(multiarch_libdir)|g' + +all-local: $(locale_MESSAGES) $(archtab_sources) + +install-data-local: $(locale_MESSAGES) $(archtab_sources) + @$(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 + for f in $(archtab_sources); do \ + ff="$${f#*/}"; \ + dir="$(DESTDIR)$(archtabdir)/$${ff%/?*}"; \ + $(MKDIR_P) "$${dir}" || exit 1; \ + $(INSTALL_DATA) "$(top_srcdir)/$${f}" "$${dir}/$${ff#*/}" || \ + 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 + +uninstall-hook: + for dir in \ + '$(DESTDIR)$(pkgdatabuildsystemdir)' \ + '$(DESTDIR)$(archtabdir)' \ + '$(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 + +test: + @set -e; \ + mkdir -p tests; \ + cd tests; \ + . '$(abs_top_srcdir)/tests/testlib.sh'; \ + PATH="$${PATH}:$(DESTDIR)$(bindir)"; \ + t_all=0; t_failed=0; \ + for t_test in $(tests); do \ + t_fail='false'; \ + . "$(abs_top_srcdir)/$${t_test}" >out 2>&1; \ + if "$${t_fail}"; then \ + printf 'FAIL: %s\n' "$${t_test#tests/}"; \ + cat out | sed 's/^/ /'; \ + t_failed=$$(($$t_failed + 1)); \ + else \ + printf 'PASS: %s\n' "$${t_test#tests/}"; \ + fi; \ + t_all=$$(($$t_all + 1)); \ + rm out; \ + done; \ + t_banner="$$(printf '%d out of %d tests failed' \ + $${t_failed} $${t_all})"; \ + t_l=$$(printf '%s\n' "$${t_banner}" | wc -c); \ + t_i=1; while [ "$${t_i}" -lt "$${t_l}" ]; do \ + printf '='; \ + t_i=$$(($$t_i + 1)); \ + done; \ + printf '\n%s\n' "$${t_banner}"; \ + t_i=1; while [ "$${t_i}" -lt "$${t_l}" ]; do \ + printf '='; \ + t_i=$$(($$t_i + 1)); \ + done; \ + printf '\n'; \ + [ $${t_failed} -eq 0 ] + +.sh: + $(MKDIR_P) "$$(dirname $@)" + $(do_subst) $< >$@ + chmod a+x $@ + +.sh.sm .1in.1: + $(MKDIR_P) "$$(dirname $@)" + $(do_subst) $< >$@ + +.sh.ms: + $(MKDIR_P) "$$(dirname $@)" + cp $< $@ diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index 1d57c5d..0000000 --- a/Makefile.in +++ /dev/null @@ -1,284 +0,0 @@ -# opkhelper -# 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 <http://www.gnu.org/licenses/>. - -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@ -localedir = @localedir@ -pkgdatadir = @pkgdatadir@ -archtabdir = @archtabdir@ - -DESTDIR = / - -sh = @sh@ - -multiarch_libdir = @multiarch_libdir@ - -pkglibbuildsystemdir = $(pkglibdir)/buildsystem - -include $(srcdir)/src/local.mk -include $(srcdir)/lib/local.mk -include $(srcdir)/lib/buildsystem/local.mk -include $(srcdir)/man/local.mk -include $(srcdir)/locale/local.mk -include $(srcdir)/archtab/local.mk -include $(srcdir)/tests/local.mk - -bin = $(bin_srcs:.sh=) -pkglib = $(pkglib_srcs:.sh=.sm) -pkglibbuildsystem = $(pkglibbuildsystem_srcs:.sh=.sm) -man1 = $(man1_srcs:.1in=.1) -locale = $(locale_srcs:.sh=.ms) -archtab = $(archtab_srcs) - -distdir = $(package_name)-$(package_version) -distfiles = \ - configure \ - Makefile.in \ - COPYING.2 \ - COPYING.3 \ - README \ - INSTALL \ - ChangeLog \ - TODO \ - src/local.mk \ - lib/local.mk \ - lib/buildsystem/local.mk \ - man/local.mk \ - locale/local.mk \ - archtab/local.mk \ - tests/local.mk \ - $(bin_srcs) \ - $(pkglib_srcs) \ - $(pkglibbuildsystem_srcs) \ - $(man1_srcs) \ - $(locale_srcs) \ - $(archtab_srcs) \ - $(tests) - -textdomain = $$(printf '%s\n' '$(package_name)' | sed -e 's|-|_|g') - -script = \ - s&@@PACKAGE_NAME@@&$(package_name)&;\ - s&@@PACKAGE_VERSION@@&$(package_version)&;\ - s&@@PACKAGE_DESCRIPTION@@&$(package_description)&;\ - s&@@PKGLIBDIR@@&$(pkglibdir)&;\ - s&@@LOCALEDIR@@&$(localedir)&;\ - s&@@ARCHTABDIR@@&$(archtabdir)&;\ - s&@@SH@@&$(sh)&;\ - s&@@MULTIARCH_LIBDIR@@&$(multiarch_libdir)&; - -.SUFFIXES: -.SUFFIXES: .sh .sm .1in .1 .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 -# <http://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html>. -.sh: - @printf ' SED %s\n' '$@' - @sed '$(script)' '$(srcdir)/$?' >'$@' - @chmod 755 '$@' -.sh.sm .1in.1: - @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-pkglibbuildsystem -all-bin: $(bin) -all-pkglib: $(pkglib) -all-pkglibbuildsystem: $(pkglibbuildsystem) -all-data: all-man1 all-locale -all-man1: $(man1) -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-pkglibbuildsystem -clean-bin: - @files='$(bin)'; $(clean_cmds) -clean-pkglib: - @files='$(pkglib)'; $(clean_cmds) -clean-pkglibbuildsystem: - @files='$(pkglibbuildsystem)'; $(clean_cmds) -clean-data: clean-man1 clean-locale -clean-man1: - @files='$(man1)'; $(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-pkglibbuildsystem -install-bin: - @files='$(bin)'; dir='$(bindir)'; mode='755'; $(install_cmds) -install-pkglib: - @files='$(pkglib)'; dir='$(pkglibdir)'; mode='644'; $(install_cmds) -install-pkglibbuildsystem: - @files='$(pkglibbuildsystem)'; dir='$(pkglibbuildsystemdir)'; \ - mode='644'; $(install_cmds) -install-data: all-data install-man1 install-locale install-archtab -install-man1: - @files='$(man1)'; dir='$(man1dir)'; 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%.ms}/LC_MESSAGES"; \ - mkdir -p "$${dd}"; \ - df="$${dd}/$(textdomain).ms"; \ - cp "$${f}" "$${df}"; \ - chmod 644 "$${df}"; \ - done -install-archtab: - @mkdir -p '$(DESTDIR)/$(archtabdir)' - @set -e; for f in $(archtab); do \ - printf ' INSTALL %s\n' "$${f}"; \ - ff="$${f#*/}"; \ - mkdir -p "$(DESTDIR)/$(archtabdir)/$${ff%/?*}"; \ - cp "$(srcdir)/$${f}" "$(DESTDIR)/$(archtabdir)/$${ff}"; \ - chmod 644 "$(DESTDIR)/$(archtabdir)/$${ff}"; \ - done - -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-pkglibbuildsystem uninstall-pkglib -uninstall-bin: - @files='$(bin)'; dir='$(bindir)'; $(uninstall_cmds) -uninstall-pkglib: - @files='$(pkglib)'; dir='$(pkglibdir)'; $(uninstall_cmds) - @rmdir '$(DESTDIR)/$(pkglibdir)' -uninstall-pkglibbuildsystem: - @files='$(pkglibbuildsystem)'; dir='$(pkglibbuildsystemdir)'; \ - $(uninstall_cmds) - @rmdir '$(DESTDIR)/$(pkglibbuildsystemdir)' -uninstall-data: uninstall-man1 uninstall-locale uninstall-archtab -uninstall-man1: - @files='$(man1)'; dir='$(man1dir)'; $(uninstall_cmds) -uninstall-locale: - @set -e; for f in $(locale); do \ - printf ' RM %s\n' "$${f}"; \ - ff="$${f#*/}"; \ - dd="$(DESTDIR)/$(localedir)/$${ff%.ms}/LC_MESSAGES"; \ - df="$${dd}/$(textdomain).ms)"; \ - rm -f "$${df}"; \ - done -uninstall-archtab: - @set -e; for f in $(archtab); do \ - printf ' RM %s\n' "$${f}"; \ - ff="$${f#*/}"; \ - rm -f "$(DESTDIR)/$(archtabdir)/$${ff}"; \ - rmdir "$(DESTDIR)/$(archtabdir)/$${ff%/?*}" 2>/dev/null || \ - true; \ - done - @rmdir '$(DESTDIR)/$(archtabdir)' - @rmdir '$(DESTDIR)/$(pkgdatadir)' - -test: - @set -e; \ - mkdir -p tests; \ - cd tests; \ - . ./testlib.sh; \ - PATH="$${PATH}:$(DESTDIR)/$(bindir)"; \ - t_all=0; t_failed=0; \ - for t_test in $(tests); do \ - t_fail='false'; \ - . "$(srcdir)/$${t_test}" >out 2>&1; \ - if "$${t_fail}"; then \ - printf 'FAIL: %s\n' "$${t_test#tests/}"; \ - cat out | sed 's/^/ /'; \ - t_failed=$$(($$t_failed + 1)); \ - else \ - printf 'PASS: %s\n' "$${t_test#tests/}"; \ - fi; \ - t_all=$$(($$t_all + 1)); \ - rm out; \ - done; \ - t_banner="$$(printf '%d out of %d tests failed' \ - $${t_failed} $${t_all})"; \ - t_l=$$(printf '%s\n' "$${t_banner}" | wc -c); \ - t_i=1; while [ "$${t_i}" -lt "$${t_l}" ]; do \ - printf '='; \ - t_i=$$(($$t_i + 1)); \ - done; \ - printf '\n%s\n' "$${t_banner}"; \ - t_i=1; while [ "$${t_i}" -lt "$${t_l}" ]; do \ - printf '='; \ - t_i=$$(($$t_i + 1)); \ - done; \ - printf '\n'; \ - [ $${t_failed} -eq 0 ] - -$(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/archtab/local.mk b/archtab/local.mk index 0841263..b773c33 100644 --- a/archtab/local.mk +++ b/archtab/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 <http://www.gnu.org/licenses/>. -archtab_srcs = \ +archtab_sources = \ archtab/amd64-linux-glibc/autoconf \ archtab/amd64-linux-glibc/kbuild \ archtab/i686-linux-glibc/autoconf \ diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..c90bb39 --- /dev/null +++ b/autogen.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +set -e + +srcdir="${0%/*}" + +{( + cd "${srcdir}" + [ -d build-aux ] || mkdir build-aux + aclocal + autoconf + automake --add-missing --copy +)} + +"${srcdir}/configure" "${@}" diff --git a/configure b/configure deleted file mode 100755 index 5687863..0000000 --- a/configure +++ /dev/null @@ -1,344 +0,0 @@ -#! /bin/sh -# -# opkhelper -# configure -# Configuration script to generate Makefile. -# -# Copyright (C) 2011-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 <http://www.gnu.org/licenses/>. - -package_name='opkhelper' -package_version='3.0.0-beta4' -package_description='OPK Build Helper Tools' -package_library='libopkhelper.3.0' - -srcdir="$(cd "${0%/*}" && pwd)" -prefix='/usr/local' -bindir='${prefix}/bin' -libdir='${prefix}/share' -pkglibdir='${libdir}/${package_library}' -datadir='${prefix}/share' -mandir='${datadir}/man' -man1dir='${mandir}/man1' -localedir='${datadir}/locale' -pkgdatadir='${datadir}/${package_name}' -archtabdir='${pkgdatadir}/archtab' -multiarch_libdir='true' - -quiet='false' -missing_deps='false' -dep_cmds=' -sh -make -' -dep_libs=' -' - -long_opts_with_args=' -srcdir -prefix -bindir -libdir -pkglibdir -datadir -mandir -man1dir -localedir -pkgdatadir -archtabdir -' - -features=" -${dep_cmds} -${dep_libs} -${opt_dep_cmds} -${opt_dep_libs} -multiarch-libdir -" - -subst_vars=" -package_name -package_version -package_description -package_library -${long_opts_with_args} -${features} -" - -main() -{ - parse_options "${@}" - shift ${optind} - if [ ${#} -ne 0 ]; then - print_usage - exit - fi - - for dep in ${dep_cmds}; do - dep_name="$(printf '%s' "${dep}" | tr -c '[a-z0-9]' '_')" - dep_val="$(eval echo \$\{"${dep_name}"\})" - if [ -z "${dep_val}" ]; then - find_dep_cmd "${dep}" || missing_deps='true' - fi - done - for dep in ${dep_libs}; do - dep_name="$(printf '%s' "${dep}" | tr -c '[a-z0-9]' '_')" - dep_val="$(eval echo \$\{"${dep_name}"\})" - if [ -z "${dep_val}" ]; then - find_dep_lib "${dep}" || missing_deps='true' - fi - done - for dep in ${opt_dep_cmds}; do - dep_name="$(printf '%s' "${dep}" | tr -c '[a-z0-9]' '_')" - dep_val="$(eval echo \$\{"${dep_name}"\})" - if [ -z "${dep_val}" ]; then - find_dep_cmd "${dep}" - fi - done - for dep in ${opt_dep_libs}; do - dep_name="$(printf '%s' "${dep}" | tr -c '[a-z0-9]' '_')" - dep_val="$(eval echo \$\{"${dep_name}"\})" - if [ -z "${dep_val}" ]; then - find_dep_lib "${dep}" - fi - done - - if ${missing_deps}; then - cat <<EOF - -Some dependencies could not be found. -Please make sure all dependencies are installed and try again. - -EOF - exit 1 - fi - - write_makefiles - - printf '\nConfiguration complete!\n\n' -} - -print_usage() -{ - printf 'Usage: %s [OPTION]...\n' "${0}" -} - -print_help() -{ - cat <<EOF -\`configure' configures ${package_name} ${package_version} to adapt to many \ -kinds of systems. - -$(print_usage) - -Configuration: - -h, --help display this help and exit - -V, --version display version information and exit - -q, --quiet do not print \`checking ...' messages - --srcdir=SRCDIR find the scripts in SRCDIR - default: configure dir - -Installation directories: - --prefix=PREFIX install files under PREFIX - default: /usr/local - --bindir=BINDIR install scripts in BINDIR - default: PREFIX/bin - --libdir=LIBDIR install library scripts in LIBDIR - default: PREFIX/share - --pkglibdir=PKGLIBDIR install package library scripts in PKGLIBDIR - default: LIBDIR/${package_library} - --datadir=DATADIR expect to find data in DATADIR - default: PREFIX/share - --mandir=MANDIR install manual pages in MANDIR - default: DATADIR/man - --man1dir=MAN1DIR install section 1 manual pages in MAN1DIR - default: MANDIR/man1 - --localedir=LOCALEDIR install locales in LOCALEDIR - default: DATADIR/locale - --pkgdatadir=PKGDATADIR install package data in PKGDATADIR - default: DATADIR/${package_name} - --archtabdir=ARCHTABDIR install architecture table entries in ARCHTABDIR - default: PKGDATADIR/archtab - -Features: - --with-multiarch-libdir=BOOL - use multiarch library paths in packages - default: true - -Dependencies: - --with-sh=PATH use sh at PATH -EOF -} - -print_version() -{ - cat <<EOF -${package_name} ${package_version} configure -Not generated by GNU Autoconf - -Copyright (C) 2011-2013 Patrick "P. J." McDermott -License: GNU GPL version 2 or later <http://www.gnu.org/licenses/gpl.html>. -This configure script is free software: you can redistribute and/or modify it. -There is NO WARRANTY, to the extent permitted by law. -EOF -} - -parse_options() -{ - optind=0 - - for _opt; do - - # Handle arguments of "--opt arg" options. - if [ -n "${_prev}" ]; then - eval "${_prev}"=\"\$\{_opt\}\" - _prev='' - continue - fi - - # Detect "--opt=arg" and "--opt arg" options. - case "${_opt}" in - *=*) - _optarg="${_opt#*=}" - _opt="${_opt%=*}" - _optarg_set='true' - ;; - *) - _optarg_set='false' - ;; - esac - - # Handle short and long options. - case "${_opt}" in - --) - break - ;; - -h|--help) - print_help - exit 0 - ;; - -V|--version) - print_version - exit 0 - ;; - -q|--quiet) - quiet='true' - continue - ;; - esac - - # Anything beyond this point should be a long option. - case "${_opt}" in - --with-*) - _opt="${_opt#--with-}" - _opts="${features}" - _type='package' - ;; - --*) - _opt="${_opt#--}" - _opts="${long_opts_with_args}" - _type='option' - ;; - *) - break - ;; - esac - - grep "^${_opt}\$" >/dev/null 2>&1 <<EOF -"${_opts}" -EOF - if [ ${?} -ne 0 ]; then - printf 'warning: unrecognized %s name: %s\n' \ - "${_type}" "${_opt}" >&2 - continue - fi - if ${_optarg_set}; then - _opt="$(printf '%s' "${_opt}" | tr -c '[a-z0-9]' '_')" - eval "${_opt}"=\"\$\{_optarg\}\" - else - _prev="${_opt}" - fi - - optind=$(($optind + 1)) - - done -} - -find_dep_cmd() -{ - _dep="${1}" - - ${quiet} || printf 'checking for %s... ' "${_dep}" - - IFS=':' - - for _element in ${PATH}; do - unset IFS - : ${_element=-.} - if [ -f "${_element}/${_dep}" -a -x "${_element}/${_dep}" ]; then - ${quiet} || printf '%s/%s\n' "${_element}" "${_dep}" - _var="$(printf '%s' "${_dep}" | tr -c '[a-z0-9]' '_')" - eval "${_var}"=\"${_element}/${_dep}\" - return 0 - fi - done - - unset IFS - - ${quiet} || printf 'not found\n' - return 1 -} - -find_dep_lib() -{ - _dep="${1}" - - ${quiet} || printf 'checking for %s... ' "${_dep}" - - IFS=':' - - for _element in $(eval echo "${libdir}") ${PATH}; do - unset IFS - : ${_element=-.} - if [ -d "${_element}/${_dep}" ]; then - ${quiet} || printf '%s/%s\n' "${_element}" "${_dep}" - _var="$(printf '%s' "${_dep}" | tr -c '[a-z0-9]' '_')" - eval "${_var}"=\"${_element}/${_dep}\" - return 0 - fi - done - - unset IFS - - ${quiet} || printf 'not found\n' - return 1 -} - -write_makefiles() -{ - for _dir in src lib lib/buildsystem locale man; do - [ -d "${_dir}" ] || mkdir "${_dir}" - done - - # Make a script to edit input makefiles. - _sed_script='' - for _var in ${subst_vars}; do - _var="$(printf '%s' "${_var}" | tr -c '[a-z0-9]' '_')" - _sed_script="${_sed_script}s&@${_var}@&$(eval echo \$\{"${_var}"\})&g;" - done - sed "${_sed_script}" "${srcdir}/Makefile.in" >'Makefile' -} - -main "${@}" diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..a736956 --- /dev/null +++ b/configure.ac @@ -0,0 +1,74 @@ +# Process this file with autoconf to produce a configure script. +# +# Copyright (C) 2013, 2014 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 3 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 <http://www.gnu.org/licenses/>. + +AC_INIT([OPK Build Helper Tools], [3.0.0-beta4], + [mailto:proteanos-dev@lists.proteanos.com], [opkhelper], + [http://www.proteanos.com/dev/opkhelper/]) +AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_SRCDIR([src/oh-installfiles.sh]) + +AM_INIT_AUTOMAKE([foreign dist-bzip2 dist-xz subdir-objects]) + +AC_ARG_WITH( + [sh], + [AS_HELP_STRING([--with-sh], [POSIX-conformant shell with `local'])], + dnl This `dnl' is needed to workaround Vim syntax highlighting. + [ + case "${withval}" in + 'yes'|'') + AC_MSG_ERROR([--with-sh requires an argument]) + ;; + 'no') + AC_MSG_ERROR([sh is required]) + ;; + *) + SH="${withval}" + ;; + esac + ], + [ + AC_PATH_PROG([SH], [sh]) + if test -z "${SH}"; then + AC_MSG_ERROR([sh not found]) + fi + ] +) + +AC_ARG_ENABLE( + [multiarch-libdir], + [AS_HELP_STRING( + [--disable-multiarch-libdir], + [do not use multiarch library paths in packages] + )], + [ + opt='multiarch-libdir' + case "${enableval}" in + 'yes'|'no') ;; + *) AC_MSG_ERROR( + [bad value ${enableval} for ${opt} option]) ;; + esac + multiarch_libdir="${enableval}" + ], + [ + multiarch_libdir='yes' + ] +) + +AC_SUBST([SH]) +AC_SUBST([multiarch_libdir]) +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT() diff --git a/lib/buildsystem/local.mk b/lib/buildsystem/local.mk index 76cf972..bacf27d 100644 --- a/lib/buildsystem/local.mk +++ b/lib/buildsystem/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 <http://www.gnu.org/licenses/>. -pkglibbuildsystem_srcs = \ +pkgdatabuildsystem_sources = \ lib/buildsystem/autoconf.sh \ lib/buildsystem/kbuild.sh \ lib/buildsystem/make.sh diff --git a/lib/local.mk b/lib/local.mk index 0f7c62d..53a3ff8 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 <http://www.gnu.org/licenses/>. -pkglib_srcs = \ +pkgdata_sources = \ lib/load.sh \ lib/common.sh \ lib/output.sh \ diff --git a/locale/local.mk b/locale/local.mk index eeddd03..e490e60 100644 --- a/locale/local.mk +++ b/locale/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 <http://www.gnu.org/licenses/>. -locale_srcs = \ +locale_sources = \ locale/en_US.sh diff --git a/man/local.mk b/man/local.mk index 808e325..0e88e68 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 <http://www.gnu.org/licenses/>. -man1_srcs = \ +man1_sources = \ man/oh-installfiles.1in \ man/oh-strip.1in \ man/oh-fixperms.1in \ diff --git a/src/local.mk b/src/local.mk index 84c8f4d..970704f 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 <http://www.gnu.org/licenses/>. -bin_srcs = \ +bin_sources = \ src/oh-installfiles.sh \ src/oh-strip.sh \ src/oh-fixperms.sh \ |