1#
2# $Id$
3#
4#======================================================================
5#
6# DISCLAIMER
7#
8# This material was prepared as an account of work sponsored by an
9# agency of the United States Government.  Neither the United States
10# Government nor the United States Department of Energy, nor Battelle,
11# nor any of their employees, MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR
12# ASSUMES ANY LEGAL LIABILITY OR RESPONSIBILITY FOR THE ACCURACY,
13# COMPLETENESS, OR USEFULNESS OF ANY INFORMATION, APPARATUS, PRODUCT,
14# SOFTWARE, OR PROCESS DISCLOSED, OR REPRESENTS THAT ITS USE WOULD NOT
15# INFRINGE PRIVATELY OWNED RIGHTS.
16#
17# ACKNOWLEDGMENT
18#
19# This software and its documentation were produced with Government
20# support under Contract Number DE-AC06-76RLO-1830 awarded by the United
21# States Department of Energy.  The Government retains a paid-up
22# non-exclusive, irrevocable worldwide license to reproduce, prepare
23# derivative works, perform publicly and display publicly by or for the
24# Government, including the right to distribute to other Government
25# contractors.
26#
27#======================================================================
28#
29#  -- PEIGS  routine (version 2.1) --
30#     Pacific Northwest Laboratory
31#     July 28, 1995
32#
33#======================================================================
34#
35# set the path to the "peigs" directory
36
37peigs_SRC		= $(TOPDIR)/src
38peigs_TARGET		= $(NWCHEM_TARGET)
39peigs_CPU_TYPE          = $(NWCHEM_TARGET_CPU)
40
41peigs_DIR	= $(peigs_SRC)/peigs
42ifndef NWCHEM_TARGET_CPU
43peigs_LIB	= $(TOPDIR)/lib/$(NWCHEM_TARGET)/libpeigs.a
44else
45peigs_LIB	= $(TOPDIR)/lib/$(NWCHEM_TARGET)_$(NWCHEM_TARGET_CPU)/libpeigs.a
46endif
47
48SHELL		= /bin/sh
49
50peigs_OBJDIR	 = $(peigs_DIR)/o
51peigs_HDIR	 = $(peigs_DIR)/h
52peigs_CSRC	 = $(peigs_DIR)/src/c
53peigs_F77SRC	 = $(peigs_DIR)/src/f77
54peigs_COMMDIR	 = $(peigs_DIR)/comm
55peigs_FTOC	 = $(peigs_DIR)/ctof
56peigs_EXAMPLE_LIB = -L$(TOPDIR)/lib/$(NWCHEM_TARGET) $(CORE_LIBS) $(EXTRA_LIBS) $(LIBS)
57
58#==================================================
59#  Machine specific definitions.
60#==================================================
61#
62# generic definitions from nwchem makefile.h
63#
64peigs_AR = $(AR) $(ARFLAGS)
65peigs_RANLIB = $(RANLIB)
66peigs_FC = $(NWFC) $(FOPTIONS) $(FOPTIMIZE) -I$(peigs_HDIR)
67#
68# this is needed because -DCRAY-T3E cannot be a macro definition it should be -DCRAY_T3E
69#
70peigs_TARGET_definition = $(peigs_TARGET)
71peigs_CC = $(NWCC) $(COPTIONS) -I$(peigs_HDIR) -D$(peigs_TARGET_definition) -D$(peigs_CPU)
72peigs_LINK = $(FC) $(FOPTIONS) -I$(peigs_HDIR)
73peigs_COMM = TCGMSG
74peigs_CPP  = $(CPP) -I$(peigs_HDIR) -D$(peigs_CPU) -D$(peigs_COMM) -D$(peigs_TARGET_definition) -P
75
76#ifdef EXPLICITF
77peigs_FCONVERT = $(FCONVERT) -I${peigs_HDIR} -D${peigs_CPU} -D${peigs_COMM} -D${peigs_TARGET_definition}
78#endif
79
80# The following are customizations for each machine
81
82ifeq ($(peigs_TARGET),CRAY-T3D)
83#
84# cray t3d at nersc
85#
86peigs_CPU = ALPHA
87#
88# 64 bit is single precision
89#
90peigs_TARGET_definition = CRAY_T3D
91peigs_CODEOBJ = SINGLE
92peigs_CC +=  -DSTD_DBL -DCRAY_T3D
93peigs_NODE = uniproc
94peigs_COMM = TCGMSG
95peigs_CPP += -P
96peigs_FC +=  -D$(peigs_COMM)
97endif
98
99ifeq ($(peigs_TARGET),CRAY-T3E) #
100# cray t3e at nersc
101#
102peigs_CPU = ALPHA
103#
104# 64 bit is single precision
105#
106peigs_TARGET_definition = CRAY_T3E
107peigs_CODEOBJ = SINGLE
108peigs_CC +=  -DSTD_DBL -DCRAY_T3D
109peigs_NODE = uniproc
110peigs_COMM = TCGMSG
111peigs_FC += -DCRAY_T3D -DCRAY_T3E -D$(peigs_COMM) -D$(peigs_CPU) -e 0
112peigs_FOPT +=
113peigs_CPP += -DCRAY_T3E -DCRAY_T3D -P
114endif
115
116ifeq ($(peigs_TARGET),DELTA)
117peigs_CPU	= i860
118#
119# Delta machine, compiled on sun3 (intelisc) or delilah
120#
121peigs_CODEOBJ = DBLE
122peigs_FC += -Mquad -Mr8  -D$(peigs_COMM)
123peigs_CC += -Mquad -Mvect
124peigs_FOPT =  -O3 -Minline=100
125peigs_COPT =  -O3 -Mvect
126#
127# one has a choice of native ipsc or tcgmsg for message passing
128#
129# peigs_COMM = iPSC_NATIVE
130#
131peigs_CPU	= i860
132peigs_CPP  += -P
133peigs_CTOFLIB =  -l/usr/local/delta/LAPACK -llapack -lf -kmath -lm
134endif
135
136ifeq ($(peigs_TARGET),PARAGON)
137#
138# -Mvect at your own risk
139peigs_CPU	= i860
140peigs_FOPT	= -O3 -Knoieee -Mquad -Mr8 -Minline=100
141peigs_COPT	= -O2 -Knoieee -Mquad -Minline=100
142OPTC2	= -O3 -Knoieee -Mquad
143peigs_FC +=  -D$(peigs_COMM)
144peigs_CC = -DSTD_DBL -DSTD_INT
145peigs_LINK += -nx
146peigs_CODEOBJ = DBLE
147peigs_CPP += -P
148endif
149
150
151ifeq ($(peigs_TARGET),iPSC_860)
152#
153peigs_CPU = i860
154# peigs_COMM = iPSC_NATIVE
155peigs_COMM = TCGMSG
156peigs_COPT =-O3 -Knoieee -Mquad -Minline=100
157peigs_CODEOBJ = DBLE
158peigs_FOPT = -O4 -Knoieee -Mquad -Mr8 -Minline=100
159peigs_FC += ${peigs_FOPT}  -D$(peigs_COMM)
160peigs_CC +=  -DSTD_DBL -DSTD_INT -DIntel
161endif
162
163ifeq ($(peigs_TARGET),SUN)
164# sun using
165# SUN/TCGMSG
166peigs_CC += -DSTD_DBL -DSTD_INT
167peigs_FC += -Bstatic -O1 -dalign  -D$(peigs_COMM)
168peigs_CODEOBJ   = DBLE
169peigs_CPU = SPARC
170peigs_COMM = TCGMSG
171#
172#	this is the worst to find for any machine
173#	for the SUN we have c calling fortran library
174#
175peigs_CTOFLIB		=  /msrc/apps/lib/gcc-lib/sparc-sun-sunos4.1.3/2.4.3/libgcc.a -lF77 -lV77 -L/msrc/apps/f771.4/SC1.0
176#
177endif
178
179ifeq ($(peigs_TARGET),SOLARIS)
180# sun using
181#SUN/TCGMSG
182peigs_CPU = SPARC
183peigs_COMM = TCGMSG
184peigs_CODEOBJ = DBLE
185peigs_CC += -DSTD_DBL -DSTD_INT -O
186ifeq ($(FC),frt)
187#Fujitsu
188 peigs_FC += -DSTD_INT -DSTD_DBL -D$(peigs_CPU) -Kfast  -D$(peigs_COMM)
189else
190 peigs_FC += -DSTD_INT -DSTD_DBL -dalign -D$(peigs_CPU) -O4  -D$(peigs_COMM)
191endif
192peigs_CPP += -DSTD_INT -DSTD_DBL -P
193peigs_COMMLIB = -L$(TOPDIR)/lib/$(NWCHEM_TARGET) -ltcgmsg
194#
195#	this is the worst to find for any machine
196#	for the SUN we have c calling fortran library
197#
198#local to pnnl
199peigs_CTOFLIB = /msrc/apps/lib/gcc-lib/sparc-sun-sunos4.1.3/2.4.3/libgcc.a -lF77 -lV77 -L/msrc/apps/f771.4/SC1.0 -llapack -lblas -llapack -lm
200#
201#replace if you are on a machine with assembly BLAS library
202#
203endif
204ifeq ($(peigs_TARGET),SOLARIS64)
205# sun using
206#SUN/TCGMSG
207peigs_CPU = SPARC64
208peigs_COMM = TCGMSG
209peigs_CODEOBJ = DBLE
210peigs_CC += -DSTD_DBL -O -D$(peigs_CPU)
211ifeq ($(FC),frt)
212#Fujitsu
213 peigs_FC += -DSTD_DBL -D$(peigs_CPU) -Kfast -KV9 -D$(peigs_COMM)
214else
215 peigs_FC += -DSTD_DBL -dalign -D$(peigs_CPU) -O4  -D$(peigs_COMM)
216endif
217peigs_CPP +=  -DSTD_DBL -P
218peigs_COMMLIB = -L$(TOPDIR)/lib/$(NWCHEM_TARGET) -ltcgmsg
219ifdef USE_INTEGER4
220     peigs_CPP += -DSTD_INT
221     peigs_CC  += -DSTD_INT
222     peigs_FC  += -DSTD_INT
223endif
224#
225#	this is the worst to find for any machine
226#	for the SUN we have c calling fortran library
227#
228#local to pnnl
229peigs_CTOFLIB = /msrc/apps/lib/gcc-lib/sparc-sun-sunos4.1.3/2.4.3/libgcc.a -lF77 -lV77 -L/msrc/apps/f771.4/SC1.0 -llapack -lblas -llapack -lm
230#
231#replace if you are on a machine with assembly BLAS library
232#
233endif
234
235ifeq ($(peigs_TARGET),SGI)
236#SGI/TCGMSG usually r4000
237
238peigs_CPU = MIPS
239peigs_COMM = TCGMSG
240peigs_CODEOBJ = DBLE
241peigs_CC += -DSTD_DBL -DSTD_INT
242peigs_FC += -align64 -DSTD_INT -DSTD_DBL -D$(peigs_COMM) -D$(peigs_CPU)
243peigs_CPP += -DSTD_INT -DSTD_DBL -P
244peigs_COMMLIB = -L$(TOPDIR)/lib/$(NWCHEM_TARGET) -ltcgmsg
245peigs_CTOFLIB = -lftn -lm -lc /usr/lib/crtn.o
246endif
247
248ifeq ($(peigs_TARGET),SGI_N32)
249peigs_CPU = MIPS
250peigs_COMM = TCGMSG
251peigs_CODEOBJ = DBLE
252peigs_CC += -DSTD_DBL -DSTD_INT -O3
253peigs_FC += -align64  -D$(peigs_COMM) -DSTD_INT -DSTD_DBL -D$(peigs_CPU) -O3
254peigs_CPP += -DSTD_INT -DSTD_DBL -D$(peigs_CPU) -P
255peigs_COMMLIB = -L$(TOPDIR)/lib/$(NWCHEM_TARGET) -ltcgmsg
256peigs_CTOFLIB = -lftn -lm -lc /usr/lib/crtn.o
257endif
258
259
260ifeq ($(peigs_TARGET),SGITFP)
261#SGI/TCGMSG, r10000 cpu 7.x compilers
262peigs_CPU = MIPS
263peigs_COMM = TCGMSG
264peigs_CODEOBJ = DBLE
265peigs_CC += -DSTD_DBL -64 -O3
266peigs_FC += -align64  -64 -DSTD_DBL  -D$(peigs_COMM) -D$(peigs_CPU) -O3
267peigs_CPP += -DSTD_DBL -P
268peigs_COMMLIB = -L$(TOPDIR)/lib/$(NWCHEM_TARGET) -ltcgmsg
269peigs_CTOFLIB = -lftn -lm -lc /usr/lib/crtn.o
270peigs_COMM  = TCGMSG
271peigs_CTOFLIB = -lftn -lm -lc /usr/lib/crtn.o
272endif
273
274ifeq ($(peigs_TARGET),CONVEX-SPP)
275#
276# Convex SPP-1200 running SPP-UX 3.2
277#
278peigs_CODEOBJ = DBLE
279peigs_COMM = TCGMSG
280peigs_CPU = HPPA
281peigs_CC += -DSTD_DBL -DSTD_INT
282peigs_FC += -DSTD_DBL -DSTD_INT  -D$(peigs_COMM)
283endif
284
285ifeq ($(peigs_TARGET),HPUX)
286#
287# try for HP running HPUX11.00
288#
289peigs_CODEOBJ = DBLE
290peigs_COMM = TCGMSG
291peigs_CPU = HPPA
292peigs_CC += -O -DSTD_DBL -DSTD_INT -D$(peigs_CPU)
293peigs_FC += -O -DSTD_DBL -DSTD_INT  -D$(peigs_COMM) -D$(peigs_CPU)
294endif
295
296ifeq ($(peigs_TARGET),HPUX64)
297#
298# try for HP running HPUX11.00 64-bit
299#
300peigs_CODEOBJ = DBLE
301peigs_COMM = TCGMSG
302peigs_CPU = HPPA
303peigs_CC += -O -DSTD_DBL  -D$(peigs_CPU)
304peigs_FC += -O -DSTD_DBL  -D$(peigs_COMM) -D$(peigs_CPU)
305ifdef USE_INTEGER4
306     peigs_CPP += -DSTD_INT
307     peigs_CC  += -DSTD_INT
308     peigs_FC  += -DSTD_INT
309endif
310endif
311
312ifeq ($(peigs_TARGET),IBM)
313#
314# IBM AIX
315#
316peigs_CODEOBJ = DBLE
317peigs_CPU = RS6000
318# -qarch=pwr (for peril) com (for any) , pwr2  or ppc
319peigs_COMM =TCGMSG
320peigs_CC  += -DSTD_INT -DSTD_DBL -DIBM  -DRS6000 -O -qinline
321# -O3 -qstrict -qinline -qfloat=rsqrt:fltint -qinline
322
323peigs_FC  += -d -I$(peigs_HDIR) -O3 -qstrict \
324-WF,-Iinclude,-DIBM,-DSTD_INT,-DSTD_DBL,-I$(peigs_HDIR),-DRS6000,-D$(peigs_COMM) \
325-qfloat=fltint -qinline
326ifdef RSQRT
327peigs_FC  += -qfloat=rsqrt:fltint
328endif
329
330peigs_CPP += -DRS6000 -DSTD_INT -DSTD_DBL -DIBM -I$(peigs_HDIR) -P
331peigs_BLASLIB   = -lblas
332peigs_LAPACKLIB = -llapack
333peigs_PEIGSLIB  = -lpeigs
334endif
335ifeq ($(peigs_TARGET),IBM64)
336#
337# IBM AIX
338#
339peigs_CODEOBJ = DBLE
340peigs_CPU = RS600064
341peigs_COMM =TCGMSG
342peigs_CC  += -D$(peigs_CPU) -DSTD_DBL -DIBM  -O -qinline -qmaxmem=8192
343peigs_FC  += -d -I$(peigs_HDIR) -O3 -qstrict \
344-qfloat=fltint -qinline
345ifdef RSQRT
346peigs_FC  += -qfloat=rsqrt:fltint
347endif
348peigs_CPP +=   -DSTD_DBL  -DIBM -I$(peigs_HDIR) -P
349  ifdef USE_INTEGER4
350     peigs_CPP += -DSTD_INT
351     peigs_CC  += -DSTD_INT
352     peigs_FC  += -WF,-Iinclude,-DIBM,-DSTD_DBL,-DSTD_INT,-I$(peigs_HDIR),-D$(peigs_CPU),-D$(peigs_COMM)
353  else
354     peigs_FC  += -WF,-Iinclude,-DIBM,-DSTD_DBL,-I$(peigs_HDIR),-D$(peigs_CPU),-D$(peigs_COMM)
355  endif
356
357peigs_BLASLIB   = -lblas
358peigs_LAPACKLIB = -llapack
359peigs_PEIGSLIB  = -lpeigs
360endif
361
362ifeq ($(peigs_TARGET),KSR8)
363#
364# real*8 and integer*8 VERSION FOR KSR
365# using the crummy optimized ksrlapk.a ksrblas.a
366#
367# -xfpu3 generate suspect answers for choleski
368#
369# KSR/TCGMSG
370	peigs_CC += -DSTD_DBL -DKSR8
371	peigs_CODEOBJ = DBLE
372	peigs_CPP += -P
373	peigs_CPU =KSR
374	peigs_COMM =TCGMSG
375#
376# peigs_BLASLIB         = -lksrblas
377# peigs_LAPACKLIB       = -lksrlapk
378	endif
379
380ifeq ($(peigs_TARGET),KSR)
381#
382# "real*8" version of lapack and blas
383# KSR/TCGMSG
384#
385# -xfpu3 generate suspect answers for choleski
386#
387	peigs_CODEOBJ	= DBLE
388	peigs_CC += -DSTD_DBL -O2
389	peigs_COPT = -O2
390peigs_FC += -O2 -DSTD_DBL  -D$(peigs_COMM)
391	peigs_CPP  += -P
392	peigs_CPU  =KSR
393	peigs_COMM =TCGMSG
394#
395#peigs_BLASLIB         = -lblas
396#peigs_LAPACKLIB       = -llapack
397	endif
398
399	ifeq ($(peigs_TARGET),SP)
400## IBM SP-1, sp-2 or cluster of rs6000 wt tcgmsg ( using xlf instead of mpxlf )
401	peigs_COMM =TCGMSG
402	peigs_CPU = RS6000
403	peigs_CODEOBJ=DBLE
404	peigs_CC  += -DSTD_INT -DSTD_DBL -DIBM  -DRS6000 -O3 -qstrict \
405	-I$(HDIR) -qfloat=rsqrt:fltint
406
407	peigs_FC  += -I$(peigs_HDIR) -O3 -qstrict \
408	-WF,-Iinclude,-DIBM,-DSTD_INT,-DSTD_DBL,-I$(peigs_HDIR),-DRS6000,-D$(peigs_COMM) \
409	-qfloat=fltint -qinline -NQ40000 -NT80000
410	ifdef RSQRT
411	peigs_FC  += -qfloat=rsqrt:fltint
412	endif
413
414	peigs_CPP += -DRS6000 -DSTD_INT -DSTD_DBL -DSTD_INT -DSTD_DBL -DIBM -I$(peigs_HDIR) -P
415
416ifeq ($(NWCHEM_TARGET_CPU),P2SC)
417	peigs_FC += -qarch=p2sc -qtune=p2sc
418
419# -qcache=type=d:level=1:size=128:line=256:assoc=4:cost=14 \
420# -qcache=type=i:level=1:size=32:line=128 \
421
422
423	peigs_CC += -qarch=p2sc -qtune=p2sc
424	endif
425
426ifeq ($(NWCHEM_TARGET_CPU),604)
427	peigs_FC += -qarch=604 -qtune=604
428	peigs_CC += -qarch=ppc -qtune=604
429	endif
430	endif
431
432
433	ifeq ($(peigs_TARGET),LAPI)
434## IBM SP-1, sp-2 or cluster of rs6000 wt tcgmsg ( using xlf instead of mpxlf )
435	peigs_COMM =TCGMSG
436	peigs_CPU = RS6000
437	peigs_CODEOBJ=DBLE
438	peigs_CC  += -DSTD_INT -DSTD_DBL -DIBM  -DRS6000 -O3 -qstrict \
439	-I$(peigs_HDIR) -qfloat=fltint  -qinline
440
441	peigs_FC  += -qthreaded -I$(peigs_HDIR) -O3 -qstrict \
442	-WF,-Iinclude,-DIBM,-DSTD_INT,-DSTD_DBL,-I$(peigs_HDIR),-DRS6000,-D$(peigs_COMM) \
443	-qfloat=fltint  -NQ40000 -NT80000 -qinline
444	ifdef RSQRT
445	peigs_FC  += -qfloat=rsqrt:fltint
446	endif
447
448	peigs_CPP += -DRS6000 -DSTD_INT -DSTD_DBL -DSTD_INT -DSTD_DBL -DIBM -I$(peigs_HDIR) -P
449	peigs_COMMLIB = -L$(TOPDIR)/lib/$(NWCHEM_TARGET) -ltcgmsg
450	peigs_BLASLIB = -lesslp2_r
451	peigs_LAPACKLIB = -lpeigs -lesslp2_r -llapack -lglobal -lutil
452
453	endif
454ifeq ($(peigs_TARGET),LAPI64)
455#
456# IBM AIX
457#
458	peigs_CODEOBJ = DBLE
459	peigs_CPU = RS600064
460	peigs_COMM =TCGMSG
461	peigs_CC  += -D$(peigs_CPU) -DSTD_DBL -DIBM  -O -qinline \
462	-Iinclude -DIBM -DSTD_DBL -I$(peigs_HDIR) -D$(peigs_CPU) -D$(peigs_COMM) \
463	-qfloat=rsqrt:fltint -qinline
464	peigs_CPP +=   -DSTD_DBL -DIBM -I$(peigs_HDIR) -P
465	ifdef USE_INTEGER4
466	peigs_CPP += -DSTD_INT
467	peigs_CC  += -DSTD_INT
468peigs_FC  += -WF,-Iinclude,-DIBM,-DSTD_DBL,-DSTD_INT,-I$(peigs_HDIR),-D$(peigs_CPU),-D$(peigs_COMM)
469	else
470peigs_FC  += -WF,-Iinclude,-DIBM,-DSTD_DBL,-I$(peigs_HDIR),-D$(peigs_CPU),-D$(peigs_COMM)
471	endif
472
473	peigs_BLASLIB   = -lessl_r
474	peigs_LAPACKLIB = -llapack -lessl_r
475	endif
476
477ifeq ($(peigs_TARGET),MACX)
478#MACOSX
479ifeq ($(_CPU),i486)
480	peigs_CPU  = PENTIUM
481        peigs_COMM = TCGMSG
482        peigs_CODEOBJ = DBLE
483        peigs_CC += -DSTD_DBL -DSTD_INT
484        peigs_FC += -D$(peigs_CPU) -DSTD_DBL -DSTD_INT -D$(peigs_COMM)
485else
486	peigs_CPU  = RS6000
487	peigs_COMM = TCGMSG
488	peigs_CODEOBJ = DBLE
489	peigs_CC += -DSTD_DBL -DSTD_INT
490peigs_FC += -D$(peigs_CPU) -DSTD_DBL -DSTD_INT -D$(peigs_COMM)
491	peigs_CPP += -DSTD_INT -DSTD_DBL -P
492#peigs_COMMLIB = -L$(TOPDIR)/lib/$(NWCHEM_TARGET) -ltcgmsg
493	peigs_CPP = /usr/bin/cpp -I${peigs_HDIR} -D${peigs_CPU} -D${peigs_COMM} \
494	-D${peigs_TARGET_definition}
495ifeq ($(FC),xlf)
496	peigs_FC  = $(FC) -O3 -g -qextname -qstrict   -I$(peigs_HDIR)  \
497-WF,-Iinclude,-DIBM,-DSTD_DBL,-DSTD_INT,-I$(peigs_HDIR),-DRS6000,-D$(peigs_COMM)
498	endif
499endif
500	endif
501ifeq ($(peigs_TARGET),MACX64)
502#MACOSX Snow Leopard
503	peigs_CPU  = PENTIUM
504        peigs_COMM = TCGMSG
505        peigs_CODEOBJ = DBLE
506        peigs_CC += -DSTD_DBL #-DSTD_INT
507        peigs_FC += -D$(peigs_CPU) -DSTD_DBL  -D$(peigs_COMM)
508endif
509
510ifeq ($(peigs_TARGET),$(findstring $(peigs_TARGET),LINUX64 CYGWIN64 CATAMOUNT))
511#alpha with /tcgmsg
512_CPU = $(shell uname -m  )
513#hack for mingw64
514ifeq ($(_CPU),amd64)
515_CPU = x86_64
516endif
517ifeq ($(_CPU),i686)
518_CPU = x86_64
519endif
520	peigs_COMM = TCGMSG
521	peigs_CODEOBJ = DBLE
522	peigs_CPP = $(CPP) -D${CPU} -DSTD_DBL
523	ifdef USE_INTEGER4
524	peigs_CPP += -DSTD_INT
525	peigs_CC  += -DSTD_INT
526	peigs_FC  += -DSTD_INT
527	endif
528	peigs_CC  += -DSTD_DBL
529	peigs_FC +=  -DSTD_DBL    -D$(peigs_COMM)  -D$(peigs_CPU)
530ifeq ($(_CPU),alpha)
531	peigs_CPU  = ALPHA
532ifeq ($(CC),gcc)
533	peigs_CC  += -O3  -mcpu=ev56
534	else
535	peigs_CC  += -O2  -fast -tune host -arch host
536	endif
537	peigs_FC +=  -O1 -DLINUX64 -DLINUX -tune host -arch host
538	endif
539
540ifeq ($(_CPU),ia64)
541#ia64 with /tcgmsg
542	peigs_CPU  = PENTIUM
543ifeq ($(FC),efc)
544	peigs_FC  +=  -O3  -tpp2 -ftz
545	endif
546ifeq ($(CC),ecc)
547	peigs_CC  +=  -O3  -mp1 -ftz -hlo -unroll
548	endif
549	endif
550
551ifeq ($(_CPU),$(findstring $(_CPU), mips mips64 mips64el))
552        peigs_CPU  = PENTIUM
553endif
554ifeq ($(_CPU),aarch64)
555	peigs_CPU  = PENTIUM
556endif
557ifeq ($(_CPU),x86_64)
558	peigs_CPU  = PENTIUM
559ifeq ($(FC),pgf90)
560	peigs_FC  +=  -Kieee
561	endif
562	endif
563ifeq ($(_CPU),$(findstring $(_CPU), powerpc64 ppc64 ppc64le))
564#ppc64 with /tcgmsg
565	peigs_CPU = RS6000
566ifeq ($(FC),xlf)
567	peigs_FC  = xlf -O3 -qstrict -qextname -q64 -I$(peigs_HDIR)
568	peigs_FC += -WF,-Iinclude,-DIBM,-DSTD_DBL,-I$(peigs_HDIR),-DRS6000,-D$(peigs_COMM)
569	peigs_FC += -qtune=auto -qarch=auto -qcache=auto
570	peigs_FC += -qnosave
571	ifdef USE_GPROF
572	  peigs_FC += -pg
573	endif
574	peigs_CC += -DIBM -DSTD_DBL -I$(peigs_HDIR) -DRS6000 -D$(peigs_COMM)
575
576        ifdef USE_INTEGER4
577             peigs_CPP += -DSTD_INT
578             peigs_CC += -DSTD_INT
579             peigs_FC += -WF,-DSTD_INT -qintsize=4
580        else
581             peigs_FC += -qintsize=8
582        endif
583    endif
584  endif
585
586endif#end of LINUX64
587
588ifeq ($(peigs_TARGET),cray-sv2)
589peigs_COMM = TCGMSG
590peigs_CPP = $(CPP) -DSTD_DBL
591peigs_CODEOBJ = DBLE
592peigs_CC = $(CC) $(COPTIONS) -I$(peigs_HDIR)
593peigs_CC  +=  -DSTD_DBL -O
594peigs_FC +=     -DSTD_DBL  -D$(peigs_COMM)  -Ovector2
595  ifdef USE_INTEGER4
596     peigs_CPP += -DSTD_INT
597     peigs_CC  += -DSTD_INT
598     peigs_FC  += -DSTD_INT
599  endif
600endif
601
602ifeq ($(peigs_TARGET),$(findstring $(peigs_TARGET),LINUX CYGWIN CYGNUS))
603#
604# Linux running on an x86 using f77 on f2c
605#
606peigs_COMM = TCGMSG
607peigs_CODEOBJ = DBLE
608peigs_CPU = PENTIUM
609
610ifeq ($(peigs_TARGET), CYGNUS CYGWIN)
611peigs_CC += -DLINUX
612endif
613peigs_CC += -DSTD_DBL -DSTD_INT
614ifeq ($(CC),gcc)
615	peigs_CC  +=  -O2  -g
616endif
617ifeq ($(CC),icc)
618	peigs_CC  +=  -O3  -xW -hlo -unroll
619endif
620peigs_FC += -D$(peigs_CPU) -DSTD_DBL -DSTD_INT -D$(peigs_COMM)
621peigs_CPP += -DSTD_INT -DSTD_DBL -P
622peigs_COMMLIB = -L$(TOPDIR)/lib/$(NWCHEM_TARGET) -ltcgmsg
623#
624# on the hpcc? laptops add /usr/lib/gcc-lib/i486-linux/2.7.0 to your path
625# or make link from /usr/bin
626#
627# temporary slackware hack until george gets cpp/fconvert in the builds
628#
629peigs_CPP = /usr/bin/cpp -I${peigs_HDIR} -D${peigs_CPU} -D${peigs_COMM} \
630-D${peigs_TARGET_definition}
631    ifeq ($(FC),xlf)
632      peigs_CPU = RS6000
633      peigs_FC  = $(FC) -O3 -g -qextname -qstrict   -I$(peigs_HDIR)  \
634      -WF,-Iinclude,-DIBM,-DSTD_DBL,-DSTD_INT,-I$(peigs_HDIR),-DRS6000,-D$(peigs_COMM)
635    endif
636     ifeq ($(FC),blrts_xlf)
637       peigs_CPU = RS6000
638       peigs_FC  = $(FC) -O3 -g -qextname -qstrict   -I$(peigs_HDIR)  \
639       -WF,-Iinclude,-DIBM,-DSTD_DBL,-DSTD_INT,-I$(peigs_HDIR),-DRS6000,-D$(peigs_COMM)
640     endif
641endif
642
643ifeq ($(peigs_TARGET),PGLINUX)
644#
645# Linux running on an x86 using pgf77 and gcc
646#
647peigs_COMM = TCGMSG
648peigs_CODEOBJ = DBLE
649peigs_CPU = PENTIUM
650peigs_CC += -DSTD_DBL -DSTD_INT
651peigs_FC += -D$(peigs_CPU) -DSTD_DBL -DSTD_INT -D$(peigs_COMM)
652peigs_CPP += -DSTD_INT -DSTD_DBL -P
653peigs_COMMLIB = -L$(TOPDIR)/lib/$(NWCHEM_TARGET) -ltcgmsg
654peigs_CPP = /usr/bin/cpp -I${peigs_HDIR} -D${peigs_CPU} -D${peigs_COMM} \
655-D${peigs_TARGET_definition}
656endif
657
658ifeq ($(peigs_TARGET),FUJITSU_VPP)
659peigs_CODEOBJ = DBLE
660peigs_CPU = VPP
661endif
662
663ifeq ($(peigs_TARGET),FUJITSU_VPP64)
664peigs_CODEOBJ = DBLE
665peigs_CPU = VPP
666endif
667
668ifeq ($(peigs_TARGET),BGL)
669#Blue Gene/L
670     peigs_COMM =TCGMSG
671     peigs_CPU = RS6000
672     peigs_CODEOBJ=DBLE
673     peigs_CC += -DSTD_INT -DSTD_DBL -g -O3
674     peigs_FC += -WF,-Iinclude,-DSTD_DBL,-DSTD_INT,-DRS6000,-D$(peigs_COMM)
675     peigs_CPP += -DBGL -DRS6000 -DSTD_INT -DSTD_DBL -I$(peigs_HDIR) -P
676     peigs_COMMLIB = -L$(TOPDIR)/lib/$(NWCHEM_TARGET) -ltcgmsg
677     peigs_BLASLIB   = -lesslbg
678     peigs_LAPACKLIB = -llapack -lesslbg
679endif
680
681ifeq ($(peigs_TARGET),BGP)
682#Blue Gene/P
683     peigs_COMM =TCGMSG
684     peigs_CPU = RS6000
685     peigs_CODEOBJ=DBLE
686     peigs_CC += -DSTD_INT -DSTD_DBL -g -O3 -qstrict -qarch=450d -qtune=450
687     peigs_FC += -WF,-Iinclude,-DTCGMSG,-DSTD_DBL,-DSTD_INT,-DRS6000,-D$(peigs_COMM)
688     peigs_CPP += -DDCMF -DMPI -DBGP -DRS6000 -DSTD_INT -DSTD_DBL -I$(peigs_HDIR) -P
689     peigs_COMMLIB = -L$(TOPDIR)/lib/$(NWCHEM_TARGET) -ltcgmsg
690     peigs_BLASLIB   = -lesslbg
691     peigs_LAPACKLIB = -llapack -lesslbg
692     #peigs_AR = powerpc-bgp-linux-ar -r
693     #peigs_RANLIB = powerpc-bgp-linux-ranlib
694endif
695
696
697ifeq ($(peigs_TARGET),BGQ)
698#Blue Gene/Q
699     peigs_COMM =TCGMSG
700     peigs_CPU = RS6000
701     peigs_CODEOBJ=DBLE
702     peigs_CC +=  -DSTD_DBL -g -O2
703     # Jeff: This needs serious cleanup and care to be consistent w.r.t. config/makefile.h
704     ifeq ($(FC),mpif77)
705         #peigs_FC += -fdefault-integer-8 -g -O2 -funderscoring
706         peigs_FC += -Iinclude -DTCGMSG -DSTD_DBL -DSTD_INT -DRS6000 -D$(peigs_COMM)
707         peigs_BLASLIB   = -lblas
708         peigs_LAPACKLIB = -llapack
709     else
710         #peigs_FC += -qintsize=8 -g -O2 -qEXTNAME
711         ifdef USE_INTEGER4
712          peigs_FC += -WF,-Iinclude,-DTCGMSG,-DSTD_DBL,-DSTD_INT,-DRS6000,-D$(peigs_COMM)
713         else
714          peigs_FC += -WF,-Iinclude,-DTCGMSG,-DSTD_DBL,-DRS6000,-D$(peigs_COMM)
715         endif
716     endif
717     peigs_BLASLIB   = -lblas -lesslbg
718     peigs_LAPACKLIB = -llapack -lesslbg
719     #
720     peigs_CPP += -DMPI -DBGQ -DRS6000  -DSTD_DBL -I$(peigs_HDIR) -P
721     ifdef USE_INTEGER4
722      peigs_CPP += -DSTD_INT
723      peigs_CC  += -DSTD_INT
724     endif
725     peigs_COMMLIB = -L$(TOPDIR)/lib/$(NWCHEM_TARGET) -ltcgmsg
726     peigs_AR = powerpc64-bgq-linux-ar -r
727     peigs_RANLIB = powerpc64-bgq-linux-ranlib
728endif
729
730
731export peigs_COMM
732export peigs_CC
733export peigs_FC
734export peigs_CODEOBJ
735export peigs_FCONVERT
736export peigs_TARGET
737export peigs_NODE
738export peigs_COMM
739export peigs_CPP
740
741