1 | include $(DOMHOME)/HOSTS/$(DOM_HOSTTYPE)/makefile.h 2 | 3 | # Canceling implicit rule %.F => %.o 4 | %.o : %.F 5 | %.o : %.mod 6 | 7 | # 8 | # Version and outpath 9 | # ------------------- 10 | # 11 | 12 | HOST = $(DOMHOME)/HOSTS/$(DOM_HOSTTYPE) 13 | OUT = $(HOST) 14 | 15 | # 16 | # Sources directories 17 | # ------------------- 18 | # 19 | 20 | TOOLD = $(DOMHOME)/TOOLS/VISU 21 | EXTRN = $(DOMHOME)/TOOLS/EXTERNAL 22 | COMMON = $(DOMHOME)/TOOLS/COMMON 23 | INCFILE = $(HOST)/dom.inc 24 | CONST = $(DOMHOME)/SOURCES/MAIN 25 | 26 | # 27 | # Quiet mode 28 | # 29 | .SILENT : 30 | 31 | # 32 | # Suffixes 33 | # -------- 34 | 35 | .SUFFIXES: .o .F .c .HH .h 36 | 37 | # 38 | # Intermediate files to keep 39 | # -------------------------- 40 | 41 | .PRECIOUS : %.o %_m4.f %.mod 42 | 43 | # 44 | # Executable files 45 | # ---------------- 46 | # 47 | 48 | VISUEXEC = $(OUT)/visual_$(DOM_VERSION).e_$(DOM_HOSTTYPE) 49 | 50 | # 51 | # List of object files for VISUAL 52 | # ------------------------------ 53 | # 54 | 55 | VISU_CFILES_OBJ = \ 56 | $(EXTRN)/ensightgold_writecbin.o 57 | 58 | VISU_EXTERNAL_OBJ = \ 59 | $(EXTRN)/avbp_coor.o \ 60 | $(EXTRN)/avbp_conn.o \ 61 | $(EXTRN)/ensight_variables.o \ 62 | $(EXTRN)/ensightgold_geometry.o \ 63 | $(EXTRN)/ensightgold_write.o 64 | 65 | VISU_GAMBIT_OBJ = \ 66 | $(COMMON)/gambit_read.o 67 | 68 | VISU_OBJS = \ 69 | $(TOOLD)/SRC/creategeometry_gambit.o \ 70 | $(TOOLD)/SRC/visual_ensight.o 71 | 72 | CONST_OBJ = \ 73 | $(CONST)/dom_constants.h 74 | 75 | # 76 | # MODULES 77 | # ------- 78 | 79 | VISU_EXTERNAL_MOD = $(VISU_EXTERNAL_OBJ:%.o=%.mod) 80 | VISU_GAMBIT_MOD = $(VISU_GAMBIT_OBJ:%.o=%.mod) 81 | 82 | # 83 | # ALL OBJECTS 84 | # ----------- 85 | 86 | ALL_OBJ = $(VISU_EXTERNAL_OBJ) $(VISU_CFILES_OBJ) $(VISU_GAMBIT_OBJ) $(VISU_OBJS) 87 | 88 | # 89 | # VISU compilation 90 | # ------------------- 91 | 92 | all : $(VISUEXEC) 93 | @echo 94 | @echo "****************************************" 95 | @echo 96 | @echo " Executable created :" 97 | @echo $(VISUEXEC) 98 | @echo 99 | @-if [ $(DOM_HOSTTYPE) = 'IMHOTEP' ] ; then \ 100 | echo " WARNING: Under this compilator segmentation faults may" ;\ 101 | echo " appear. There is a memory bug to be repared." ;\ 102 | echo "";\ 103 | fi 104 | @echo "****************************************" 105 | $(RM) *.o *_m4.f *.mod dom.inc *.h 106 | 107 | $(VISUEXEC) : $(CONST_OBJ) $(ALL_OBJ) 108 | @echo 109 | @echo "****************************************" 110 | @echo 111 | @echo "Linking Object Files ...." 112 | @echo 113 | $(FFS) $(LDFLAGS) -o $(VISUEXEC) $(ALL_OBJ) 114 | @echo "****************************************" 115 | @echo 116 | 117 | # 118 | # Special dependencies 119 | # ---------------------- 120 | 121 | $(VISU_OBJS) : $(VISU_EXTERNAL_MOD) $(VISU_GAMBIT_MOD) 122 | 123 | $(EXTRN)/ensight_variables.o : $(EXTRN)/avbp_coor.mod 124 | 125 | $(EXTRN)/ensightgold_write.o : $(EXTRN)/ensight_variables.mod 126 | 127 | $(EXTRN)/ensightgold_geometry.o : $(EXTRN)/avbp_coor.mod $(EXTRN)/avbp_conn.mod 128 | 129 | $(VISU_GAMBIT_MOD) : $(EXTRN)/ensightgold_geometry.mod 130 | 131 | # 132 | # Cleaning VISU 133 | # 134 | 135 | clean: clean_SUBROUTINE clean_VISU_CFILE clean_VISU_EXTERNAL clean_CONST 136 | @$(RM) *.mod *.o *_m4.f *.h dom.inc 137 | 138 | clean_SUBROUTINE : 139 | @echo 140 | @echo "****************************************" 141 | @echo 142 | @echo "Removing VISU object files" 143 | @echo 144 | $(RM) $(TOOLD)/SRC/*_m4.f 145 | $(RM) $(TOOLD)/SRC/*.o 146 | @echo "****************************************" 147 | @echo 148 | 149 | clean_VISU_CFILE: 150 | @echo 151 | @echo "****************************************" 152 | @echo 153 | @echo "Removing CFILES object files" 154 | @echo 155 | $(RM) $(EXTRN)/ensightgold_writecbin.o 156 | @echo "****************************************" 157 | 158 | clean_VISU_EXTERNAL : 159 | @echo 160 | @echo "****************************************" 161 | @echo 162 | @echo "Removing EXTERNAL object files" 163 | @echo 164 | $(RM) $(VISU_EXTERNAL_OBJ) 165 | $(RM) $(VISU_GAMBIT_OBJ) 166 | @echo "Removing EXTERNAL _m4.f files" 167 | @echo 168 | $(RM) $(VISU_EXTERNAL_OBJ:%.o=%_m4.f) 169 | $(RM) $(VISU_GAMBIT_OBJ:%.o=%_m4.f) 170 | @echo "Removing EXTERNAL .mod files" 171 | @echo 172 | $(RM) $(VISU_EXTERNAL_MOD) 173 | $(RM) $(VISU_GAMBIT_MOD) 174 | @echo "****************************************" 175 | @echo 176 | 177 | clean_CONST : 178 | @echo 179 | @echo "****************************************" 180 | @echo 181 | @echo "Removing *.h files " 182 | @echo 183 | @$(RM) $(CONST)/*.h 184 | @$(RM) $(TOOLD)/SRC/*.h 185 | @$(RM) dom.inc 186 | @echo "****************************************" 187 | 188 | 189 | 190 | # 191 | # Special rules 192 | # 193 | 194 | %.mod : %.o 195 | touch $@ 196 | 197 | # 198 | # Suffix Rules: 199 | # 200 | 201 | dom.inc : $(INCFILE) 202 | @echo 203 | @echo "****************************************" 204 | @echo "Linking dom.inc" 205 | $(RM) dom.inc 206 | $(LN) $(INCFILE) . 207 | @echo "****************************************" 208 | @echo 209 | 210 | %_m4.f : %.F dom.inc 211 | @echo 212 | @echo "****************************************" 213 | @echo 214 | @echo " Preprocessing " $*.F 215 | $(M4DIR) $*.F > $*_m4.f 216 | sed '1d' $*_m4.f > tmp_m4.f 217 | $(MV) tmp_m4.f $*_m4.f 218 | 219 | %.o : %_m4.f 220 | @echo " Compiling " $*_m4.f 221 | $(FFS) -I$(EXTRN) -I$(COMMON) -I$(CONST) -c $(FFSLAGS) -o $@ $(@:%.o=%_m4.f) 222 | @-if [ -f $(notdir $*).mod ] ; then $(MV) $(notdir $*).mod $*.mod ; fi 223 | @echo 224 | @echo "****************************************" 225 | 226 | %.o : %.c 227 | @echo 228 | @echo "****************************************" 229 | @echo 230 | @echo "Compiling " $*.c 231 | $(CC) $(CFLAGS) -c -o $@ $(@:%.o=%.c) 232 | @echo 233 | @echo "****************************************" 234 | @echo 235 | 236 | %.h : %.HH dom.inc 237 | @echo 238 | @echo "****************************************" 239 | @echo " Preprocessing " $*.HH 240 | @$(M4DIR) $*.HH > $*.h 241 | @echo 242 | @echo "****************************************" 243 | 244 |