blob: af92e2640e080122ac85d4b26c2105903cfb632a [file] [log] [blame]
#**************************************************************
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
#**************************************************************
# this awk script mangles makedepend output for a single object file
# usage:
# awk -f .../processdeps.awk \
# -v OUTDIR=outdir \
# -v SRCDIR=srcdir \
# -v WORKDIR=workdir \
# -v REPODIR=repodir \
# -v OBJECTFILE=objectfile
# called like this the script will read from stdin
# and write to stdout. It will:
# - replace the objectfile with the one given on the commandline
# - normalize paths to mixed paths (replacing all \ with /)
# - replace the string given as WORKDIR with $(WORKDIR)/
# - replace the string given as OUTDIR with $(OUTDIR)/
# - replace the string given as SRCDIR with $(SRCDIR)/
# - replace the string given as REPODIR with $(REPODIR)/
# - translates absolute mixed windows paths to cygwin paths by
# substituting a path starting with X:... to /cygdrive/X/...
function mangle_path(path) {
gsub("\\\\", "/", path);
if( path ~ /^[a-zA-Z]:/ )
path = tolower(substr(path,0,1)) substr(path,2);
gsub(WORKDIR, "$(WORKDIR)/", path);
gsub(OUTDIR, "$(OUTDIR)/", path);
gsub(SRCDIR, "$(SRCDIR)/", path);
gsub(REPODIR, "$(REPODIR)/", path);
if( path ~ /^[a-zA-Z]:/ )
path = "/cygdrive/" tolower(substr(path,0,1)) substr(path,3);
return path;
}
BEGIN {
WORKDIR = tolower(substr(WORKDIR,0,1)) substr(WORKDIR,2);
OUTDIR = tolower(substr(OUTDIR,0,1)) substr(OUTDIR,2);
SRCDIR = tolower(substr(SRCDIR,0,1)) substr(SRCDIR,2);
REPODIR = tolower(substr(REPODIR,0,1)) substr(REPODIR,2);
# print "# WORKDIR=" WORKDIR;
# print "# OUTDIR=" OUTDIR;
# print "# SRCDIR=" SRCDIR;
# print "# REPODIR=" REPODIR;
print mangle_path(OBJECTFILE) ": \\";
}
/^[^#]/ {
print "\t" mangle_path($2) " \\";
}
END {
print "\n";
}