aboutsummaryrefslogtreecommitdiff
path: root/development/makedepf90/01-adds-B-PATH-option.patch
diff options
context:
space:
mode:
authorWilly Sudiarto Raharjo <willysr@slackbuilds.org>2017-07-22 17:02:05 +0700
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2017-07-26 18:29:01 +0700
commit0b7208c13602e0d03b2b55b40c11e109e193c5b5 (patch)
treed689dc227fac3ab6145b0a50b6a797c70e95709e /development/makedepf90/01-adds-B-PATH-option.patch
parent0afce8ec4637646ad5fbbcd627503aac812307fe (diff)
development/makedepf90: Removed (Upstream is gone).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'development/makedepf90/01-adds-B-PATH-option.patch')
-rw-r--r--development/makedepf90/01-adds-B-PATH-option.patch243
1 files changed, 0 insertions, 243 deletions
diff --git a/development/makedepf90/01-adds-B-PATH-option.patch b/development/makedepf90/01-adds-B-PATH-option.patch
deleted file mode 100644
index f1c217ea0f464..0000000000000
--- a/development/makedepf90/01-adds-B-PATH-option.patch
+++ /dev/null
@@ -1,243 +0,0 @@
-From 76a2fc5c3fa8edb17a6e9e15d5ef519768f9ccff Mon Sep 17 00:00:00 2001
-From: Jason Graham <jason.graham@jhuapl.edu>
-Date: Wed, 18 Nov 2015 01:37:05 -0500
-Subject: [PATCH] makedepf90: Adds the '-B PATH' option to mirror src directory
- structure in object PATH.
-
-When working on one of my projects, I wanted to preserve the directory
-structure used in the source tree within the objects PATH. The main
-issue was naming collisions with the '-b' option, since I have
-sub-directories within the source tree and some of the files have the
-same name resulting in the same objects within PATH. So '-B' behaves
-similarly to '-b', but places resulting objects within PATH using the
-same directory structure as the source files. The motivation for this
-addition is to be able to have equivalent source file names contained
-within different directories and still use the same top level objects
-PATH.
----
- global.h | 3 +++
- main.c | 31 ++++++++++++++++++++++++-------
- makedepf90.1 | 11 +++++++++--
- utils.c | 14 ++++++++++----
- utils.h | 3 ++-
- 5 files changed, 48 insertions(+), 14 deletions(-)
-
-diff --git a/global.h b/global.h
-index 1704f82..64a627e 100644
---- a/global.h
-+++ b/global.h
-@@ -1,5 +1,6 @@
- /*
- * Copyright (C) 2000-2005 Erik Edelmann <Erik.Edelmann@iki.fi>
-+ * Copyright (C) 2015 Jason Graham <jason.graham@jhuapl.edu>
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General Public
-@@ -68,6 +69,8 @@ typedef struct {
- char *link_rule;
- bool coco; /* Look for coco set-files */
- bool obj_dir_set; /* Option -b obj_dir was used */
-+ bool obj_dir_mirror; /* Option -B obj_dir was used; turns on
-+ mirroring of src directory structure */
- char *obj_dir; /* Directory set by option -b */
- bool src_dep; /* List the source file in the dependencys */
- bool src_path_set; /* option -I was used */
-diff --git a/main.c b/main.c
-index e73bdef..d78f355 100644
---- a/main.c
-+++ b/main.c
-@@ -1,5 +1,6 @@
- /*
- * Copyright (C) 2000-2006 Erik Edelmann <Erik.Edelmann@iki.fi>
-+ * Copyright (C) 2015 Jason Graham <jason.graham@jhuapl.edu>
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General Public
-@@ -86,6 +87,8 @@ static const char helpstring[] =
- "\n-coco\tLook for coco set-files. Implies '-free'.\n"
- "\n-D NAME\tDefine pre-processor symbol 'NAME'\n"
- "\n-b PATH\tAssume object files are placed in PATH.\n"
-+ "\n-B PATH\tAssume object files are placed in PATH using the same\n"
-+ "\tdirectory structure as the source files.\n"
- "\n-nosrc\tRemove the explicit dependency on the source file\n"
- "\n-I PATH1:PATH2:...\n\tSearch path(s) for source files\n"
- "\n\nReport bugs to erik.edelmann@iki.fi\n";
-@@ -143,6 +146,7 @@ int main (int argc, char **argv)
- options.link_rule = (char *)LINK_RULE_DEFAULT;
- options.coco = false;
- options.obj_dir_set = false;
-+ options.obj_dir_mirror = false;
- options.obj_dir = "";
- options.src_dep = true;
- options.ignore_mods = NULL;
-@@ -276,9 +280,18 @@ int main (int argc, char **argv)
- if (!list_find(macrolist, mac, &macrocmp))
- macrolist = list_prepend(macrolist, mac);
-
-- } else if (strncmp(argv[i], "-b", 2) == 0) {
-+ } else if (strncmp(argv[i], "-b", 2) == 0 ||
-+ strncmp(argv[i], "-B", 2) == 0 ) {
-+
-+ /* Construct custom error message */
-+ char err_msg[32];
-+ char _argv[3];
-+
-+ strncpy(_argv,argv[i],2); _argv[2]='\0';
-+ snprintf(err_msg,sizeof(err_msg),"Option '%s' needs argument",_argv);
-+
- if (strlen(argv[i]) == 2) {
-- if (i == argc - 1) fatal_error("Option '-b' needs argument");
-+ if (i == argc - 1) fatal_error(err_msg);
- options.obj_dir = xstrdup(argv[++i]);
- } else
- if (argv[i][2] == '=') {
-@@ -292,7 +305,11 @@ int main (int argc, char **argv)
- strcat(options.obj_dir, "/");
- }
-
-- options.obj_dir_set = true;
-+ options.obj_dir_set = true;
-+ /* Have to compare with '_argv' since 'i' may be modified above */
-+ if(strncmp(_argv, "-B", 2) == 0) {
-+ options.obj_dir_mirror = true;
-+ }
-
- } else if (strncmp(argv[i], "-I", 2) == 0) {
- int jp;
-@@ -383,7 +400,7 @@ int main (int argc, char **argv)
- printf("FOBJ=");
- for (h1 = obj; h1; h1 = h1->next)
- if (options.obj_dir_set)
-- printf("%s ", set_path(h1->data, options.obj_dir));
-+ printf("%s ", set_path(h1->data, options.obj_dir, options.obj_dir_mirror));
- else
- printf("%s ", (char *)h1->data);
- printf("\n\n%s: $(FOBJ)\n\t%s\n\n", options.exe_name,options.link_rule);
-@@ -402,8 +419,8 @@ int main (int argc, char **argv)
- /* Targets */
- for (h2 = dep->targets; h2; h2 = h2->next)
- if (options.obj_dir_set)
-- printf("%s ", set_path(h2->data, options.obj_dir));
-- else
-+ printf("%s ", set_path(h2->data, options.obj_dir, options.obj_dir_mirror));
-+ else
- printf("%s ", (char *)h2->data);
-
- printf(": ");;
-@@ -430,7 +447,7 @@ int main (int argc, char **argv)
- } else {
- if (options.obj_dir_set)
- printf("%s ",
-- set_path(mod->modfile_name, options.obj_dir));
-+ set_path(mod->modfile_name, options.obj_dir, options.obj_dir_mirror));
- else
- printf("%s ", mod->modfile_name);
- }
-diff --git a/makedepf90.1 b/makedepf90.1
-index 49bcfb7..738ce66 100644
---- a/makedepf90.1
-+++ b/makedepf90.1
-@@ -1,5 +1,6 @@
- .\"
- .\" Copyright (C) 2000--2003 Erik Edelmann <eedelman@acclab.helsinki.fi>
-+.\" Copyright (C) 2015 Jason Graham <jason.graham@jhuapl.edu>
- .\"
- .\" This program is free software; you can redistribute it
- .\" and/or modify it under the terms of the GNU General Public
-@@ -18,7 +19,7 @@
- .\" Boston, MA 02111-1307 USA
- .\"
- .\" $Format: ".TH makedepf90 1 \"$Date$\""$
--.TH makedepf90 1 "Thu, 06 Dec 2001 23:28:54 +0200"
-+.TH makedepf90 1 "Tue, 17 Nov 2015 23:21:02 -0500"
-
- .SH NAME
- makedepf90 \- creates Makefile dependency list for Fortran source files.
-@@ -45,7 +46,7 @@ makedepf90 \- creates Makefile dependency list for Fortran source files.
- .RB [ \-coco ]
- .RB [ \-D
- .IR NAME ]
--.RB [ \-b
-+.RB [ \-b | \-B
- .IR "path" ]
- .RB [ \-I
- .IR "PATH1:PATH2:..." ]
-@@ -211,6 +212,12 @@ Dependency tree and link rule will assume objects are placed in \fIpath\fP.
- This is useful if the build places object files in a different directory than
- the source files.
- .TP
-+.BI \-B " path"
-+Dependency tree and link rule will assume objects are placed in \fIpath\fP using
-+the same directory structure as the source files. This is useful if the build
-+places object files in a different directory than the source files and the
-+source directory structure is needed to avoid object name collisions.
-+.TP
- .BI \-I " list-of-paths"
- Look for source/include files in the \fIlist-of-paths\fP, if not found in
- current working directory. Here, \fIlist-of-paths\fP is a colon separated
-diff --git a/utils.c b/utils.c
-index 08f6905..e5d3aff 100644
---- a/utils.c
-+++ b/utils.c
-@@ -1,5 +1,6 @@
- /*
- * Copyright (C) 2000-2005 Erik Edelmann <Erik.Edelmann@iki.fi>
-+ * Copyright (C) 2015 Jason Graham <jason.graham@jhuapl.edu>
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General Public
-@@ -70,22 +71,27 @@ char *replace_suffix(const char *filename, const char *new_suffix)
-
-
- /* If filename has no path, append 'path' to the beginning of the filename,
-- * else replace the existing path (everything before the first '/') with 'path'.
-+ * else replace the existing path if 'mirror=false' (everything before the first '/') with 'path' or
-+ * prepend 'path' in the case that 'mirror=true'
- */
-
--char *set_path(const char *filename, const char *path)
-+char *set_path(const char *filename, const char *path, const bool mirror)
- {
- char *rs;
- int fl, n, pl, nl;
-
- pl = strlen(path);
-
-+
- fl = n = strlen(filename);
-- while (filename[n] != '/' && n >= 0) n--;
-+ if( !mirror )
-+ while (filename[n] != '/' && n >= 0) n--;
-+ else
-+ n=-1;
- nl = fl - n - 1;
-
- if (n == -1) {
-- /* if there was no '/' */
-+ /* if there was no '/' or 'mirror=true' */
- rs = (char *)xmalloc((fl+pl+2)*sizeof(char));
- strcpy(rs, path);
- strcat(rs, filename);
-diff --git a/utils.h b/utils.h
-index 643d276..ca932ef 100644
---- a/utils.h
-+++ b/utils.h
-@@ -1,5 +1,6 @@
- /*
- * Copyright (C) 2000-2005 Erik Edelmann <Erik.Edelmann@iki.fi>
-+ * Copyright (C) 2015 Jason Graham <jason.graham@jhuapl.edu>
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General Public
-@@ -21,7 +22,7 @@
- #define UTILS_H_
-
- char *replace_suffix (const char *filename, const char *new_suffix);
--char *set_path (const char *filename, const char *path);
-+char *set_path (const char *filename, const char *path, const bool mirror);
- char *remove_citation (const char *s);
- char *expand_rule(const char *rule, const char *srcfile);
- FILE *open_src_file (const char *fname, const List *path);
---
-1.8.4
-