| 1 | # To build this by itself, use the make target esmf_time_f90_only |
|---|
| 2 | # from the top-level WRF Makefile. |
|---|
| 3 | # > cd ../.. |
|---|
| 4 | # configure |
|---|
| 5 | # make esmf_time_f90_only |
|---|
| 6 | |
|---|
| 7 | .SUFFIXES: .F90 .o .f |
|---|
| 8 | |
|---|
| 9 | # get rid of single quotes after comments |
|---|
| 10 | # WARNING: This will break if a quoted string is followed by a comment that has |
|---|
| 11 | # a single quote. |
|---|
| 12 | SED_FTN = sed -e "/\!.*'/s/'//g" |
|---|
| 13 | |
|---|
| 14 | RM = /bin/rm -f |
|---|
| 15 | AR = ar |
|---|
| 16 | #RANLIB = ranlib |
|---|
| 17 | RANLIB = echo |
|---|
| 18 | |
|---|
| 19 | OBJS = ESMF_Alarm.o ESMF_BaseTime.o ESMF_Clock.o ESMF_Time.o \ |
|---|
| 20 | Meat.o ESMF_Base.o ESMF_Calendar.o ESMF_Fraction.o \ |
|---|
| 21 | ESMF_TimeInterval.o ESMF_Stubs.o ESMF_Mod.o \ |
|---|
| 22 | module_symbols_util.o \ |
|---|
| 23 | module_utility.o ESMF_AlarmClock.o |
|---|
| 24 | |
|---|
| 25 | default: libesmf_time.a |
|---|
| 26 | |
|---|
| 27 | tests: Test1_ESMF.exe Test1_WRFU.exe |
|---|
| 28 | |
|---|
| 29 | libesmf_time.a : $(OBJS) |
|---|
| 30 | $(RM) libesmf_time.a |
|---|
| 31 | if [ "$(AR)" != "lib.exe" ] ; then \ |
|---|
| 32 | $(AR) ru libesmf_time.a $(OBJS) ; \ |
|---|
| 33 | else \ |
|---|
| 34 | $(AR) /out:libesmf_time.a $(OBJS) ; \ |
|---|
| 35 | fi |
|---|
| 36 | $(RANLIB) libesmf_time.a |
|---|
| 37 | |
|---|
| 38 | Test1_ESMF.f : Test1.F90 |
|---|
| 39 | $(RM) Test1_ESMF.b Test1_ESMF.f |
|---|
| 40 | cp Test1.F90 Test1_ESMF.b |
|---|
| 41 | $(CPP) -P -I. Test1_ESMF.b > Test1_ESMF.f |
|---|
| 42 | |
|---|
| 43 | Test1_ESMF.exe : libesmf_time.a Test1_ESMF.o |
|---|
| 44 | $(FC) -o Test1_ESMF.exe Test1_ESMF.o libesmf_time.a |
|---|
| 45 | |
|---|
| 46 | Test1_WRFU.f : Test1.F90 |
|---|
| 47 | $(RM) Test1_WRFU.b Test1_WRFU.f |
|---|
| 48 | sed -e "s/ESMF_Mod/module_utility/g" -e "s/ESMF_/WRFU_/g" Test1.F90 > Test1_WRFU.b |
|---|
| 49 | $(CPP) -P -I. Test1_WRFU.b > Test1_WRFU.f |
|---|
| 50 | |
|---|
| 51 | Test1_WRFU.exe : libesmf_time.a Test1_WRFU.o |
|---|
| 52 | $(FC) -o Test1_WRFU.exe Test1_WRFU.o libesmf_time.a |
|---|
| 53 | |
|---|
| 54 | .F90.o : |
|---|
| 55 | $(RM) $@ |
|---|
| 56 | $(SED_FTN) $*.F90 > $*.b |
|---|
| 57 | $(CPP) -P -I. $*.b > $*.f |
|---|
| 58 | $(RM) $*.b |
|---|
| 59 | $(FC) -o $@ -c $*.f |
|---|
| 60 | |
|---|
| 61 | .F90.f : |
|---|
| 62 | $(RM) $@ |
|---|
| 63 | $(SED_FTN) $*.F90 > $*.b |
|---|
| 64 | $(CPP) -P -I. $*.b > $*.f |
|---|
| 65 | $(RM) $*.b |
|---|
| 66 | |
|---|
| 67 | .f.o : |
|---|
| 68 | $(RM) $@ |
|---|
| 69 | $(RM) $*.b |
|---|
| 70 | $(FC) -c $*.f |
|---|
| 71 | |
|---|
| 72 | clean : testclean |
|---|
| 73 | |
|---|
| 74 | testclean: |
|---|
| 75 | $(RM) *.b *.f *.o *.obj *.i libesmf_time.a *.mod Test1*.exe |
|---|
| 76 | |
|---|
| 77 | superclean: testclean |
|---|
| 78 | $(RM) Test1*.out make_tests.out |
|---|
| 79 | |
|---|
| 80 | # DEPENDENCIES : only dependencies after this line |
|---|
| 81 | |
|---|
| 82 | #$$$ update dependencies! |
|---|
| 83 | |
|---|
| 84 | ESMF_Alarm.o : ESMF_BaseTime.o ESMF_Time.o ESMF_TimeInterval.o |
|---|
| 85 | ESMF_BaseTime.o : ESMF_Base.o |
|---|
| 86 | ESMF_Clock.o : ESMF_BaseTime.o ESMF_Time.o ESMF_TimeInterval.o |
|---|
| 87 | ESMF_AlarmClock.o : ESMF_Alarm.o ESMF_Clock.o |
|---|
| 88 | ESMF_Time.o : ESMF_BaseTime.o ESMF_TimeInterval.o ESMF_Calendar.o \ |
|---|
| 89 | ESMF_Stubs.o |
|---|
| 90 | ESMF_Base.o : |
|---|
| 91 | ESMF_Calendar.o : ESMF_BaseTime.o |
|---|
| 92 | ESMF_Fraction.o : ESMF_BaseTime.o |
|---|
| 93 | ESMF_TimeInterval.o : ESMF_BaseTime.o ESMF_Calendar.o ESMF_Fraction.o |
|---|
| 94 | ESMF_Mod.o : ESMF_Alarm.o ESMF_BaseTime.o ESMF_Clock.o ESMF_Time.o \ |
|---|
| 95 | ESMF_Base.o ESMF_Calendar.o ESMF_Fraction.o \ |
|---|
| 96 | ESMF_TimeInterval.o Meat.o ESMF_Stubs.o ESMF_AlarmClock.o |
|---|
| 97 | Meat.o : ESMF_Alarm.o ESMF_BaseTime.o ESMF_Clock.o ESMF_Time.o \ |
|---|
| 98 | ESMF_Base.o ESMF_Calendar.o ESMF_Fraction.o \ |
|---|
| 99 | ESMF_TimeInterval.o |
|---|
| 100 | ESMF_Stubs.o : ESMF_Base.o ESMF_Calendar.o |
|---|
| 101 | module_utility.o : ESMF_Mod.o module_symbols_util.o |
|---|
| 102 | module_symbols_util.o : ESMF_Mod.o |
|---|
| 103 | Test1.o : module_utility.o |
|---|
| 104 | |
|---|