1 #ifndef CONFIG_H
2 #define CONFIG_H
3 
4 /**	$MirOS: src/usr.bin/make/config.h,v 1.4 2005/12/20 11:22:55 tg Exp $ */
5 /*	$OpenBSD: config.h,v 1.14 2003/06/03 02:56:11 millert Exp $	*/
6 /*	$NetBSD: config.h,v 1.7 1996/11/06 17:59:03 christos Exp $	*/
7 
8 /*
9  * Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
10  * Copyright (c) 1988, 1989 by Adam de Boor
11  * Copyright (c) 1989 by Berkeley Softworks
12  * All rights reserved.
13  *
14  * This code is derived from software contributed to Berkeley by
15  * Adam de Boor.
16  *
17  * Redistribution and use in source and binary forms, with or without
18  * modification, are permitted provided that the following conditions
19  * are met:
20  * 1. Redistributions of source code must retain the above copyright
21  *    notice, this list of conditions and the following disclaimer.
22  * 2. Redistributions in binary form must reproduce the above copyright
23  *    notice, this list of conditions and the following disclaimer in the
24  *    documentation and/or other materials provided with the distribution.
25  * 3. Neither the name of the University nor the names of its contributors
26  *    may be used to endorse or promote products derived from this software
27  *    without specific prior written permission.
28  *
29  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
30  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
31  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
32  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
33  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
34  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
35  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
37  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
38  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
39  * SUCH DAMAGE.
40  *
41  *	from: @(#)config.h	8.1 (Berkeley) 6/6/93
42  */
43 
44 #define DEFSHELL	1			/* Bourne shell */
45 
46 /*
47  * DEFMAXJOBS
48  * DEFMAXLOCAL
49  *	These control the default concurrency. On no occasion will more
50  *	than DEFMAXJOBS targets be created at once (locally or remotely)
51  *	DEFMAXLOCAL is the highest number of targets which will be
52  *	created on the local machine at once. Note that if you set this
53  *	to 0, nothing will ever happen...
54  */
55 #define DEFMAXJOBS	4
56 #define DEFMAXLOCAL	1
57 
58 /*
59  * INCLUDES
60  * LIBRARIES
61  *	These control the handling of the .INCLUDES and .LIBS variables.
62  *	If INCLUDES is defined, the .INCLUDES variable will be filled
63  *	from the search paths of those suffixes which are marked by
64  *	.INCLUDES dependency lines. Similarly for LIBRARIES and .LIBS
65  *	See suff.c for more details.
66  */
67 #define INCLUDES
68 #define LIBRARIES
69 
70 /*
71  * LIBSUFF
72  *	Is the suffix used to denote libraries and is used by the Suff module
73  *	to find the search path on which to seek any -l<xx> targets.
74  *
75  * RECHECK
76  *	If defined, Make_Update will check a target for its current
77  *	modification time after it has been re-made, setting it to the
78  *	starting time of the make only if the target still doesn't exist.
79  *	Unfortunately, under NFS the modification time often doesn't
80  *	get updated in time, so a target will appear to not have been
81  *	re-made, causing later targets to appear up-to-date. On systems
82  *	that don't have this problem, you should defined this. Under
83  *	NFS you probably should not, unless you aren't exporting jobs.
84  */
85 #define LIBSUFF ".a"
86 #define RECHECK
87 
88 /*
89  * SYSVINCLUDE
90  *	Recognize system V like include directives [include "filename"]
91  * SYSVVARSUB
92  *	Recognize system V like ${VAR:x=y} variable substitutions
93  */
94 #define SYSVINCLUDE
95 #define SYSVVARSUB
96 
97 /*
98  * SUNSHCMD
99  *	Recognize SunOS and Solaris:
100  *		VAR :sh= CMD	# Assign VAR to the command substitution of CMD
101  *		${VAR:sh}	# Return the command substitution of the value
102  *				# of ${VAR}
103  */
104 #define SUNSHCMD
105 
106 #if !defined(__svr4__) && !defined(__SVR4) && !defined(__ELF__)
107 # ifndef RANLIBMAG
108 #  define RANLIBMAG "__.SYMDEF"
109 # endif
110 #endif
111 
112 #ifdef __OpenBSD__
113 #ifndef HAS_EXTENDED_GETCWD
114 #define HAS_EXTENDED_GETCWD
115 #endif
116 #endif
117 
118 #ifdef HAS_EXTENDED_GETCWD
119 #define dogetcwd()	getcwd(NULL, 0)
120 #else
121 #define dogetcwd()	getcwd(emalloc(PATH_MAX), PATH_MAX)
122 #endif
123 
124 #ifdef SYSVINCLUDE
125 #define DOFEATURE_SYSVINCLUDE	FEATURE_SYSVINCLUDE
126 #else
127 #define DOFEATURE_SYSVINCLUDE	0
128 #endif
129 #ifdef SYSVVARSUB
130 #define DOFEATURE_SYSVVARSUB	FEATURE_SYSVVARSUB
131 #else
132 #define DOFEATURE_SYSVVARSUB	0
133 #endif
134 #ifdef SUNSHCMD
135 #define DOFEATURE_SUNSHCMD	FEATURE_SUNSHCMD
136 #else
137 #define DOFEATURE_SUNSHCMD	0
138 #endif
139 
140 #ifndef DEFAULT_FEATURES
141 #define DEFAULT_FEATURES	(FEATURE_UPPERLOWER | DOFEATURE_SYSVVARSUB | DOFEATURE_SYSVINCLUDE | DOFEATURE_SUNSHCMD | FEATURE_RECVARS)
142 #endif
143 
144 #define FEATURES(x)	((DEFAULT_FEATURES & (x)) != 0)
145 #define FEATURE_ODE		1
146 #define FEATURE_UNIQ		2
147 #define FEATURE_SORT		4
148 #define FEATURE_UPPERLOWER	8
149 #define FEATURE_SYSVVARSUB	16
150 #define FEATURE_SYSVINCLUDE	32
151 #define FEATURE_SUNSHCMD	64
152 #define FEATURE_RECVARS		128
153 #define FEATURE_CONDINCLUDE	256
154 #define FEATURE_ASSIGN		512
155 #define FEATURE_EXECMOD		1024
156 
157 /*
158  * There are several places where expandable buffers are used (parse.c and
159  * var.c). This constant is merely the starting point for those buffers. If
160  * lines tend to be much shorter than this, it would be best to reduce BSIZE.
161  * If longer, it should be increased. Reducing it will cause more copying to
162  * be done for longer lines, but will save space for shorter ones. In any
163  * case, it ought to be a power of two simply because most storage allocation
164  * schemes allocate in powers of two.
165  */
166 #define MAKE_BSIZE		256	/* starting size for expandable buffers */
167 
168 #endif
169