1 jones 1.1 ## This makefile must be executed with gmake (gnu make).
2
|
3 jones 1.2 #set to g77 or absoft to choose a compiler under linux
4 LINUX_COMPILER=g77
|
5 jones 1.6 #LINUX_COMPILER=absoft
|
6 jones 1.2
|
7 jones 1.1 simcdir = .
|
8 jones 1.4 #CERN_ROOT = /site/cernlib/pc_linux/99
|
9 jones 1.2 #CERN_ROOT = /cern/pro
|
10 jones 1.6 #export ABSOFT=/apps/absoft/PRO/usr/absoft
11 CERN_ROOT=/site/cernlib/i386_rhel3/2003
|
12 jones 1.1
13 RM = rm -f
14 SHELL = /bin/sh
15
16 SPEC = ./hms/
17
18 SHARE = ./shared/
19
|
20 jones 1.4 my_objs = $(SPEC)mc_hms.o $(SPEC)mc_hms_hut.o $(SPEC)mc_hms_recon.o \
|
21 jones 1.2 project.o rotate_haxis.o check_dipole.o \
22 transp.o musc.o musc_ext.o \
23 stringlib.o ranecu.o loren.o \
24 locforunt.o gauss1.o mt19937.o \
|
25 jones 1.5 trg_track.o hms_track.o \
|
26 jones 1.10 qfs_new13_sub.o init.o \
|
27 jones 1.3 brem.o radc.o hcf2r.o \
|
28 jones 1.13 hallc2h.o enerloss_new.o engine_eloss.o christy_rss.o resmod.o ressf.o \
|
29 jones 1.15 qfs_deut.o call_pb_ext_subroutine.o externals_subroutine.o \
30 fitemc_2006.o quasiy8_2006.o F1F2IN06.o
|
31 jones 1.1
|
32 jones 1.8 my_dobjs = $(SPEC)mc_hms.do $(SPEC)mc_hms_hut.do $(SPEC)mc_hms_recon.do \
33 project.do rotate_haxis.do check_dipole.do \
34 transp.do musc.do musc_ext.do \
35 stringlib.do ranecu.do loren.do \
36 locforunt.do gauss1.do mt19937.do \
37 trg_track.do hms_track.do \
|
38 jones 1.10 qfs_new13_sub.do init.do \
|
39 jones 1.8 brem.do radc.do hcf2r.do \
|
40 jones 1.13 hallc2h.do enerloss_new.do engine_eloss.do christy_rss.do resmod.do ressf.do \
|
41 jones 1.15 qfs_deut.do call_pb_ext_subroutine.do externals_subroutine.do \
42
|
43 jones 1.8
|
44 jones 1.1 MYOS := $(subst -,,$(shell uname))
45 CERNLIBS = -lgeant$(GEANTVER) -lpawlib -lgraflib -lgrafX11 -lpacklib -lmathlib
46
47 ifeq ($(MYOS),HPUX)
48 ifneq (,$(findstring 09,$(shell uname -r)))
49 HPUXVERSION := 09
50 else
51 HPUXVERSION := 10
52 endif
53 LIBROOT = $(Csoft)/../$(MYOS)$(HPUXVERSION)/lib
54 else
55 LIBROOT = $(Csoft)/../$(MYOS)/lib
56 endif
57
58 ifeq ($(MYOS),HPUX)
59 CERN_ROOT = /site/cernlib/hp700_ux90/96a
60 FFLAGS=+U77 +ppu -C +e +es +FPVZOU -O +Onolimit -R8
61 LDFLAGS=-Wl,-a archive
62 OTHERLIBS = \
63 -Wl,-L$(CERN_ROOT)/lib -lpacklib $(CERNLIBS) \
64 -Wl,-L/usr/lib/X11R5 -lX11 -lm
65 jones 1.1 endif
66
67
68 ifeq ($(MYOS),ULTRIX)
69 FFLAGS=-check_bounds
70 LDFLAGS=
71 OTHERLIBS = -L$(CERN_ROOT)/lib -lpacklib $(CERNLIBS)
72 endif
73
74 ifeq ($(MYOS),SunOS)
75 CERN_ROOT = /site/cernlib/sun4_solaris2/97a
76 FFLAGS=-g -e -I$(Csoft)/SRC/INCLUDE
77 ifeq ($(OSTYPE),SunOS4)
78 OTHERLIBS = -L$(CERN_ROOT)/lib $(CERNLIBS) -lnsl -lX11
79 else
80 OTHERLIBS = -L$(CERN_ROOT)/lib $(CERNLIBS) -lnsl -lsocket -lX11
81 endif
82 endif
83
84 ifeq ($(MYOS),AIX)
85 F77=f77
86 jones 1.1 FFLAGS=-g -qfixed=132 -qextname -O -I$(Csoft)/SRC/INCLUDE
87 OTHERLIBS = -L$(CERN_ROOT)/lib -lpacklib $(CERNLIBS) -lX11
88 endif
89
90 ifeq ($(MYOS),OSF1)
91 F77=f77
92 CERN_ROOT = /disk1/lib/cern/new
93 LIBROOT = $(Csoft)/OSF1/lib
94 FFLAGS= -r8 -extend_source -Wl,-taso -I -warn argument_checking \
95 -warn declarations -warn truncated_source -warn unused
96 LDFLAGS=
97 OTHERLIBS = -Wl,-L$(CERN_ROOT)/lib \
98 -lpacklib $(CERNLIBS) -Wl,-L/usr/lib/X11R5 -lX11 -lm
99 endif
100
|
101 jones 1.2 ifeq ($(MYOS),Linux)
102 ifeq ($(LINUX_COMPILER),absoft)
103 FABSFLAGS=-V -W -f -s -N1 -B108 -B100 -N90 -N22 -N2 -N113
104 INCLUDES=-I$(Csoft)/SRC/INCLUDE
105 EXTRAFLAGS=-DABSOFTFORTRAN
106 FFLAGS=-O $(INCLUDES) $(FABSFLAGS) $(EXTRAFLAGS)
107 FFLAG1=$(FFLAGS) -c
|
108 jones 1.6 OTHERLIBS = -L$(CERN_ROOT)/lib $(CERNLIBS) -lV77 -lU77 -lg2c -lc -lm -lnsl
|
109 jones 1.2 FC := $(ABSOFT)/bin/f77
110 F77 := $(ABSOFT)/bin/f77
111 endif
112 ifeq ($(LINUX_COMPILER),g77)
113 FC=g77
114 F77=g77
|
115 jones 1.6 OTHERLIBS=-L$(CERN_ROOT)/lib -lpacklib -lmathlib -lnss_nis -lnsl
|
116 jones 1.10 ## FFLAGSO=-O1 -malign-double -fno-automatic -I. -ffixed-line-length-none -fno-second-underscore
117 ## FFLAGSO=-O1 -malign-double -fno-automatic -I. -ffixed-line-length-none -fno-second-underscore -Wall -Wsurprising
118 FFLAGSO=-O1 -malign-double -fno-automatic -I. -ffixed-line-length-none -fno-second-underscore -Wimplicit -Wall -Wsurprising
|
119 jones 1.8 FFLAGSD=-g -malign-double -fno-automatic -I. -ffixed-line-length-none -fno-second-underscore
|
120 jones 1.2 endif
121 endif
122
|
123 jones 1.1 %.o: %.f
|
124 jones 1.8 $(F77) $(FFLAGSO) -c $< -o $@
125 %.do: %.f
126 $(F77) $(FFLAGSD) -c $< -o $*.do
|
127 jones 1.1
128 mc_hms_single: $(my_objs) Makefile mc_hms_single.o
|
129 jones 1.8 $(F77) -o $@ $(FFLAGSO) mc_hms_single.o $(my_objs) $(OTHERLIBS)
|
130 jones 1.1
|
131 jones 1.8 debug: $(my_dobjs) Makefile mc_hms_single.do
132 $(F77) -o mc_hms_single_dbg $(FFLAGSD) mc_hms_single.do $(my_dobjs) $(OTHERLIBS)
|
133 jones 1.2
|
134 jones 1.1 clean:
|
135 jones 1.2 find . -name '*.o' -exec rm {} \;
|
136 jones 1.8 find . -name '*.do' -exec rm {} \;
137 rm -f mc_hms_single mc_hms_single_dbg
|
138 jones 1.2
139 #the rule below updates a file, Makefile.dep, that lists which include files
140 #each fortran file uses. If an include file is changed, all the fortran files
141 #that use it will automatically be recompiled. p.mckee dec03
142 Makefile.dep : *.inc gen_constants.par
143 @ echo "Updating dependencies on include files"
144 @ echo -e "#specify include files used by each .f file\n" > Makefile.dep
145 @ for file in `ls *.f | sed 's/\.f//'` ; do\
146 inc_files=`cat $$file.f | sed -n 's/^[[:blank:]]*[Ii][Nn][Cc][Ll][Uu][Dd][Ee][ ]*['\''"]\(.*\)['\''"]/\1/p' | sort | uniq | xargs echo -n` ;\
147 if [ -n "$$inc_files" ]; then \
148 echo "$$file.o : $$file.f $$inc_files" >> Makefile.dep;\
|
149 jones 1.8 echo "$$file.do : $$file.f $$inc_files" >> Makefile.dep;\
|
150 jones 1.2 fi;\
151 done
152
153 include Makefile.dep
|