~ubuntu-branches/ubuntu/trusty/khronos-opencl-man/trusty

« back to all changes in this revision

Viewing changes to usr/include/make/commondefs

  • Committer: Package Import Robot
  • Author(s): Mathieu Malaterre
  • Date: 2013-05-21 18:06:15 UTC
  • Revision ID: package-import@ubuntu.com-20130521180615-6e0s2n3pai95ip2f
Tags: upstream-1.0~svn21772
ImportĀ upstreamĀ versionĀ 1.0~svn21772

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Copyright (c) 1991-2000 Silicon Graphics, Inc.
 
2
# This document is licensed under the SGI Free Software B license.
 
3
# For details, see
 
4
#
 
5
# http://oss.sgi.com/projects/FreeB
 
6
#
 
7
# $Date$ $Revision$
 
8
# $Header: //depot/main/tools/include/commondefs#43 $
 
9
 
 
10
COMMONRULES=$(ROOT)/usr/include/make/commonrules
 
11
 
 
12
# what OS are we running on
 
13
OS=$(shell uname)
 
14
ifeq ($(subst 64,,$(OS)), IRIX)
 
15
OS=IRIX
 
16
endif
 
17
ifeq (CYGWIN,$(findstring CYGWIN,$(OS)))
 
18
OS=Linux
 
19
endif
 
20
 
 
21
# various source-level directories
 
22
TOOLSSRC = $(TOPDIR)/tools
 
23
GFXINCLUDESRC = $(TOPDIR)/gfx/include
 
24
OGLLIBSRC = $(TOPDIR)/gfx/lib/opengl
 
25
GLXLIBSRC = $(TOPDIR)/glx
 
26
 
 
27
# SGI Free Software B license
 
28
OSSCOPYRIGHT = $(TOPDIR)/doc/release/OSSCOPYRIGHT
 
29
 
 
30
# shell-related defs
 
31
SHELL   = /bin/sh
 
32
AWK     = awk
 
33
ifeq ($(OS),IRIX)
 
34
ECHO    = /bin/echo
 
35
endif
 
36
ifeq ($(OS),Linux)
 
37
ECHO    = /bin/echo -e
 
38
endif
 
39
RM      = rm -f
 
40
MV      = mv
 
41
PERL    = perl
 
42
SED     = sed
 
43
UNIQ    = uniq
 
44
 
 
45
# M4 options - run GNU M4 in compatibility mode
 
46
# rdist options - Red Hat 5.2 must have daemon location specified
 
47
ifeq ($(OS),IRIX)
 
48
M4OPTS  =
 
49
endif
 
50
ifeq ($(OS),Linux)
 
51
M4OPTS  = -G
 
52
RDIST_OPTS = -p /usr/sbin/rdistd
 
53
endif
 
54
 
 
55
# override default gmake CXX with what we have
 
56
ifeq ($(OS),IRIX)
 
57
CXX     = CC
 
58
endif
 
59
 
 
60
# what language are we using?  Default to ansi with extended defines
 
61
ifeq ($(OS),IRIX)
 
62
CVERSION = -xansi
 
63
endif
 
64
ifeq ($(OS),Linux)
 
65
CVERSION= -ansi -include $(ROOT)/usr/include/make/linuxdefs
 
66
endif
 
67
 
 
68
# WARN is the warning option
 
69
ifeq ($(OS),IRIX)
 
70
#
 
71
# Turn of explicitly some warnings on IRIX.  Specifically:
 
72
#       1155:   unrecognized #pragma
 
73
#       1174:   parameter/variable "???" was declared but never referenced
 
74
#       1201:   trailing comma is nonstandard (last element in struct assnment)
 
75
#       1209:   controlling expression is constant
 
76
#       1506:   implicit conversion from "???" to "???": rounding, sign
 
77
#               extension, or loss of accuracy may result
 
78
#       3170:   "???" not marked as intrinsic because it is not declared
 
79
#               as a function
 
80
#
 
81
WARN = -fullwarn \
 
82
        -woff 1155,1174,1506,1201,1209,3170
 
83
endif
 
84
ifeq ($(OS),Linux)
 
85
WARN = -Wimplicit \
 
86
        -Wreturn-type \
 
87
        -Wswitch \
 
88
        -Wcomment \
 
89
        -Wformat \
 
90
        -Wchar-subscripts \
 
91
        -Wparentheses \
 
92
        -Wpointer-arith \
 
93
        -Wcast-qual \
 
94
        -Wmissing-prototypes \
 
95
        -Wmissing-declarations \
 
96
        $(NULL)
 
97
endif
 
98
 
 
99
# default optimization
 
100
ifeq ($(subst y,1,$(GLDEBUG)),1)
 
101
OPTIMIZER=-g
 
102
else
 
103
OPTIMIZER=-O2
 
104
ifeq ($(OS),Linux)
 
105
WARN += -Wuninitialized
 
106
endif
 
107
endif
 
108
 
 
109
# how to make dependencies
 
110
ifeq ($(OS),IRIX)
 
111
MKDEPOPT = -MDupdate Makedepend
 
112
endif
 
113
ifeq ($(OS),Linux)
 
114
MKDEPOPT = -MD
 
115
endif
 
116
 
 
117
override GCOPTS = $(OPTIMIZER) $(MKDEPOPT) $(WARN)
 
118
override GCXXOPTS = $(OPTIMIZER) $(MKDEPOPT) $(WARN)
 
119
 
 
120
# where is the default include directory?
 
121
#  (we don't grab it off $ROOT, to avoid populating $ROOT with system
 
122
#  includes.  Yes, I know...  You don't like the idea.
 
123
INCLDIR = /usr/include
 
124
 
 
125
# where to install include files?
 
126
INCLUDE_LOCATION = $(ROOT)/usr/include
 
127
 
 
128
# we would like to use nostdinc on Linux, but unfortunately, it also
 
129
# removes include directories with no well-known fixed path (ie. the
 
130
# gcc install directory).
 
131
ifeq ($(OS),IRIX)
 
132
override GCINCS = -nostdinc -I$(ROOT)$(INCLDIR) -I$(INCLDIR)
 
133
override GCXXINCS = -nostdinc -I$(ROOT)$(INCLDIR) -I$(INCLDIR)
 
134
endif
 
135
ifeq ($(OS),Linux)
 
136
override GCINCS = -I$(ROOT)$(INCLDIR)
 
137
override GCXXINCS = -I$(ROOT)$(INCLDIR) -I$(INCLDIR)
 
138
endif
 
139
 
 
140
ifeq ($(GLDEBUG),1)
 
141
override GCDEFS = -DDEBUG -UNDEBUG
 
142
override GCXXDEFS = -DDEBUG -UNDEBUG
 
143
else
 
144
override GCDEFS = -UDEBUG -DNDEBUG
 
145
override GCXXDEFS = -UDEBUG -DNDEBUG
 
146
endif
 
147
 
 
148
#
 
149
# Cc flags, composed of:
 
150
#       variable (V*) (set on the command line)
 
151
#       local (L*) (set in the makefile)
 
152
#       global (G*) (defined in this file, not overrideable)
 
153
# in that order.  This is done so that the locally defined includes
 
154
# are searched before the globally defined ones.
 
155
#
 
156
CFLAGS  = $(CVERSION) $(VCFLAGS) $(LCFLAGS) $(GCFLAGS)
 
157
 
 
158
#
 
159
# Each of these three components is divided into defines (-D's and -U's),
 
160
# includes (-I's), and other options.  By segregating the different
 
161
# classes of flag to cc, the defines (CDEFS) and includes (CINCS) can be
 
162
# easily given to other programs, e.g., lint.
 
163
#
 
164
# Notes:
 
165
#   - The local assignments should be to LCOPTS, LCDEFS, and LCINCS, not to
 
166
#     LCFLAGS, although CFLAGS will be correctly set if this is done.
 
167
#   - If a program cannot be optimized, it should override the setting of
 
168
#     OPTIMIZER with a line such as "OPTIMIZER=" in its make file.
 
169
#   - If a program cannot be compiled with ANSI C, its makefile
 
170
#     should set CVERSION=-cckr
 
171
#
 
172
VCFLAGS = $(VCDEFS) $(VCINCS) $(VCOPTS)
 
173
LCFLAGS = $(LCDEFS) $(LCINCS) $(LCOPTS)
 
174
GCFLAGS = $(GCDEFS) $(GCINCS) $(GCOPTS)
 
175
 
 
176
COPTS   = $(VCOPTS) $(LCOPTS) $(GCOPTS)
 
177
CDEFS   = $(VCDEFS) $(LCDEFS) $(GCDEFS)
 
178
CINCS   = $(VCINCS) $(LCINCS) $(GCINCS)
 
179
 
 
180
#
 
181
# CXX flags are decomposed using the same hierarchy as C flags.
 
182
#
 
183
CXXFLAGS  = $(CVERSION) $(VCXXFLAGS) $(LCXXFLAGS) $(GCXXFLAGS)
 
184
 
 
185
VCXXFLAGS = $(VCXXDEFS) $(VCXXINCS) $(VCXXOPTS)
 
186
LCXXFLAGS = $(LCXXDEFS) $(LCXXINCS) $(LCXXOPTS)
 
187
GCXXFLAGS = $(GCXXDEFS) $(GCXXINCS) $(GCXXOPTS)
 
188
 
 
189
CXXOPTS   = $(VCXXOPTS) $(LCXXOPTS) $(GCXXOPTS)
 
190
CXXDEFS   = $(VCXXDEFS) $(LCXXDEFS) $(GCXXDEFS)
 
191
CXXINCS   = $(VCXXINCS) $(LCXXINCS) $(GCXXINCS)
 
192
 
 
193
#
 
194
# Do something for the linker
 
195
#
 
196
#
 
197
# Library paths (-L's) are part of LDOPTS.
 
198
# Libraries (-l's) are part of LDLIBS.
 
199
# This is done so that there is a guarantee that all library paths are
 
200
# included before the libraries.
 
201
#
 
202
override GLDOPTS=
 
203
override GLDDSOOPTS=
 
204
ifeq ($(OS),IRIX)
 
205
override GLDOPTS += -L$(ROOT)/usr/lib32
 
206
override GLDDSOOPTS += -L$(ROOT)/usr/lib32
 
207
endif
 
208
ifeq ($(OS),Linux)
 
209
override GLDOPTS += -L$(ROOT)/usr/lib -L$(XTOPDIR)/xc/exports/lib
 
210
override GLDDSOOPTS += -L$(ROOT)/usr/lib -L$(XTOPDIR)/xc/exports/lib
 
211
endif
 
212
 
 
213
# options used for DSO's.
 
214
ifeq ($(OS),IRIX)
 
215
DSONAMEOPT = -soname $(DSONAME)
 
216
ifneq ($(DSOEXPORTS),)
 
217
DSOEXPORTSOPT = -exports_file $(DSOEXPORTS)
 
218
endif
 
219
override GLDDSOOPTS += -elf -shared -all $(DSOEXPORTSOPT) $(DSONAMEOPT)
 
220
endif
 
221
 
 
222
ifeq ($(OS),Linux)
 
223
DSONAMEOPT = -soname=$(DSONAME)
 
224
ifneq ($(DSOEXPORTS),)
 
225
DSOEXPORTSOPT = $(addprefix -u ,$(shell cat $(DSOEXPORTS)))
 
226
else
 
227
DSOEXPORTSOPT = --whole-archive
 
228
endif
 
229
override GLDDSOOPTS += -shared $(DSOEXPORTSOPT) $(DSONAMEOPT)
 
230
endif
 
231
 
 
232
LDDSOOPTS  = $(VLDDSOOPTS) $(LLDDSOOPTS) $(GLDDSOOPTS)
 
233
LDDSOLIBS  = $(VLDDSOLIBS) $(LLDDSOLIBS) $(GLDDSOLIBS)
 
234
LDDSOFLAGS = $(LDDSOOPTS) $(LDDSOLIBS) $(ENDIAN)
 
235
 
 
236
LDOPTS  = $(VLDOPTS) $(LLDOPTS) $(GLDOPTS)
 
237
LDLIBS  = $(VLDLIBS) $(LLDLIBS) $(GLDLIBS)
 
238
LDFLAGS = $(LDOPTS) $(LDLIBS) $(ENDIAN)
 
239
 
 
240
# where to install libraries
 
241
ifeq ($(OS),IRIX)
 
242
OBJECT_STYLE = N32
 
243
LIB_LOCATION = $(ROOT)/usr/lib32
 
244
endif
 
245
ifeq ($(OS),Linux)
 
246
LIB_LOCATION = $(ROOT)/usr/lib
 
247
endif
 
248
 
 
249
#
 
250
# as flags are just like cc flags.
 
251
# By default, ASTYLE is the same as CSTYLE, but some may need to make
 
252
# the asm more aggressive than 'C' and can set ASTYLE. Users of 'make'
 
253
# always get ASTYLE == CSTYLE
 
254
#
 
255
ASFLAGS = $(VASFLAGS) $(LASFLAGS) $(GASFLAGS)
 
256
 
 
257
VASFLAGS = $(VASDEFS) $(VASINCS) $(VASOPTS)
 
258
LASFLAGS = $(LASDEFS) $(LASINCS) $(LASOPTS)
 
259
GASFLAGS = $(GASDEFS) $(GASINCS) $(GASOPTS)
 
260
 
 
261
ASOPTS  = $(VASOPTS) $(LASOPTS) $(GASOPTS)
 
262
ASDEFS  = $(VASDEFS) $(LASDEFS) $(GASDEFS)
 
263
ASINCS  = $(VASINCS) $(LASINCS) $(GASINCS)
 
264
 
 
265
override GASOPTS = $(OPTIMIZER) $(MKDEPOPT)
 
266
override GASDEFS = $(GCDEFS)
 
267
override GASINCS = $(GCINCS)
 
268
 
 
269
#
 
270
# the install command to use
 
271
#
 
272
INSTALL = $(ROOT)/usr/bin/gfxinstall
 
273
INSTALLFLAGS = -v -m 0444
 
274
 
 
275
#
 
276
# Convenient command macros that include the flags macros.
 
277
#
 
278
# You should always invoke make in makefiles via $(MAKE), as make passes
 
279
# all command-line variables through the environment to sub-makes.
 
280
#
 
281
# Never use just $(CCF), etc. in rules that link executables; LDFLAGS
 
282
# needs to be included after your objects in the command line.
 
283
#
 
284
ASF     = $(AS) $(ASFLAGS)
 
285
CXXF    = $(CXX) $(CXXFLAGS)
 
286
C++F    = $(CXXF)
 
287
CCF     = $(CC) $(CFLAGS)
 
288
LDF     = $(LD) $(LDFLAGS)
 
289
LEXF    = $(LEX) $(LFLAGS)
 
290
YACCF   = $(YACC) $(YFLAGS)
 
291
 
 
292
# Targets
 
293
 
 
294
COMMONTARGS = clobber clean rmtargets
 
295
 
 
296
ALLTARGS = headers headers_install libs libs_install install apps distsi \
 
297
           $(COMMONTARGS)
 
298
 
 
299
#
 
300
# Rule macros for nonterminal makefiles that iterate over subdirectories,
 
301
# making the current target.  Set *SUBDIRS to the relevant list of kids.
 
302
#
 
303
# Set NOSUBMESG to any value to suppress a warning that subdirectories
 
304
# are not present. This is useful with mandefs/rules
 
305
#
 
306
SUBDIR_MAKERULE= \
 
307
        if test ! -d $$d; then \
 
308
                if test "$(NOSUBMESG)" = "" ; then \
 
309
                        echo "SKIPPING $$d: No such directory."; \
 
310
                fi \
 
311
        else \
 
312
                $(ECHO) "\t$(MAKE) -C $$d $${RULE:=$@}"; \
 
313
                $(MAKE) -C $$d $${RULE:=$@}; \
 
314
        fi
 
315
 
 
316
SUBDIRS_MAKERULE= \
 
317
        +@for d in $(SUBDIRS); do $(SUBDIR_MAKERULE); done
 
318
 
 
319
#
 
320
# One problem with the above rules is that if a make fails, and -k is
 
321
# set, the entire for loop might stop. This is because make still can
 
322
# (and XPG requires it) exit with an error status if the -k option is set.
 
323
# This is an alternate rule for SUBDIRS when it is desired that -k keep
 
324
# working on the next SUBDIR if the previous one failed. Its not quite
 
325
# as compact a rule as the previous ones.
 
326
# A standard usage would be:
 
327
#       default install $(COMMONTARGS): $(_FORCE)
 
328
#               $(MAKE) __DORULE=$@ $(SUBDIRS)
 
329
#       $(SUBDIRS): $(_FORCE)
 
330
#               @$(NSUBDIR_MAKERULE)
 
331
 
 
332
NSUBDIR_MAKERULE= \
 
333
        if test ! -d $@; then \
 
334
                if test "$(NOSUBMESG)" = "" ; then \
 
335
                        echo "SKIPPING $@: No such directory."; \
 
336
                fi \
 
337
        else \
 
338
                echo "\t(cd $@; $(MAKE) $(__DORULE))"; \
 
339
                (cd $@; ${MAKE} $(__DORULE)); \
 
340
        fi
 
341
 
 
342
#
 
343
# Convenience file list macros:
 
344
#       - Commondefs defines the following lists: SOURCES, enumerating all
 
345
#         source files; OBJECTS, the .o files derived from compilable source;
 
346
#         and DIRT, which lists intermediates and temporary files to be
 
347
#         removed by clean.
 
348
#       - The including (parent) makefile may define source file lists for
 
349
#         the standard suffixes: CFILES for .c, ASFILES for .s, YFILES for
 
350
#         .y, etc.  We combine all such lists into SOURCES.  The including
 
351
#         makefile need not define CFILES &c before including commondefs.
 
352
#
 
353
SOURCES=$(HFILES) $(ASFILES) $(CCFILES) $(C++FILES) $(CXXFILES) $(CFILES) \
 
354
        $(EFILES) $(FFILES) $(LFILES) $(PFILES) $(RFILES) $(SHFILES) $(YFILES)
 
355
 
 
356
CXXO1=$(CXXFILES:.c++=.o) $(C++FILES:.c++=.o) $(CCFILES:.c++=.o)
 
357
CXXO2=$(CXXO1:.cxx=.o)
 
358
CXXO3=$(CXXO2:.C=.o)
 
359
CXXO4=$(CXXO3:.cc=.o)
 
360
CXXOALL=$(CXXO4)
 
361
YO1=$(YFILES:.y=.o)
 
362
YO2=$(YO1:.yxx=.o)
 
363
YO3=$(YO2:.Y=.o)
 
364
YOALL=$(YO3)
 
365
LO1=$(LFILES:.l=.o)
 
366
LO2=$(LO1:.lxx=.o)
 
367
LO3=$(LO2:.L=.o)
 
368
LOALL=$(LO3)
 
369
OBJECTS=$(ASFILES:.s=.o) $(CXXOALL) $(CFILES:.c=.o) $(EFILES:.e=.o) \
 
370
        $(FFILES:.f=.o) $(LOALL) $(PFILES:.p=.o) $(RFILES:.r=.o) \
 
371
        $(YOALL)
 
372
 
 
373
#
 
374
# dependency file(s)
 
375
#
 
376
ifeq ($(OS),IRIX)
 
377
MKDEPFILE = Makedepend
 
378
endif
 
379
ifeq ($(OS),Linux)
 
380
MKDEPFILE = $(OBJECTS:.o=.d)
 
381
endif
 
382
 
 
383
#
 
384
# distribution file
 
385
#
 
386
DISTFILE_EXT = Distfile
 
387
DISTFILE_INT = Distfile.int
 
388
ifeq ($(OS),IRIX)
 
389
DISTFILE = $(DISTFILE_EXT)
 
390
else
 
391
ifeq ($(OS),Linux)
 
392
DISTFILE = $(DISTFILE_EXT)
 
393
else
 
394
DISTFILE = $(DISTFILE_EXT) $(DISTFILE_INT)
 
395
endif
 
396
endif
 
397
 
 
398
#
 
399
# dirt stuff
 
400
#
 
401
DIRT=$(GDIRT) $(VDIRT) $(LDIRT)
 
402
override GDIRT=*.o a.out core lex.yy.[co] y.tab.[cho] ar.tmp.* so_locations
 
403
 
 
404
LOCALDEFS       = ./localdefs
 
405
LOCALRULES      = ./localrules
 
406
 
 
407
-include $(LOCALDEFS)