Mike Gerwitz

Activist for User Freedom

aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gen-make')
-rwxr-xr-xtools/gen-make111
1 files changed, 0 insertions, 111 deletions
diff --git a/tools/gen-make b/tools/gen-make
deleted file mode 100755
index 48f53ba..0000000
--- a/tools/gen-make
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/bin/bash
-#
-# Generates Makefile containing dependencies for each package
-#
-# Copyright (C) 2016 LoVullo Associates, Inc.
-#
-# 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/>.
-##
-
-# windows machines may not have the tools to resolve a path, so let's do so
-# ourselves (TODO: there's better (and more performant) ways of doing this than
-# repeated string replacements); TODO: ./
-resolv-path()
-{
- # no need to do anything if the string does not contain a parent dir reference
- # (we use this convoluted string replacement check for woe32/64 to prevent
- # additional spawns (e.g. sed) that would slow us down and because =~ is not
- # properly supported in msys
- [[ "$1" != "${1/..\//}"a ]] || {
- echo "$1"
- return
- }
-
- local path=
- while read name; do
- if [ "$name" == .. ]; then
- [ -n "$path" ] || {
- echo "warning: will not resolve $1" >&2
- return 5
- }
-
- path="${path%/*}"
- continue
- fi
-
- path="$path/$name"
- done <<< "${1//\//$'\n'}"
-
- # echo path without leading /
- echo -n "${path:1}"
-}
-
-
-# rule for building
-[ -z "$GEN_MAKE" ] && {
- echo "%.xmlo:: %.tmp"
- echo -e "\t@rm -f \$@ \$<"
- [ -n "$xmlo_cmd" ] \
- && echo -e "\t$xmlo_cmd" \
- || echo -e "\ttouch \$@"
-
- echo "%.xmlo:: %.xml | prexmlo"
- [ -n "$xmlo_cmd" ] \
- && echo -e "\t$xmlo_cmd" \
- || echo -e "\ttouch \$@"
-
- export GEN_MAKE="$( pwd )/$0"
- exec "$GEN_MAKE" "$@"
-}
-
-until [ $# -eq 0 ]; do (
- path="${1%%/}"
- echo "[gen-make] scanning $path" >&2
-
- cd "$( basename $path )/" || exit $?
-
- deps=$( find -maxdepth 1 -iname '*.dep' )
- for dpath in $deps; do
- # equivalent to basename command; use this since spawning processes on
- # windoze is slow as shit (originally we did find -exec bashename)
- d="${dpath##*/}"
-
- echo "[gen-make] found $path/$d" >&2
- echo -n "$path/${d%.*}.xmlo:"
-
- # output deps
- while read dep; do
- # if the first character is a slash, then it's relative to the project
- # root---the resolution has already been done for us!
- if [ "${dep:0:1}" == '/' ]; then
- echo -n " ${dep:1}.xmlo"
- continue
- fi
-
- echo -n ' '
- resolv-path "$path/$dep.xmlo"
- done < "$d"
-
- echo
- done
-
- # recurse on every subdirectory
- for p in */; do
- [ "$p" == ./ -o "$p" == ../ ] && continue
- [ ! -d "$p" ] || "$GEN_MAKE" "$path/$p" || {
- echo "fatal: failed to recurse on $( pwd )/$path/$p" >&2
- exit 1
- }
- done
-); shift; done