Initial revision
[kopensolaris-gnu/glibc.git] / Makeconfig
1 # Copyright (C) 1991, 1992 Free Software Foundation, Inc.
2 # This file is part of the GNU C Library.
3
4 # The GNU C Library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Library General Public License as
6 # published by the Free Software Foundation; either version 2 of the
7 # License, or (at your option) any later version.
8
9 # The GNU C Library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 # Library General Public License for more details.
13
14 # You should have received a copy of the GNU Library General Public
15 # License along with the GNU C Library; see the file COPYING.LIB.  If
16 # not, write to the Free Software Foundation, Inc., 675 Mass Ave,
17 # Cambridge, MA 02139, USA.
18
19 #
20 #       Makefile configuration options for the GNU C library.
21 #
22 ifneq (,)
23 This makefile requires GNU Make.
24 endif
25
26 ifneq "$(origin +included-Makeconfig)" "file"
27
28 +included-Makeconfig := yes
29
30 ifdef subdir
31 .. := ../
32 endif
33 \f
34 #
35 #       These are the configuration variables.
36 #
37
38 # You can put variables that are specific to a configuration in the file
39 # Makeconfig in the object directory for that configuration.  Variables
40 # that do not vary between different configurations at your site can be
41 # editted below.
42
43 ifndef ARCH
44 ifdef machine
45 ARCH = $(machine)
46 else
47 include $(..)config.status
48 endif
49 endif
50
51 # Directory for object files, libc.a, and ansi/ and trad/ directories.
52 # If this is not defined, the object files live in the subdirectories
53 # where their sources live, and libc.a and the ansi/ and trad/ directories
54 # live in the parent directory.
55 ifdef ARCH
56 objdir := $(..)$(ARCH)
57
58 ifneq ($(wildcard $(objdir)/Makeconfig),)
59 include $(objdir)/Makeconfig
60 endif
61 endif
62
63
64 # Common prefix for all installation directories.
65 ifndef prefix
66 prefix = /usr/local
67 endif
68
69 # Where to install the library and object files.
70 ifndef libdir
71 libdir = $(prefix)/lib
72 endif
73
74 # Where to install the header files.  There are two sets of header files
75 # produced, an ANSI C set and a traditional C set.  ansi-incldir, if
76 # defined, is where to install the ANSI C set; trad-incldir, if defined, is
77 # where to install the traditional C set.  If you define both, you can
78 # install both sets, in different places.
79 ifndef ansi-incldir
80 ansi-incldir = $(prefix)/include
81 endif
82 ifndef trad-incldir
83 #trad-incldir = $(prefix)/include
84 endif
85
86 # Where to install machine-independent data files.
87 # These are the timezone database, and eventually the locale database.
88 ifndef datadir
89 datadir = $(prefix)/lib
90 endif
91
92
93 # Commands to install files.
94 INSTALL_DATA = $(INSTALL)
95 INSTALL_PROGRAM = $(INSTALL)
96 INSTALL = install
97
98
99 # The name of the C compiler.
100 # If you've got GCC, and it works, use it.
101 ifndef CC
102 CC := gcc -pipe
103 endif
104
105 # These are preprocessor macros we want to predefine.
106 # Define __GNU_STAB__ if using GNU ld (which you should do if possible).
107 # If you do this, you may need the GNU assembler as well.
108 # If you don't do this, your library won't work as well (and won't be strictly
109 # compliant with the ANSI C standard).
110 +defines = $(defines) -D__GNU_STAB__
111
112 # Default flags to pass the C compiler.
113 ifndef default_cflags
114 +default_cflags := -g
115 endif
116
117 # Command for linking programs with the C library.
118 +link = $(LD) -o $@ -e __start $(objpfx)start.o $(^:lib=$(objpfx)libc.a) /usr/local/lib/gcc-gnulib $(objpfx)libc.a -lc
119
120 ifndef LD
121 LD := ld -X
122 endif
123
124 ifndef  RANLIB
125 RANLIB = ranlib
126 endif
127
128 # Define non-empty if the C compiler understands -v (print version).
129 +cc_version = $(filter gcc,$(notdir $(firstword $(CC)))) # if using gcc
130
131 # Extra flags to pass to GCC.
132 +gccwarn := -Wall -Wwrite-strings -Wpointer-arith -Wstrict-prototypes
133 +gccopt := -O -fstrength-reduce -fcombine-regs
134 +gccflags = $(+gccwarn) $(+gccopt)
135
136 # This is the program that generates makefile
137 # dependencies from C source files.
138 ifndef +mkdep
139 +mkdep = $(CC) -M
140 endif
141
142 # The program that makes Emacs-style TAGS files.
143 +etags  := etags -tw
144 \f
145 ifdef objdir
146 objpfx = $(objdir)/
147 libc.a = $(objpfx)libc.a
148 else
149 objpfx :=
150 libc.a = $(..)libc.a
151 endif
152 \f
153 # We want to echo the commands we're running without
154 # umpteem zillion filenames along with it (we use `...' instead)
155 # but we don't want this echoing done when the user has said
156 # he doesn't want to see commands echoed by using -s.
157 ifneq   "$(findstring s,$(MAKEFLAGS))" ""       # if -s
158 +cmdecho        := echo >/dev/null
159 else                                            # not -s
160 +cmdecho        := echo
161 endif                                           # -s
162 \f
163 # These are the flags given to the compiler to tell
164 # it what sort of optimization and/or debugging output to do.
165 ifndef  +cflags
166 # If `CFLAGS' was defined, use that.
167 ifdef           CFLAGS
168 +cflags := $(filter-out -I%,$(CFLAGS))
169 endif           # CFLAGS
170 endif   # +cflags
171
172 # If none of the above worked, default to "-g".
173 ifeq    "$(strip $(+cflags))" ""
174 +cflags := $(+default_cflags)
175 endif   # $(+cflags) == ""
176
177 # If using gcc, add flags that only it will grok.
178 ifneq   "$(findstring gcc,$(CC))" ""
179 +cflags := $(+cflags) $(+gccflags)
180 endif   # gcc
181
182 # Don't duplicate options if we inherited variables from the parent.
183 +cflags := $(sort $(+cflags))
184
185
186 ifneq   "$(findstring v,$(MAKEFLAGS))" ""       # if -v
187 ifneq   "$(strip $(+cc_version))" ""
188 # If Make is telling us version info, tell the compiler to do so as well.
189 CC      := $(CC) -v
190 endif   # +cc_version
191 endif                                           # -v
192 \f
193 # These are flags given to the C compiler to
194 # tell it to look for include files (including ones
195 # given in angle brackets) in the current directory
196 # and in the parent library source directory.
197 ifneq "$(..)" ""
198 +includes       = -I. -I$(patsubst %/,%,$(..)) $(includes)
199 else
200 +includes       = -I. $(includes)
201 endif
202
203
204 # These are the variables that the implicit compilation rules use.
205 CPPFLAGS = $(+includes) $(+defines) -DLIBC
206 override CFLAGS = $(+cflags)
207
208
209 # This is the macro that the implicit linking rules use.
210 ifneq "$(filter -g,$(+cflags))" "" # -g is in $(+cflags)
211 LDFLAGS := -g
212 endif
213
214
215 ifneq "$(filter -D__GNU_STAB__,$(CPPFLAGS))" ""
216 +gnu-stabs := yes
217 endif
218
219
220 endif # Makeconfig not yet included