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