Added COLLECTOR for HPUX; added support for INSTANTIATE_TEMPLATES
[dyninst.git] / make.config
1 #
2 # $Log: make.config,v $
3 # Revision 1.17  1995/04/05 20:22:21  jcargill
4 # Added COLLECTOR for HPUX; added support for INSTANTIATE_TEMPLATES
5 #
6 # Revision 1.16  1995/03/15  19:10:47  jcargill
7 # Added default COLLECTOR for purify
8 #
9 # Revision 1.15  1995/02/27  17:34:10  jcargill
10 # Simplified setting of ARCH_DEF, include a local config file, removed
11 # explicit gcc path bogusness
12 #
13 # Revision 1.14  1995/02/16  07:55:28  markc
14 # Added flags for template and kludge files.
15 # Added automatic generation of architecture defines (-Dsparc_sun_sunos4.1.3, etc)
16 # Added inline defines to generate stl code properly.
17 #
18 # Revision 1.13  1995/01/30  20:42:44  jcargill
19 # Fixed error; use CXX rather then CC++
20 #
21 # Revision 1.12  1995/01/30  18:08:15  jcargill
22 # Major build system reorganization
23 #
24 # Revision 1.11  1994/09/30  19:21:07  rbi
25 # itty bitty typo fix
26 #
27 # Revision 1.10  1994/06/29  03:02:45  hollings
28 # AFS file paths
29 # added -fexternal-templates to CFLAGS
30 #
31 # Revision 1.9  1994/05/17  00:20:37  hollings
32 # added default baselined lib to VPATH
33 #
34 #
35 #
36
37 AS              = /bin/as
38 CC              = gcc
39 CXX             = g++
40 LEX             = flex
41 RANLIB          = ranlib
42 YFLAGS          = -d -y
43 YACC            = bison
44 # COLLECTOR is only used by purify
45 COLLECTOR       = /usr/psup/gcc-2.6.3/lib/gcc-lib/$(PLATFORM)/2.6.3/ld
46
47
48 ifeq ($(PLATFORM),sparc-sun-solaris2.3)
49 AS              = /usr/ccs/bin/as
50 RANLIB          = true
51 endif
52
53 ifeq ($(PLATFORM),hppa1.1-hp-hpux)
54 COLLECTOR       = /usr/psup/gcc-2.6.3/lib/gcc-lib/hppa1.1-hp-hpux9.01/2.6.3/ld
55 endif
56
57
58 ifdef PLATFORM
59 ARCH_DEF        = -D$(shell echo $$PLATFORM | perl -pe 's/\./_/g;s/-/_/g')
60 else
61 ERROR PLATFORM MUST BE DEFINED IN ORDER TO BUILD PARADYN
62 endif
63
64 # most "main" modules are only two levels deep, but we need to be able to
65 # change this for those that are deeper in the tree
66 ifndef TO_CORE
67 TO_CORE         = ../..
68 endif
69
70 # Default module compiler; modules which want $(CC) should redefine
71 # this, **NOT** CC
72
73 MODCC           = $(CXX)
74 MODCFLAGS       = $(CXXFLAGS)
75
76
77 .SUFFIXES:      .I
78
79 # VPATH         = ../src:$(TO_CORE)/../lib/$(PLATFORM):/p/paradyn/lib/$(PLATFORM)
80
81 IFLAGS          = -I. -I$(TO_CORE)
82
83 ASFLAGS         = -P $(IFLAGS)
84
85 COMMONWARNINGS  = -W -Wall -Wtraditional -Wshadow -Wpointer-arith       \
86                 -Wbad-function-cast -Wcast-qual -Wcast-align            \
87                 -Wwrite-strings -Wconversion -Wstrict-prototypes        \
88                 -Wmissing-prototypes -Wmissing-declarations             \
89                 -Wredundant-decls -Woverloaded-virtual
90
91 # not as strict as above, but can actually be used -- mdc
92 USEFULWARNINGS  = -W -Wall -Wtraditional -Wpointer-arith       \
93                 -Wbad-function-cast -Wcast-qual -Wcast-align            \
94                 -Wwrite-strings -Wconversion -Wstrict-prototypes        \
95                 -Wmissing-prototypes -Wmissing-declarations             \
96                 -Woverloaded-virtual 
97
98 #don't inline -- for the files that won't emit template code
99 INLINE_DEFINES = 
100
101 #inline the private members of the class -- templates.o can use this
102 TEMP_INLINE_DEFINES = -DDO_INLINE_P="inline"
103
104 # inline everything -- the way things should be
105 ALL_INLINE_DEFINES = -DDO_INLINE_F="inline" -DDO_INLINE_P="inline"
106
107
108 CFLAGS          = $(IFLAGS) -g -Wall $(ARCH_DEF) $(INLINE_DEFINES)
109
110 CXXFLAGS          = $(IFLAGS) -g -Wall $(ARCH_DEF) $(INLINE_DEFINES)
111
112 # flags for kludge files, won't have warnings generated
113 KFLAGS          = $(IFLAGS) -g -Wall $(INLINE_DEFINES) $(ARCH_DEF)
114
115 # flags for template files, don't define external template flags
116 # -g is optional in this case -- should be defined at module level
117 TFLAGS          = $(IFLAGS) -Wall $(TEMP_INLINE_DEFINES) $(ARCH_DEF)
118
119 LIBDIR          = -L$(TO_CORE)/../lib/$(PLATFORM) \
120                   -L/p/paradyn/lib/$(PLATFORM) \
121                   -L/usr/psup/lib
122
123 ifndef INSTANTIATE_TEMPLATES
124 # -fexternal-templates and -Dexternal_templates should both be used or
125 # neither should be used; add them to CFLAGS, CXXFLAGS, and KFLAGS
126 # (but not to TFLAGS).
127 #
128 CFLAGS          +=  -fexternal-templates -Dexternal_templates
129 CXXFLAGS        +=  -fexternal-templates -Dexternal_templates
130 KFLAGS  +=  -fexternal-templates -Dexternal_templates
131 endif
132
133 ifdef USES_PVM
134 PVM_DIR         = /p/paradyn/packages/pvm3/lib/$(PLATFORM)
135 IFLAGS          += -I/p/paradyn/packages/pvm3/include
136 LIBDIR          += $(patsubst %,-L%,$(PVM_DIR))
137 VPATH           += $(PVM_DIR)
138 endif
139
140 ifdef USES_TCLTK
141 TCLTK_DIRS      = /p/paradyn/packages/tk3.6 /p/paradyn/packages/tcl7.3
142 IFLAGS          += $(patsubst %,-I%,$(TCLTK_DIRS))
143 LIBDIR          += $(patsubst %,-L%/$(PLATFORM),$(TCLTK_DIRS))
144 VPATH           += $(TCLTK_DIRS)
145 endif
146
147 ifdef USES_FLEX
148 FLEX_DIR        = /usr/psup/lib
149 LIBDIR          += $(patsubst %,-L%,$(FLEX_DIR))
150 VPATH           += $(FLEX_DIR)
151 endif
152
153 ifdef USES_LIBERTY
154 LIBERTY_DIR     = /usr/psup/gcc/lib
155 LIBDIR          += $(patsubst %,-L%,$(LIBERTY_DIR))
156 VPATH           += $(LIBERTY_DIR)
157 endif
158
159 ifdef USES_BLT
160 BLT_DIR         = /p/paradyn/packages/blt-1.7
161 LIBDIR          += $(patsubst %,-L%/$(PLATFORM),$(BLT_DIR))
162 VPATH           += $(BLT_DIR)/$(PLATFORM)
163 endif
164
165 ifdef USES_X11
166 ifeq ($(PLATFORM),sparc-sun-solaris2.3)
167 CFLAGS          += -I/usr/openwin/include
168 CXXFLAGS        += -I/usr/openwin/include
169 TFLAGS          += -I/usr/openwin/include
170 LIBDIR          += -L/usr/openwin/lib
171 VPATH           += /usr/openwin/lib
172 endif
173 endif
174
175
176 ifeq ($(PLATFORM),sparc-sun-solaris2.3)
177 RANLIB          = true
178 endif
179
180
181 # Include any per-user configuration changes; this "local" config file
182 # should *not* be under CVS control, so that it never gets committed.
183
184 -include $(TO_CORE)/make.config.local