diff options
-rw-r--r-- | solenv/gbuild/platform/WNT_INTEL_GCC.mk | 10 | ||||
-rw-r--r-- | solenv/gbuild/platform/com_MSC_class.mk | 20 | ||||
-rw-r--r-- | solenv/gbuild/processdeps.awk | 73 | ||||
-rw-r--r-- | soltools/mkdepend/def.h | 1 | ||||
-rw-r--r-- | soltools/mkdepend/main.c | 12 | ||||
-rw-r--r-- | soltools/mkdepend/pr.c | 34 |
6 files changed, 52 insertions, 98 deletions
diff --git a/solenv/gbuild/platform/WNT_INTEL_GCC.mk b/solenv/gbuild/platform/WNT_INTEL_GCC.mk index 2acbc6ca0318..8df958f12c2f 100644 --- a/solenv/gbuild/platform/WNT_INTEL_GCC.mk +++ b/solenv/gbuild/platform/WNT_INTEL_GCC.mk @@ -362,13 +362,9 @@ $(call gb_Helper_abbreviate_dirs,\ $(INCLUDE) \ $(DEFS) \ $(RCFILE) \ - -f - \ - | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ - -v OBJECTFILE=$(3) \ - -v OUTDIR=$(OUTDIR)/ \ - -v WORKDIR=$(WORKDIR)/ \ - -v SRCDIR=$(SRCDIR)/ \ - > $(1)) + -o .res \ + -p $(dir $(3)) \ + -f $(1)) endef else gb_WinResTarget__command_target = diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk index 92b8e03a384a..94db603d6c13 100644 --- a/solenv/gbuild/platform/com_MSC_class.mk +++ b/solenv/gbuild/platform/com_MSC_class.mk @@ -484,13 +484,9 @@ $(call gb_Helper_abbreviate_dirs,\ $(INCLUDE) \ $(DEFS) \ $(2) \ - -f - \ - | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ - -v OBJECTFILE=$(call gb_SrsPartTarget_get_target,$(1)) \ - -v OUTDIR=$(OUTDIR)/ \ - -v WORKDIR=$(WORKDIR)/ \ - -v SRCDIR=$(SRCDIR)/ \ - > $(call gb_SrsPartTarget_get_dep_target,$(1))) + -o .src \ + -p $(dir $(call gb_SrsPartTarget_get_target,$(1))) \ + -f $(call gb_SrsPartTarget_get_dep_target,$(1))) endef else gb_SrsPartTarget__command_target = @@ -532,13 +528,9 @@ $(call gb_Helper_abbreviate_dirs,\ $(INCLUDE) \ $(DEFS) \ $(RCFILE) \ - -f - \ - | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ - -v OBJECTFILE=$(3) \ - -v OUTDIR=$(OUTDIR)/ \ - -v WORKDIR=$(WORKDIR)/ \ - -v SRCDIR=$(SRCDIR)/ \ - > $(1)) + -o .res \ + -p $(dir $(3)) \ + -f $(1)) endef else gb_WinResTarget__command_target = diff --git a/solenv/gbuild/processdeps.awk b/solenv/gbuild/processdeps.awk deleted file mode 100644 index e564b0babd76..000000000000 --- a/solenv/gbuild/processdeps.awk +++ /dev/null @@ -1,73 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org 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 Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 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 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)/ -# - 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); - 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); -# print "# WORKDIR=" WORKDIR; -# print "# OUTDIR=" OUTDIR; -# print "# SRCDIR=" SRCDIR; - print mangle_path(OBJECTFILE) ": \\"; -} - -/^[^#]/ { - print "\t" mangle_path($2) " \\"; -} - -END { - print "\n"; -} diff --git a/soltools/mkdepend/def.h b/soltools/mkdepend/def.h index 1ec838231d68..1c0e91a811c9 100644 --- a/soltools/mkdepend/def.h +++ b/soltools/mkdepend/def.h @@ -181,6 +181,7 @@ void add_include(struct filepointer *filep, struct inclist *file, int match(register char *str, register char **list); void recursive_pr_include(register struct inclist *head, register char *file, register char *base); +void recursive_pr_dummy(register struct inclist *head, register char *file); void inc_clean(); void fatalerr(char *, ...); diff --git a/soltools/mkdepend/main.c b/soltools/mkdepend/main.c index 5beb8fdf981e..149bae1e62da 100644 --- a/soltools/mkdepend/main.c +++ b/soltools/mkdepend/main.c @@ -461,6 +461,9 @@ int main(argc, argv) freefile(filecontent); recursive_pr_include(ip, ip->i_file, base_name(*fp)); + if (printed) + fwrite("\n\n", 2, 1, stdout); + recursive_pr_dummy(ip, ip->i_file); inc_clean(); } if (printed) @@ -660,6 +663,14 @@ void redirect(line, makefile) char *line, *makefile; { + FILE *fdout; + fdout = freopen(makefile, "wb", stdout); // binary mode please + if (fdout == NULL) + fatalerr("cannot open \"%s\"\n", makefile); + (void) line; + + // don't need any of that nonsense +#if 0 struct stat st; FILE *fdin, *fdout; char backup[ BUFSIZ ], @@ -724,6 +735,7 @@ void redirect(line, makefile) fchmod(fileno(fdout), st.st_mode); #endif /* USGISH */ fclose(fdin); +#endif } void fatalerr(char *msg, ...) diff --git a/soltools/mkdepend/pr.c b/soltools/mkdepend/pr.c index f472f28ebd75..e6200781b465 100644 --- a/soltools/mkdepend/pr.c +++ b/soltools/mkdepend/pr.c @@ -79,6 +79,29 @@ void add_include(struct filepointer *filep, struct inclist *file, struct inclist } } +void pr_dummy(ip) + register struct inclist *ip; +{ + fwrite(ip->i_file, strlen(ip->i_file), 1, stdout); + fwrite(" :\n\n", 4, 1, stdout); +} + +void recursive_pr_dummy(head, file) + register struct inclist *head; + register char *file; +{ + register int i; + + if (head->i_marked == 2) + return; + head->i_marked = 2; // it's a large boolean... + if (head->i_file != file) + pr_dummy(head, file); + for (i=0; i<head->i_listlen; i++) + recursive_pr_dummy(head->i_list[ i ], file); +} + + void recursive_pr_include(head, file, base) register struct inclist *head; register char *file, *base; @@ -105,16 +128,19 @@ size_t pr(ip, file, base) char buf[ BUFSIZ ]; printed = TRUE; - len = (int)strlen(ip->i_file)+1; - if (current_len + len > width || file != lastfile) { + len = (int)strlen(ip->i_file)+4; + if (file != lastfile) { lastfile = file; - sprintf(buf, "\n%s%s%s: %s", objprefix, base, objsuffix, + sprintf(buf, "\n%s%s%s: \\\n %s", objprefix, base, objsuffix, ip->i_file); len = current_len = (int)strlen(buf); } else { buf[0] = ' '; - strcpy(buf+1, ip->i_file); + buf[1] = '\\'; + buf[2] = '\n'; + buf[3] = ' '; + strcpy(buf+4, ip->i_file); current_len += len; } ret = fwrite(buf, len, 1, stdout); |