File: ac_define_sub_path.html

package info (click to toggle)
autoconf-archive 20090426-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 5,692 kB
  • ctags: 12
  • sloc: sh: 619; makefile: 22
file content (145 lines) | stat: -rw-r--r-- 5,153 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
 <head>
  <title>
   Autoconf Macro: ac_define_sub_path
  </title>
  <link rel="stylesheet" type="text/css" href="autoconf-archive.css">
  <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
 </head>
 <body>
  <table summary="web navigation" style="width:100%;">
   <tbody>
    <tr>
     <td style="width:33%;" align="center" valign="top">
      <a href="macros-by-category.html">Macros by Category</a>
     </td>
     <td style="width:33%;" align="center" valign="top">
      <a href=
      "http://git.cryp.to/autoconf-archive/history/master:/ac_define_sub_path.m4">
      Revision History</a>
     </td>
     <td style="width:33%;" align="center" valign="top">
      <form method="get" action="http://www.google.com/search">
       <div>
        <input name="sitesearch" value="autoconf-archive.cryp.to" type=
        "hidden">Search: <input name="q" maxlength="255" type="text">
       </div>
      </form>
     </td>
    </tr>
   </tbody>
  </table>
  <hr>
  <h1>
   ac_define_sub_path
  </h1>
  <h2>
   SYNOPSIS
  </h2>
  <p class="indent" style="white-space:nowrap;">
   <code>AC_DEFINE_SUB_PATH(DEFNAME, varname, description)</code>
  </p>
  <h2>
   DESCRIPTION
  </h2>
  <div class="indent">
   <p>
    Look at varname and detect the subpath that it contains relative to
    $prefix/$exec_prefix. If the path is indeed relative to
    $prefix/$exec_prefix, then a single "./" (dotslash) is prepended, otherwise
    it can be seen as an absolute path that can not be moved, which you
    possibly do for "/etc" files, or even those ending up in "/lib/modules" or
    "/winnt/system".
   </p>
   <p>
    This macro is not very intelligent, it's just a first try in this
    direction. It does currently just look into the current patterns, and
    replaces a ${prefix} with a simple dot. Amazingly, it works quite well for
    most packages.
   </p>
   <p>
    Example (configure.ac):
   </p>
   <pre>
   AC_DEFINE_DIR([EPREFIX], [exec_prefix], [--exec-prefix or default])
   AC_DEFINE_SUB_PATH([PATH_LIBDIR], [libdir], [--bindir subdir])
   AC_DEFINE_UNQUOTED([PACKAGE],"$PACKAGE", [Name of package])
</pre>
   <p>
    Example (in C):
   </p>
   <pre>
   static const char _libdir[] = PATH_LIBDIR; /* configure default */
   char* libdir;
   char* eprefix = getenv (PACKAGE "DIR");
   if (! eprefix) eprefix = EPREFIX; /* default */
   if (*_libdir != '.') libdir = strdup(_libdir);
   else {
      libdir = malloc(strlen(eprefix) + strlen(_libdir) + 2);
      strcpy(libdir, eprefix);
      strcat(libdir, PATH_DELIMITER_STRING);
      strcat(libdir, _libdir);
   }
   ...
   free (libdir);
</pre>
   <p>
    The AC_DEFINE_SUB_PATHS(varnames) macro looks for the given various
    install-paths that largely depend on either ${prefix} or ${exec_prefix}.
    Just cut out the prefix and ac_define the value. The value is uppercased
    and PATH_ prepended ie. ac_define_sub_paths(bindir libdir pkgdatadir) will
    create the defines PATH_BINDIR PATH_LIBDIR PATH_PKGDATADIR - see posix'
    include/paths.h that creates _PATH_DEV and friends.
   </p>
  </div>
  <h2>
   SOURCE CODE
  </h2>
  <p class="indent">
   <a href=
   "http://autoconf-archive.cryp.to/ac_define_sub_path.m4">http://autoconf-archive.cryp.to/ac_define_sub_path.m4</a>
  </p>
  <h2>
   LICENSE
  </h2>
  <div class="indent">
   <p style="white-space:nowrap;">
    Copyright &copy; 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
   </p>
   <p>
    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 2 of the License, or (at your option)
    any later version.
   </p>
   <p>
    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.
   </p>
   <p>
    You should have received a copy of the GNU General Public License along
    with this program. If not, see &lt;<a href=
    "http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.
   </p>
   <p>
    As a special exception, the respective Autoconf Macro's copyright owner
    gives unlimited permission to copy, distribute and modify the configure
    scripts that are the output of Autoconf when processing the Macro. You need
    not follow the terms of the GNU General Public License when using or
    distributing such scripts, even though portions of the text of the Macro
    appear in them. The GNU General Public License (GPL) does govern all other
    use of the material that constitutes the Autoconf Macro.
   </p>
   <p>
    This special exception to the GPL applies to versions of the Autoconf Macro
    released by the Autoconf Archive. When you make and distribute a modified
    version of the Autoconf Macro, you may extend this special exception to the
    GPL to apply to your modified version as well.
   </p>
  </div>
 </body>
</html>