aboutsummaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure355
1 files changed, 10 insertions, 345 deletions
diff --git a/configure b/configure
index d06e6ce..bf68549 100755
--- a/configure
+++ b/configure
@@ -1,357 +1,21 @@
#!/usr/bin/env bash
-PREFIX='/usr'
-INFODESC=\''My Little Ponies for your terminal'\'
-SHELL='bash'
-
-completions='completion/bash-completion.sh completion/fish-completion.fish completion/zsh-completion.zsh'
-shareDirs='ponies ttyponies quotes balloons extraponies extrattyponies'
-manFiles='manuals/manpage.6 manuals/manpage.es.6'
-licenseFiles='COPYING'
-
-
-
-oldInstalledFiles='bin/ponysaytruncater lib/ponysay/truncater lib/ponysay/list.pl lib/ponysay/linklist.pl lib/ponysay/pq4ps lib/ponysay/pq4ps.pl lib/ponysay/pq4ps-list lib/ponysay/pq4ps-list.pl bin/ponysay.py bin/ponythink.py'
-oldInstalledDirs='lib/ponysay share/ponies share/ttyponies bin/ponysaylist.pl'
-oldCompiledFiles='truncater ponysaytruncater ponysay.py.install'
-oldCompiledDirs=''
-
-installedFiles='bin/ponysay bin/ponythink doc/ponysay.pdf share/info/ponysay.info.gz share/info/ponythink.info.gz share/ponysay/ucsmap'
-installedDirs='share/ponysay lib/ponysay'
-compiledFiles='ponysay.info ponysay.info.gz ponysay.install ponysay.install~'
-compiledDirs='quotes'
-
-for man in $manFiles; do
- compiledFiles="$compiledFiles $man.gz"
-done
-for completion in $completions; do
- thinkfile="${completion%%.*}-think.${completion##*.}"
- compiledFiles="$compiledFiles $completion.install $thinkfile"
-done
-for file in $licenseFiles; do
- installedFiles="$installedFiles share/licenses/ponysay/$file"
-done
-
-
-
-function getcompdir()
-{
- if [ "$1" == 'bash' ]; then echo -n 'bash-completion/completions'
- elif [ "$1" == 'fish' ]; then echo -n 'fish/completions'
- elif [ "$1" == 'zsh' ]; then echo -n 'zsh/site-functions'
- fi
-}
-
-function getcompfile()
-{
- if [ "$1" == 'bash' ]; then echo -n "$2"
- elif [ "$1" == 'fish' ]; then echo -n "$2"'.fish'
- elif [ "$1" == 'zsh' ]; then echo -n '_'"$2"
- fi
-}
-
-
-
-installCache=' install-cache'
-installPdf=''
-installInfo=' install-info'
-installInfoInstall=' install-info-install'
-installMan=' install-man'
-installManEs=''
-installBash=' install-bash'
-installFish=' install-fish'
-installZsh=' install-zsh'
-
-for arg in "$@"; do
- opt="${arg%%=*}"
- val="${arg##*=}"
-
- if [ "$opt" = '--prefix' ]; then
- PREFIX="$val"
- elif [ "$opt" = '--info-desc' ]; then
- INFODESC=\'"$(sed -e s/\'/\''\\'\'\'/g <<<"$val")"\'
- elif [ "$opt" = '--shell' ]; then
- SHELL="$val"
-
- elif [ "$opt" = '--without-shared-cache' ]; then installCache=''
- elif [ "$opt" = '--with-pdf' ]; then installPdf=' install-pdf'
- elif [ "$opt" = '--without-info' ]; then installInfo=''
- elif [ "$opt" = '--without-info-install' ]; then installInfoInstall=''
- elif [ "$opt" = '--without-man' ]; then installMan=''
- elif [ "$opt" = '--with-man-es' ]; then installManEs=' install-man-es'
- elif [ "$opt" = '--without-bash' ]; then installBash=''
- elif [ "$opt" = '--without-fish' ]; then installFish=''
- elif [ "$opt" = '--without-zsh' ]; then installZsh=''
-
- elif [ "$opt" = "--everything" ]; then
- installCache=' install-cache'
- installPdf=' install-pdf'
- installInfo=' install-info'
- installInfoInstall=' install-info-install'
- installMan=' install-man'
- installManEs=' install-man-es'
- installBash=' install-bash'
- installFish=' install-fish'
- installZsh=' install-zsh'
-
- else
- echo "$0: error: option not recongised: $arg" >&2
- fi
-done
-
-if [ "$installInfo" = '' ]; then
- installInfoInstall=''
-fi
-
-compileMethods='core quotes manpages ponysaycompletion ponythinkcompletion'
-installMethods='install-min'"$installCache$installPdf$installInfo$installInfoInstall$installMan$installManEs$installBash$installFish$installZsh"
-if [ ! "$installInfo" = '' ]; then
- compileMethods="$compileMethods infomanual"
-fi
-
-
-
-function correctPrefix()
-{
- for file in "$@"; do
- echo -en '\t'
- echo 'sed -e '\''s/'\''\'\'''\''\/usr/'\''\'\''"$(SED_PREFIX)"'\''/g'\'' < "'"$file"'" > "'"$file"'.install"'
- done
-}
-
-function gzCompress()
-{
- for file in "$@"; do
- echo -en '\t'
- echo 'gzip -9 -f < "'"$file"'" > "'"$file"'".gz'
- done
-}
-
-function thinkCompletion()
-{
- for file in "$@"; do
- echo -en '\tsed'
- echo -n ' -e '\''s/ponysay/ponythink/g'\'
- echo -n ' < "'"$file"'.install" | sed'
- echo -n ' -e '\''s/\/ponythink\//\/ponysay\//g'\'
- echo -n ' -e '\''s/\\\/ponythink\\\//\\\/ponysay\\\//g'\'
- thinkfile="${file%%.*}-think.${file##*.}"
- echo ' > "'"$thinkfile"'"'
- done
-}
-
-
-
-echo "PREFIX = $PREFIX, edit with option --prefix=PREFIX"
-echo "INFODESC = $INFODESC, edit with option --info-desc=INFODESC"
-echo "SHELL = $SHELL, edit with option --shell=PREFIX"
-echo
-[ ! "$installCache" = '' ] && echo "Installing shared cache, add option --without-shared-cache to skip"
-[ ! "$installPdf" = '' ] && echo "Installing PDF manual"
-[ ! "$installInfo" = '' ] && echo "Installing info manual, add option --without-info to skip"
-[ ! "$installInfoInstall" = '' ] && echo "Installing info manual with info-install, add option --without-info to skip"
-[ ! "$installMan" = '' ] && echo "Installing English manpage manual, add option --without-man to skip"
-[ ! "$installManEs" = '' ] && echo "Installing Spanish manpage manual"
-[ ! "$installBash" = '' ] && echo "Installing autocompletion for GNU Bash, add option --without-bash to skip"
-[ ! "$installFish" = '' ] && echo "Installing autocompletion for fish, add option --without-fish to skip"
-[ ! "$installZsh" = '' ] && echo "Installing autocompletion for zsh, add option --without-zsh to skip"
-echo
-[ ! "$installCache" = '' ] || echo "Skipping shared cache"
-[ ! "$installPdf" = '' ] || echo "Skipping PDF manual, add option --with-pdf to install"
-[ ! "$installInfo" = '' ] || echo "Skipping info manual"
-[ ! "$installInfoInstall" = '' ] || echo "Skipping info manual installation with info-install"
-[ ! "$installMan" = '' ] || echo "Skipping English manpage manual"
-[ ! "$installManEs" = '' ] || echo "Skipping Spanish manpage manual, add option --with-man-es to install"
-[ ! "$installBash" = '' ] || echo "Skipping autocompletion for GNU Bash"
-[ ! "$installFish" = '' ] || echo "Skipping autocompletion for fish"
-[ ! "$installZsh" = '' ] || echo "Skipping autocompletion for zsh"
-echo
-
-
-
function makeMakefile()
{
- echo 'SHELL='\'"$SHELL"\'
- echo 'PREFIX='\'"$PREFIX"\'
- echo 'INSTALLDIR="$(DESTDIR)$(PREFIX)"'
- echo 'SED_PREFIX=$$(sed -e '\''s/\//\\\//g'\'' <<<$(PREFIX))'
- echo
- echo 'default: '"$compileMethods"
- echo
- echo 'all: core quotes manpages infomanual ponysaycompletion ponythinkcompletion'
- echo
-
- echo "core:"
- correctPrefix 'ponysay'
- echo -en '\t' ; echo 'if (( `env python --version 2>&1 | cut -d " " -f 2 | cut -d "." -f 1` < 3 )); then \'
- echo -en '\t' ; echo ' mv "ponysay.install" "ponysay.install~" ;\'
- echo -en '\t' ; echo ' sed -e '\''s/bin\/env python/bin\/env python3/'\'' < "ponysay.install~" > "ponysay.install" ;\'
- echo -en '\t' ; echo 'fi'
- echo -en '\t' ; echo 'chmod 755 "ponysay.install"'
- echo
-
- echo "quotes:"
- echo -en '\t' ; echo 'mkdir -p quotes'
- echo -en '\t' ; echo 'for ponies in $$(cat ponyquotes/ponies); do \'
- echo -en '\t' ; echo ' for pony in $$(echo $$ponies | sed -e '\''s/+/ /g'\''); do \'
- echo -en '\t' ; echo ' echo '\''Generating quote files for '\''"$$pony"; \'
- echo -en '\t' ; echo ' for file in $$(ls "ponyquotes/" | grep "$$pony\\.*"); do \'
- echo -en '\t' ; echo ' if [ -f "ponyquotes/$$file" ]; then \'
- echo -en '\t' ; echo ' cp "ponyquotes/"$$file "quotes/"$$ponies'\''.'\''$$(echo $$file | cut -d '\''.'\'' -f 2) \'
- echo -en '\t' ; echo ';fi;done;done;done'
- echo
-
- echo 'manpages:'
- gzCompress $manFiles
- echo
-
- echo 'infomanual:'
- echo -en '\t'
- echo 'makeinfo "manuals/ponysay.texinfo"'
- gzCompress 'ponysay.info'
- echo
-
- echo 'ponysaycompletion:'
- correctPrefix $completions
- echo
-
- echo 'ponythinkcompletion: ponysaycompletion'
- thinkCompletion $completions
- echo
-
- echo 'install-min: core quotes'
- echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/ponysay/"'
- for dir in $shareDirs; do
- echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/ponysay/'"$dir"'"'
- echo -en '\t' ; echo 'cp -P "'"$dir"'/"* "$(INSTALLDIR)/share/ponysay/'"$dir"'/"'
- done
- echo
- echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/bin/"'
- echo -en '\t' ; echo 'install "ponysay.install" "$(INSTALLDIR)/bin/ponysay"'
- echo -en '\t' ; echo 'ln -sf "ponysay" "$(INSTALLDIR)/bin/ponythink"'
- echo
- echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/ponysay/"'
- echo -en '\t' ; echo 'install "share/ucsmap" "$(INSTALLDIR)/share/ponysay/ucsmap"'
- echo
- echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/licenses/ponysay/"'
- for file in $licenseFiles; do
- echo -en '\t'
- echo 'install "'"$file"'" "$(INSTALLDIR)/share/licenses/ponysay/'"$file"'"'
+ params=''
+ for arg in "$@"; do
+ params="$params '$(echo $arg | sed -e "s/'/'\\''/g")'"
done
- echo
- echo 'install-cache:'
- echo -en '\t' ; echo 'mkdir -p "$(DESTDIR)/var/cache/ponysay/"'
- echo -en '\t' ; echo 'chmod 777 "$(DESTDIR)/var/cache/ponysay/"'
+ echo 'PARAMS ='"$params"
echo
-
- for completion in $completions; do
- shell="${completion##*/}"
- shell="${shell%%-*}"
- thinkfile="${completion%%.*}-think.${completion##*.}"
- shelldir='share/'"$(getcompdir $shell)"'/'
- echo 'install-'"$shell"': ponysaycompletion ponythinkcompletion'
- echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/'"$shelldir"'"'
- echo -en '\t' ; echo 'install "'"$completion"'" "$(INSTALLDIR)/'"$shelldir$(getcompfile $shell ponysay)"'"'
- echo -en '\t' ; echo 'install "'"$thinkfile"'" "$(INSTALLDIR)/'"$shelldir$(getcompfile $shell ponythink)"'"'
- echo
- installedFiles="$installedFiles $shelldir$(getcompfile $shell ponysay) $shelldir$(getcompfile $shell ponythink)"
+ echo -e 'default: all\n'
+ echo -e 'all: build\n'
+ for func in $(echo 'build' 'prebuilt' 'install' 'uninstall' 'uninstall-old' 'clean' 'clean-old' 'view'); do
+ echo -e "$func"':\n\t./setup.py $(PARAMS) '"$func"'\n'
done
- echo 'install-pdf:'
- echo -en '\t'
- echo 'install "ponysay.pdf" "$(INSTALLDIR)/doc/ponysay.pdf"'
- echo
-
- echo 'install-info: infomanual'
- echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/info"'
- echo -en '\t' ; echo 'install "ponysay.info.gz" "$(INSTALLDIR)/share/info/ponysay.info.gz"'
- echo -en '\t' ; echo 'install "ponysay.info.gz" "$(INSTALLDIR)/share/info/ponythink.info.gz"'
- echo
-
- echo 'install-info-install: install-info'
- echo -en '\t' ; echo 'install-info --dir-file="$(INSTALLDIR)/share/info/dir" --entry="Miscellaneous" --description='"$INFODESC"' "$(INSTALLDIR)/share/info/ponysay.info.gz"'
- echo -en '\t' ; echo 'install-info --dir-file="$(INSTALLDIR)/share/info/dir" --entry="Miscellaneous" --description='"$INFODESC"' "$(INSTALLDIR)/share/info/ponythink.info.gz"'
- echo
-
- for man in $manFiles; do
- lang="${man##*manpage}"
- lang="${lang%%.6}"
- mandir="${lang/\.//}"
- echo 'install-man'"${lang/\./-}"': manpages'
- echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/man'"$mandir"'/man6"'
- echo -en '\t' ; echo 'install "'"$man"'.gz" "$(INSTALLDIR)/share/man'"$mandir"'/man6/ponysay.6.gz"'
- echo -en '\t' ; echo 'ln -sf "ponysay.6.gz" "$(INSTALLDIR)/share/man'"$mandir"'/man6/ponythink.6.gz"'
- echo
- installedFiles="$installedFiles share/man$mandir/man6/ponysay.6.gz share/man$mandir/man6/ponythink.6.gz"
- done
-
- echo
- echo 'install: '"$installMethods"
- echo -en '\t' ; echo '@echo -e \\n\\n\'
- cat <<EOF
-'/--------------------------------------------------\\\\\n'\\
-'| ___ |\\n'\\
-'| / (_) o |\\n'\\
-'| \\__ _ _ __ |\\n'\\
-'| / / |/ | | / \\_| | |\\n'\\
-'| \\___/ | |_/|/\\__/ \\_/|/ |\\n'\\
-'| /| /| |\\n'\\
-'| \\| \\| |\\n'\\
-'| ____ |\\n'\\
-'| | _ \\ ___ _ __ _ _ ___ __ _ _ _ |\\n'\\
-'| | |_) |/ _ \\ | '\\''_ \\ | | | |/ __| / _\` || | | | |\n'\\
-'| | __/| (_) || | | || |_| |\\__ \\| (_| || |_| | |\\n'\\
-'| |_| \\___/ |_| |_| \\__, ||___/ \\__,_| \\__, | |\\n'\\
-'| |___/ |___/ |\\n'\\
-'\\\\--------------------------------------------------/'
-EOF
- echo 'uninstall:'
- echo -en '\t' ; echo 'if [ -d "$/var/cache/ponysay" ]; then rm -rf "$/var/cache/ponysay"; fi'
- for old in $installedDirs; do
- echo -en '\t'
- echo 'if [ -d "$(INSTALLDIR)/'"$old"'" ]; then rm -rf "$(INSTALLDIR)/'"$old"'"; fi'
- done
- for old in $installedFiles; do
- echo -en '\t'
- echo 'if [ -f "$(INSTALLDIR)/'"$old"'" ]; then unlink "$(INSTALLDIR)/'"$old"'"; fi'
- done
- echo
-
- echo 'clean:'
- for old in $compiledDirs; do
- echo -en '\t'
- echo 'if [ -d "'"$old"'" ]; then rm -rf "'"$old"'"; fi'
- done
- for old in $compiledFiles; do
- echo -en '\t'
- echo 'if [ -f "'"$old"'" ]; then rm -f "'"$old"'"; fi'
- done
- echo
-
- echo 'uninstall-old:'
- for old in $oldInstalledDirs; do
- echo -en '\t'
- echo 'if [ -d "$(INSTALLDIR)/'"$old"'" ]; then rm -rf "$(INSTALLDIR)/'"$old"'"; fi'
- done
- for old in $oldInstalledFiles; do
- echo -en '\t'
- echo 'if [ -f "$(INSTALLDIR)/'"$old"'" ]; then unlink "$(INSTALLDIR)/'"$old"'"; fi'
- done
- echo
-
- echo 'clean-old:'
- for old in $oldCompiledDirs; do
- echo -en '\t'
- echo 'if [ -d "'"$old"'" ]; then rm -rf "'"$old"'"; fi'
- done
- for old in $oldCompiledFiles; do
- echo -en '\t'
- echo 'if [ -f "'"$old"'" ]; then rm -f "'"$old"'"; fi'
- done
- echo
-
cat <<EOF
## Scripts for maintainers
@@ -394,5 +58,6 @@ pdfmanual:
EOF
}
-makeMakefile > Makefile
+
+makeMakefile "$@" > Makefile