#************************************************************** # # 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"; }