HARM
harm and utilities
 All Data Structures Files Functions Variables Typedefs Macros Pages
maketail.inc
Go to the documentation of this file.
1 ########################
2 #
3 # START of maketail.inc
4 #
5 ########################
6 
7 # for long doubles -m96bit-long-double
8 ##CFLAGSGCCOTHER= -O2 -m128bit-long-double -Wall -Wuninitialized -fno-builtin -DUSINGICC=0
9 ##CFLAGSOTHER= -O3 -long-double -unroll -Wall -Wuninitialized -fno-builtin -DUSINGICC=0
10 
11 # set some constants
12 ONE=1
13 ZERO=0
14 
15 
16 ########################
17 #
18 # Setup CC and CC2 and MMCOMP
19 #
20 ########################
21 
22 ifeq ($(USEMPI),1)
23 
24 ifeq ($(USEMCCSWITCH),1)
25 CC=$(MCC) -cc=$(COMP) $(CFLAGS3) $(CFLAGS2) $(CDEBUG)
26 endif
27 
28 ifeq ($(USEMCCSWITCH),0)
29 CC=$(MCC) $(CFLAGS3) $(CFLAGS2) $(CDEBUG)
30 endif
31 
32 ifeq ($(USEMCCSWITCHFORGCC),1)
33 CC=$(MCC) -cc=$(COMP) $(CFLAGS3) $(CFLAGS2) $(CDEBUG)
34 CC2=$(MCC) -cc=gcc $(GCCCFLAGS)
35 endif
36 
37 ifeq ($(USEMCCSWITCHFORGCC),0)
38 CC2=gcc $(GCCCFLAGS)
39 endif
40 
41 MMCOMP=$(CC)
42 #MMCOMP=$(MCC) $(CFLAGS3) $(CFLAGS2) $(CDEBUG)
43 #MMCOMP=$(COMP)
44 
45 endif
46 ############## endif usempich==1
47 
48 
49 
50 ifeq ($(USEMPI),0)
51 CC=$(COMP) $(CFLAGS3) $(CFLAGS2) $(CDEBUG)
52 CC2=gcc $(GCCCFLAGS)
53 
54 MMCOMP=$(COMP)
55 
56 endif
57 ########### endif usempich==0
58 
59 
60 
61 
62 ########################
63 #
64 # How to compile generatenprs
65 #
66 ########################
67 
68 ifeq ($(USESPECIAL4GENERATE),1)
69 CCGENERATEFINAL=$(CCGENERATE)
70 endif
71 
72 ifeq ($(USESPECIAL4GENERATE),0)
73 CCGENERATEFINAL=$(CC)
74 endif
75 
76 
77 ########################
78 #
79 # REPORTS
80 #
81 ########################
82 
83 $(warning COMP is $(COMP))
84 $(warning MMCOMP is $(MMCOMP))
85 $(warning CC is $(CC))
86 $(warning CC2 is $(CC2))
87 $(warning CCGENERATEFINAL is $(CCGENERATEFINAL))
88 
89 
90 ########################
91 #
92 # INCLUDES
93 #
94 ########################
95 
96 # when adding C files, only need to modify the below
97 include maketail.harm.inc
98 
99 # below is for long double code (not HARM)
100 include maketail.ldouble.inc
101 
102 # below is for liaison code
103 include maketail.liaison.inc
104 
105 # below is for joninterp code
106 include maketail.joninterp.inc
107 
108 # below is for bin2txt code
109 include maketail.bin2txt.inc
110 
111 # below is for smcalc code
112 include maketail.smcalc.inc
113 
114 
115 
116 # "make prep" must be called first so these are set correctly
117 #MYCOMMANDS1 := $(shell cat objsonepoint.cmd.list )
118 #MYCOMMANDS2 := $(shell cat objsmanypoints.cmd.list )
119 #MYCOMMANDS3 := $(shell cat objspuredouble.cmd.list )
120 
121 
122 ########################
123 #
124 # PRIMARY MAKE CALL:
125 #
126 ########################
127 
128 #all: $(PREP) $(CMD) $(FINISH)
129 all: $(CMD) $(FINISH)
130 
131 
132 ########################
133 #
134 # CLEANUP:
135 #
136 ########################
137 # CAREFUL with spaces below -- don't put space in front of "*":
138 
139 cleanbackup:
140  rm *~
141 
142 clean:
143  rm -rf *.o
144 
145 cleani: clean
146  rm -rf *.il
147 
148 cleanall: cleani
149  rm -rf *~
150 
151 superclean: cleanall
152  rm -rf $(CMD) $(CMD2) $(LIAISONCMD) $(JONINTERPCMD) $(BIN2TXTCMD) $(SMCALCCMD) $(PREP) $(PREPLD) $(PREPLIAISON) $(PREPJONINTERP) deps.onepoint.list deps.manypoints.list deps.puredouble.list objsmanypoints.cmd.list objsonepoint.cmd.list objslong.cmd.list objspuredouble.cmd.list global.defnprs.h generatenprs libml.a
153  rm -rf objsonepoint.cmd.list objsmanypoints.cmd.list objspuredouble.cmd.list objslong.cmd.list objsdepsliaison.cmd.list objsdepsjoninterp.cmd.list
154  rm -rf deps.manypoints.list deps.onepoint.list deps.puredouble.list deps.long.list deps.depsliaison.list deps.depsjoninterp.list
155  rm -rf objsonepoint objsmanypoints objspuredouble onepoint manypoints puredouble
156  rm -rf decs.h mpidecs.h superdecs.h superdecs.pointers.h decs.user.h decs.general.h supermpidecs.h mpidecs.mpi_grmhd_grray_liaison.h rancdecs.h
157  rm -rf freespace.o tau_neededbyharm.o testfpp.o
158  rm -rf depssmcalc depsliaison depsjoninterp deps.depssmcalc.list deps.depsbin2txt.list depsbin2txt
159 # below are just links
160  rm -rf global.h defs.h
161  rm -rf extractnonfunc gprof-helper.so
162  rm -rf objslong objsdepssmcalc.cmd.list objsdepssmcalc objsdepsliaison objsdepsjoninterp objsdepsbin2txt.cmd.list objsdepsbin2txt
163  rm -rf prepbin2txt prepsmcalc
164  rm -rf initbase.defaultnprlists.c
165  rm -rf *.deps.puredouble.list *.deps.manypoints.list *.deps.onepoint.list
166 
167 superfclean: cleanall superclean
168  rm -rf $(PREPF)
169 
170 # removes in addition the links to user code
171 # useful when wanting to compare with SVN that has no such files
172 ultraclean: superclean
173  rm -rf init.h init.c bounds.c
174 
175 
176 ########################
177 #
178 # Setup how to create global.defnprs.h using generatenprs
179 #
180 ########################
181 
182  # make defnprs.h
183 global.defnprs.h : global.realdef.h global.nondepmnemonics.h definit.h init.h generatenprs.c
184  $(CCGENERATEFINAL) -o generatenprs generatenprs.c ; ./generatenprs
185 
186 
187 ########################
188 #
189 # Prepare to make GRMHD code
190 #
191 ########################
192 
193 PREPDEP=makefile makedecs.h.sh makehead.inc maketail.harm.inc maketail.inc maketail.ldouble.deps.inc maketail.ldouble.inc maketailsuperlong.inc defs.grmhd.h defs.general.h mpidefs.h rancdefs.h superdefs.h superdefs.pointers.h supermpidefs.h global.defnprs.h kazfulleos.defsglobalprivate.h kazfulleos.superdefs.h mpidefs.mpi_grmhd_grray_liaison.h
194 
195 
196 $(PREP): $(PREPDEP)
197  ############################################
198  #below is for GRMHD code
199  ############################################
200  #
201  #
202  # can't make below 2 background
203  rm -rf defs.h ; ln -s defs.grmhd.h defs.h
204  rm -rf global.h ; ln -s global.grmhd.h global.h
205  #
206  sh ./makealldecs.sh
207  #
208  ############################################
209  #below is for code working per point
210  ############################################
211  echo $(OBJSONEPOINT) > objsonepoint
212  # remove and touch (so exists) files to create
213  rm -rf objsonepoint.cmd.list ; rm -rf onepoint ; touch objsonepoint.cmd.list ; touch onepoint
214  # create list of prefixes
215 
216  for fil in `cat objsonepoint` ; do prefa=`basename $$fil .o` ; pref=`echo $$prefa | awk '{print $$1}'` ; echo ${ECHOSWITCH} $$pref >> onepoint ; done
217  # create list of commands
218  for fil in `cat onepoint` ; do echo ${ECHOSWITCH} "$$fil.o :" >> objsonepoint.cmd.list ; echo ${ECHOSWITCH} " $(CC) $(CFLAGSNONPRECISE) -c $$fil.c $(LDFLAGS)" >> objsonepoint.cmd.list ; done
219  # remove old depenedencies file and create
220  rm -rf deps.onepoint.list ; touch deps.onepoint.list
221  # create new dependencies file
222  for fil in `cat onepoint` ; do echo $$fil.c ; $(MMCOMP) -c -MM $$fil.c > $$fil.deps.onepoint.list & done; wait;
223  for fil in `cat onepoint` ; do (cat $$fil.deps.onepoint.list >> deps.onepoint.list) ; done ; wait
224  #
225  #
226  ############################################
227  #below is for code working on multiple point at once
228  ############################################
229  # below is only different in CFLAGS part
230  echo $(OBJSMANYPOINTS) > objsmanypoints
231  # remove and touch (so exists) files to create
232  rm -rf objsmanypoints.cmd.list ; rm -rf manypoints ; touch objsmanypoints.cmd.list ; touch manypoints
233  # create list of prefixes
234  for fil in `cat objsmanypoints` ; do prefa=`basename $$fil .o` ; pref=`echo $$prefa | awk '{print $$1}'` ; echo ${ECHOSWITCH} $$pref >> manypoints ; done
235  # create list of commands
236  for fil in `cat manypoints` ; do echo ${ECHOSWITCH} "$$fil.o :" >> objsmanypoints.cmd.list ; echo ${ECHOSWITCH} " $(CC) $(CFLAGS) -c $$fil.c $(LDFLAGS)" >> objsmanypoints.cmd.list ; done
237  # remove old depenedencies file and create
238  rm -rf deps.manypoints.list ; touch deps.manypoints.list
239  # create new dependencies file
240  for fil in `cat manypoints` ; do echo $$fil.c ; $(MMCOMP) -c -MM $$fil.c > $$fil.deps.manypoints.list & done; wait;
241  for fil in `cat manypoints` ; do (cat $$fil.deps.manypoints.list >> deps.manypoints.list) ; done
242  echo $(OBJSMANYPOINTS) > $(PREP)
243  #
244  # wait for background processes
245  wait
246  #
247  ############################################
248  #below is for double-only code (that can't be long double converted or compiled with -long_double
249  ############################################
250  echo $(OBJSPUREDOUBLE) > objspuredouble
251  # remove and touch (so exists) files to create
252  rm -rf objspuredouble.cmd.list ; rm -rf puredouble ; touch objspuredouble.cmd.list ; touch puredouble
253  # create list of prefixes
254 
255  for fil in `cat objspuredouble` ; do prefa=`basename $$fil .o` ; pref=`echo $$prefa | awk '{print $$1}'` ; echo ${ECHOSWITCH} $$pref >> puredouble ; done
256  # create list of commands
257  for fil in `cat puredouble` ; do echo ${ECHOSWITCH} "$$fil.o :">> objspuredouble.cmd.list ; echo ${ECHOSWITCH} " $(CC) $(CFLAGSNONPRECISENOLONG) -c $$fil.c $(LDFLAGS)" >> objspuredouble.cmd.list ; done
258  # remove old depenedencies file and create
259  rm -rf deps.puredouble.list ; touch deps.puredouble.list
260  # create new dependencies file
261  for fil in `cat puredouble` ; do echo $$fil.c ; $(MMCOMP) -c -MM $$fil.c > $$fil.deps.puredouble.list & done; wait;
262  for fil in `cat puredouble` ; do (cat $$fil.deps.puredouble.list >> deps.puredouble.list) ; done
263  #
264 $(PREPF): $(PREPDEP)
265  ############################################
266  #below is for GRMHD code
267  ############################################
268  ############################################
269  #below is for fortran bits
270  ############################################
271  #Sasha added the two seds that cleaned up after fpp (remove stray characters "&" and "f" at the beginning of lines)
272 ifeq ($(USEKRAKEN),$(ZERO))
273  fpp -P test.f > testfpp.temp1.f ; sed 's/^f.*$$//g' testfpp.temp1.f | sed 's/^\&.*$$//g' > testfpp.temp.f; f2c -Wall -f -P testfpp.temp.f ; sed 's/static//g' testfpp.temp.c > testfpp.c ;sed 's/static//g' testfpp.temp.P > testfpp.P
274 endif
275  # otherwise assume created testfpp.P and testfpp.c on another computer and copied to Kraken
276  echo "DONE" > $(PREPF)
277  #
278 
279 
280 ########################
281 #
282 # Prepare to make long double version of GRMHD code
283 #
284 ########################
285 
286  #
287 $(PREPLD): $(PREPDEP) maketail.ldouble.deps.inc maketail.ldouble.inc maketailsuperlong.inc
288  ############################################
289  # below is for long double code
290  ############################################
291  #
292  ( rm -rf defs.h ; ln -s defs.grmhd.h defs.h )
293  ( rm -rf global.h ; ln -s global.grmhd.h global.h )
294  ( sh ./makedecs.h.sh defs.h )
295  ( sh ./makedecs.h.sh mpidefs.h )
296  ( sh ./makedecs.h.sh rancdefs.h )
297  ( sh ./makedecs.h.sh kazfulleos.defsglobalprivate.h )
298  ( sh ./makedecs.h.sh kazfulleos.superdefs.h )
299  ( sh ./makedecs.h.sh superdefs.h )
300  ( sh ./makedecs.h.sh superdefs.pointers.h )
301  ( sh ./makedecs.h.sh superdefs.rad.h )
302  ( sh ./makedecs.h.sh superdefs.pointers.rad.h )
303  ( sh ./makedecs.h.sh defs.user.h )
304  ( sh ./makedecs.h.sh defs.general.h )
305  ( sh ./makedecs.h.sh supermpidefs.h )
306  ( sh ./makedecs.h.sh mpidefs.mpi_grmhd_grray_liaison.h )
307  #
308  ( echo $(OBJSOTHER) > objslong )
309  # remove and touch (so exists) files to create
310  ( rm -rf objslong.cmd.list ; rm -rf long ; touch objslong.cmd.list ; touch long)
311  # create list of prefixes
312  ( for fil in `cat objslong` ; do prefa=`basename $$fil .o` ; pref=`echo $$prefa | awk '{print $$1}'` ; echo ${ECHOSWITCH} $$pref >> long ; done )
313  # create list of commands
314  ( for fil in `cat long` ; do echo ${ECHOSWITCH} "$$fil.o :" >> objslong.cmd.list ; echo ${ECHOSWITCH} " $(CC2) $(GCCCFLAGS) -c $$fil.c $(LDFLAGS)" >> objslong.cmd.list ; done )
315  # remove old depenedencies file and create
316  ( rm -rf deps.long.list ; touch deps.long.list )
317  # create new dependencies file
318  ( for fil in `cat long` ; do echo $$fil.c ; $(MMCOMP) -c -MM $$fil.c >> deps.long.list ; done )
319  #
320  # create prep file for make to know to recompile or prep again
321  ( echo $(OBJSMANYPOINTS) > $(PREPLD) )
322 
323 
324 
325 ########################
326 #
327 # Prepare to make liaison code
328 #
329 ########################
330 
331 $(PREPLIAISON): $(PREPDEP) maketail.liaison.inc defs.liaison.h defs.liaison.h liaison.defs.h
332  ############################################
333  #below is for liaison code
334  ############################################
335  #
336  #
337  #
338  ( rm -rf defs.h ; ln -s defs.liaison.h defs.h )
339  ( rm -rf global.h ; ln -s global.liaison.h global.h )
340  ( sh ./makedecs.h.sh defs.h )
341  ( sh ./makedecs.h.sh mpidefs.h )
342  ( sh ./makedecs.h.sh rancdefs.h )
343  ( sh ./makedecs.h.sh kazfulleos.defsglobalprivate.h )
344  ( sh ./makedecs.h.sh kazfulleos.superdefs.h )
345  ( sh ./makedecs.h.sh superdefs.h )
346  ( sh ./makedecs.h.sh superdefs.pointers.h )
347  ( sh ./makedecs.h.sh superdefs.rad.h )
348  ( sh ./makedecs.h.sh superdefs.pointers.rad.h )
349  ( sh ./makedecs.h.sh supermpidefs.h )
350  ( sh ./makedecs.h.sh liaison.defs.h )
351  ( sh ./makedecs.h.sh mpidefs.mpi_grmhd_grray_liaison.h )
352  #
353  ( echo $(OBJSLIAISON) > objsdepsliaison )
354  # remove and touch (so exists) files to create
355  ( rm -rf objsdepsliaison.cmd.list ; rm -rf depsliaison ; touch objsdepsliaison.cmd.list ; touch depsliaison)
356  # create list of prefixes
357  ( for fil in `cat objsdepsliaison` ; do prefa=`basename $$fil .o` ; pref=`echo $$prefa | awk '{print $$1}'` ; echo ${ECHOSWITCH} $$pref >> depsliaison ; done )
358  # create list of commands
359  ( for fil in `cat depsliaison` ; do echo ${ECHOSWITCH} "$$fil.o :" >> objsdepsliaison.cmd.list ; echo ${ECHOSWITCH} " $(CC) $(CFLAGSNONPRECISE) -c $$fil.c $(LDFLAGS)" >> objsdepsliaison.cmd.list ; done )
360  # remove old depenedencies file and create
361  ( rm -rf deps.depsliaison.list ; touch deps.depsliaison.list )
362  # create new dependencies file
363  ( for fil in `cat depsliaison` ; do echo $$fil.c ; $(MMCOMP) -c -MM $$fil.c >> deps.depsliaison.list ; done )
364  #
365  # create prep file for make to know to recompile or prep again
366  ( echo $(OBJSLIAISON) > $(PREPLIAISON) )
367  #
368 
369 
370 ########################
371 #
372 # Prepare to make iinterp code
373 #
374 ########################
375 
376 
377 $(PREPJONINTERP): $(PREPDEP) defs.jon_interp.h global.jon_interp.h
378  ############################################
379  #below is for jon_interp code
380  ############################################
381  #
382  #
383  #
384  ( rm -rf defs.h ; ln -s defs.jon_interp.h defs.h )
385  ( rm -rf global.h ; ln -s global.jon_interp.h global.h )
386  ( sh ./makedecs.h.sh rancdefs.h )
387  ( sh ./makedecs.h.sh defs.h )
388  #
389  ( echo $(OBJSJONINTERP) > objsdepsjoninterp )
390  # remove and touch (so exists) files to create
391  ( rm -rf objsdepsjoninterp.cmd.list ; rm -rf depsjoninterp ; touch objsdepsjoninterp.cmd.list ; touch depsjoninterp)
392  # create list of prefixes
393  ( for fil in `cat objsdepsjoninterp` ; do prefa=`basename $$fil .o` ; pref=`echo $$prefa | awk '{print $$1}'` ; echo ${ECHOSWITCH} $$pref >> depsjoninterp ; done )
394  # create list of commands
395  ( for fil in `cat depsjoninterp` ; do echo ${ECHOSWITCH} "$$fil.o :">> objsdepsjoninterp.cmd.list ; echo ${ECHOSWITCH} " $(CC) $(CFLAGSNONPRECISE) -c $$fil.c $(LDFLAGS)" >> objsdepsjoninterp.cmd.list ; done )
396  # remove old depenedencies file and create
397  ( rm -rf deps.depsjoninterp.list ; touch deps.depsjoninterp.list )
398  # create new dependencies file
399  ( for fil in `cat depsjoninterp` ; do echo $$fil.c ; $(MMCOMP) -c -MM $$fil.c >> deps.depsjoninterp.list ; done )
400  #
401  # create prep file for make to know to recompile or prep again
402  ( echo $(OBJSJONINTERP) > $(PREPJONINTERP) )
403  #
404 
405 ########################
406 #
407 # Prepare to make bin2txt code
408 #
409 ########################
410 
411 $(PREPBIN2TXT): makefile makehead.inc maketail.inc maketail.ldouble.deps.inc maketail.ldouble.inc maketailsuperlong.inc
412  ############################################
413  #below is for bin2txt code
414  ############################################
415  #
416  ( echo $(OBJSBIN2TXT) > objsdepsbin2txt )
417  # remove and touch (so exists) files to create
418  ( rm -rf objsdepsbin2txt.cmd.list ; rm -rf depsbin2txt ; touch objsdepsbin2txt.cmd.list ; touch depsbin2txt)
419  # create list of prefixes
420  ( for fil in `cat objsdepsbin2txt` ; do prefa=`basename $$fil .o` ; pref=`echo $$prefa | awk '{print $$1}'` ; echo ${ECHOSWITCH} $$pref >> depsbin2txt ; done )
421  # create list of commands
422  ( for fil in `cat depsbin2txt` ; do echo ${ECHOSWITCH} "$$fil.o :" >> objsdepsbin2txt.cmd.list ; echo ${ECHOSWITCH} " $(CC) $(CFLAGSNONPRECISE) -c $$fil.c $(BIN2TXTLIBS1) $(LDFLAGS) $(BIN2TXTLIBS2)" >> objsdepsbin2txt.cmd.list ; done )
423  # remove old depenedencies file and create
424  ( rm -rf deps.depsbin2txt.list ; touch deps.depsbin2txt.list )
425  # create new dependencies file
426  ( for fil in `cat depsbin2txt` ; do echo $$fil.c ; $(MMCOMP) $(BIN2TXTLIBS1) -c -MM $$fil.c >> deps.depsbin2txt.list ; done )
427  #
428  # create prep file for make to know to recompile or prep again
429  ( echo $(OBJSBIN2TXT) > $(PREPBIN2TXT) )
430  #
431 
432 ########################
433 #
434 # Prepare to make smcalc code
435 #
436 ########################
437 
438 $(PREPSMCALC): makefile makehead.inc maketail.inc maketail.ldouble.deps.inc maketail.ldouble.inc maketailsuperlong.inc
439  ############################################
440  #below is for smcalc code
441  ############################################
442  #
443  ( echo $(OBJSSMCALC) > objsdepssmcalc )
444  # remove and touch (so exists) files to create
445  ( rm -rf objsdepssmcalc.cmd.list ; rm -rf depssmcalc ; touch objsdepssmcalc.cmd.list ; touch depssmcalc)
446  # create list of prefixes
447  ( for fil in `cat objsdepssmcalc` ; do prefa=`basename $$fil .o` ; pref=`echo $$prefa | awk '{print $$1}'` ; echo ${ECHOSWITCH} $$pref >> depssmcalc ; done )
448  # create list of commands
449  ( for fil in `cat depssmcalc` ; do echo ${ECHOSWITCH} "$$fil.o :" >> objsdepssmcalc.cmd.list ; echo ${ECHOSWITCH} " $(CC) $(CFLAGSNONPRECISE) -c $$fil.c $(LDFLAGS)" >> objsdepssmcalc.cmd.list ; done )
450  # remove old depenedencies file and create
451  ( rm -rf deps.depssmcalc.list ; touch deps.depssmcalc.list )
452  # create new dependencies file
453  ( for fil in `cat depssmcalc` ; do echo $$fil.c ; $(MMCOMP) -c -MM $$fil.c >> deps.depssmcalc.list ; done )
454  #
455  # create prep file for make to know to recompile or prep again
456  ( echo $(OBJSSMCALC) > $(PREPSMCALC) )
457  #
458 
459 
460 
461 
462 
463 
464 ########################
465 #
466 # COMMANDS to compile codes:
467 #
468 ########################
469 
470 
471 $(FINISH):
472 # rm -rf objsonepoint objsmanypoints objspuredouble
473 
474 #$(CMD): GROUP1 GROUP2 makefile freespace.o tau_neededbyharm.o testfpp.o
475 # echo objsmanypoints: $(OBJSMANYPOINTS)
476 # echo objsonepoint: $(OBJSONEPOINT)
477 # echo objspuredouble: $(OBJSPUREDOUBLE)
478 # $(MYCOMMANDS3)
479 # $(MYCOMMANDS2)
480 # $(MYCOMMANDS1)
481 
482 
483 $(CMD): $(PREP) $(OBJSMANYPOINTS) $(OBJSONEPOINT) $(OBJSPUREDOUBLE) makefile testfpp.P testfpp.c
484  $(CC) $(CFLAGSNONPRECISE) -o $(CMD) $(OBJSMANYPOINTS) $(OBJSONEPOINT) $(OBJSPUREDOUBLE) $(LDFLAGS)
485 
486 
487 $(CMD2): $(PREP) $(PREPLD) $(OBJSMANYPOINTS) $(OBJSONEPOINT) $(OBJSPUREDOUBLE) makefile libml.a $(OBJSOTHER)
488  $(CC2) $(GCCCFLAGS) -c polevll.c $(LDFLAGS) $(LDFLAGSOTHER)
489  $(CC) $(CFLAGS) -o $(CMD2) $(OBJSMANYPOINTS) $(OBJSONEPOINT) $(OBJSPUREDOUBLE) polevll.o libml.a $(LDFLAGS) $(LDFLAGSOTHER)
490 
491 $(LIAISONCMD): $(PREPLIAISON) $(OBJSLIAISON) makefile
492  $(CC) $(CFLAGS) -DUSINGLIAISON=1 -o $(LIAISONCMD) $(OBJSLIAISON) $(LDFLAGS) $(LDFLAGSOTHER)
493 
494 $(JONINTERPCMD): $(PREPJONINTERP) $(OBJSJONINTERP) makefile
495  $(CC) $(CFLAGS) -DUSINGJONINTERP=1 -o $(JONINTERPCMD) $(OBJSJONINTERP) $(LDFLAGS) $(LDFLAGSOTHER)
496 
497 
498 $(BIN2TXTCMD): $(PREPBIN2TXT) $(OBJSBIN2TXT) makefile
499  $(CC) $(CFLAGS) -o $(BIN2TXTCMD) $(OBJSBIN2TXT) $(LDFLAGS) $(LDFLAGSOTHER) $(BIN2TXTLIBS2)
500 
501 
502 $(SMCALCCMD): $(PREPSMCALC) $(OBJSSMCALC) makefile
503  $(CC) $(CFLAGS) -o $(SMCALCCMD) $(OBJSSMCALC) $(LDFLAGS) $(LDFLAGSOTHER)
504 
505 
506 ########################
507 #
508 # Includes of object lists and dependencies autogenerated during prepare step
509 # Note that if one does just "make" after changing the makefile, the below are included *before* the automatically-called prep command changes them. So not consistent. Have to do "make prep ; make" if one changes the makefile itself.
510 #
511 ########################
512 
513 
514 ifeq ($(MYMAKECMDGOALS),$(filter $(MYMAKECMDGOALS),$(BINARYTARGETS)))
515 -include objsonepoint.cmd.list
516 -include objsmanypoints.cmd.list
517 -include objspuredouble.cmd.list
518 -include deps.manypoints.list
519 -include deps.onepoint.list
520 -include deps.puredouble.list
521 endif
522 
523 ifeq ($(MYMAKECMDGOALS),$(CMD2))
524 -include objslong.cmd.list
525 -include deps.long.list
526 endif
527 
528 ifeq ($(MYMAKECMDGOALS),$(LIAISONCMD))
529 -include objsdepsliaison.cmd.list
530 -include deps.depsliaison.list
531 endif
532 
533 ifeq ($(MYMAKECMDGOALS),$(JONINTERPCMD))
534 -include objsdepsjoninterp.cmd.list
535 -include deps.depsjoninterp.list
536 endif
537 
538 ifeq ($(MYMAKECMDGOALS),$(BIN2TXTCMD))
539 -include objsdepsbin2txt.cmd.list
540 -include deps.depsbin2txt.list
541 endif
542 
543 ifeq ($(MYMAKECMDGOALS),$(SMCALCCMD))
544 -include objsdepssmcalc.cmd.list
545 -include deps.depssmcalc.list
546 endif
547 
548 
549 
550 # below automatic now (original has special code for assembly but doesn't work anymore on ki-rh42)
551 #-include maketail.ldouble.deps.inc
552 
553 
554 ########################
555 #
556 # How to compile other non-standard parts of code.
557 #
558 # Old Intel compiler wouldn't compile freespace properly due to sys/vfs.h stuff.
559 # Old Intel compiler wouldn't compile tau_needbyharm properly due to f2c conversion. Now tau_neededbyharm doesn't contain anything that requires f2c libraries.
560 #
561 # So, now (06/04/09) seems fine.
562 #
563 # This all was spurred by trying to avoid gcc since on TACC's Ranger, their gcc changed with mpicc -cc=gcc error due to -i-dynamic not recognized by gcc. Stupid Intel specific commands in their mpicc.
564 #
565 ########################
566 
567 #freespace.o : freespace.c $(PREP) makefile maketail.inc defs.h defs.general.h
568 # $(CC2) $(GCCCFLAGS) -c freespace.c $(LDFLAGS)
569 #
570 #tau_neededbyharm.o : tau_neededbyharm.c $(PREP) makefile maketail.inc defs.h defs.general.h
571 ## $(CC2) $(GCCCFLAGS) -c tau_neededbyharm.c -lm
572 ## $(CC2) $(GCCCFLAGS) -c tau_neededbyharm.c -lf2c -lm
573 #testfpp.o : testfpp.c $(PREP) makefile maketail.inc defs.h defs.general.h
574 ## $(CC2) $(GCCCFLAGS) -c testfpp.c -lm
575 ## $(CC2) $(GCCCFLAGS) -c testfpp.c -lf2c -lm
576 
577 # Might generally want to compile with -lf2c, unless sure have all needed functions.
578 #If getting "undefined reference to MAIN__", can fix by either
579 # making sure that you're linking to libf2c.a and not libf2c.so,
580 # or adding option "-u MAIN__" to linker.
581 
582 
583 
584 ########################
585 #
586 # how to compile long double library
587 #
588 ########################
589 
590 
591 # Use $(OBJS) in ar command for libml.a if possible; else *.o
592 libml.a: $(OBJSOTHER) mconf.h objslong.cmd.list deps.long.list
593  ar -rv libml.a $(OBJSOTHER)
594  ranlib libml.a
595 # ar -rv libml.a *.o
596 
597 
598 
599 
600 
601 
602 
603 ########################
604 #
605 # END of maketail.inc
606 #
607 ########################