Makefile 4.11 KB
Newer Older
Florian Wittkamp's avatar
Florian Wittkamp committed
1
# Makefile for IFOS2D
Tilman Steinweg's avatar
Tilman Steinweg committed
2 3 4 5 6 7 8 9

#--------------------------------------------------------
# edit here:

# source code for model generation

#MODEL = hh.c
MODEL = ../genmod/1D_linear_gradient_visc.c
10
MODEL_AC = ../genmod/1D_linear_gradient_ac.c
11
MODEL_EL = ../genmod/1D_linear_gradient_el.c
Florian Wittkamp's avatar
Florian Wittkamp committed
12
MODEL_VAC = ../genmod/1D_linear_gradient_viscac.c
Tilman Steinweg's avatar
Tilman Steinweg committed
13 14
EXEC= ../bin

Florian Wittkamp's avatar
Florian Wittkamp committed
15 16 17 18 19 20 21
# Description:
# CC = Compiler
# LFLAGS = Linker flag
# CFLAGS = Compiler flag

# LINUX with OpenMPI / IntelMPI and INTEL Compiler
# Use icc whenever possible, this will be much faster than gcc
22 23 24 25 26 27 28
#CC=mpiicc
#LFLAGS=-lm -lcseife -lstfinv -laff -lfourierxx -lfftw3 -lstdc++
#CFLAGS=-O3
#SFLAGS=-L./../contrib/libcseife -L./../contrib/bin
#IFLAGS=-I./../contrib/libcseife -I./../contrib/header -I.

# LINUX with OpenMPI / IntelMPI and GCC Compiler
Florian Wittkamp's avatar
Florian Wittkamp committed
29
CC=mpicc
Tilman Steinweg's avatar
Tilman Steinweg committed
30 31 32 33 34
LFLAGS=-lm -lcseife -lstfinv -laff -lfourierxx -lfftw3 -lstdc++
CFLAGS=-O3
SFLAGS=-L./../contrib/libcseife -L./../contrib/bin
IFLAGS=-I./../contrib/libcseife -I./../contrib/header -I.

Florian Wittkamp's avatar
Florian Wittkamp committed
35 36 37 38
ifeq ($(TERM_PROGRAM),Apple_Terminal)
LFLAGS=-lm -lcseife -lstfinv -laff -lfourierxx -lfftw3 -lc++
CC=mpicc
endif
Tilman Steinweg's avatar
Tilman Steinweg committed
39 40 41 42

# after this line, no further editing should be necessary
# --------------------------------------------------------

Florian Wittkamp's avatar
Florian Wittkamp committed
43 44 45 46 47
# -------------
# pattern rules
# -------------

%.o: %.c
Tilman Steinweg's avatar
Tilman Steinweg committed
48
	$(CC) $(CFLAGS) -o $@ -c $< $(IFLAGS)
Florian Wittkamp's avatar
Florian Wittkamp committed
49 50 51 52 53 54 55 56 57
	$(CC) $(CFLAGS) -MM $*.c $(IFLAGS) > $*.d

SNAPMERGE_OBJ = $(SNAPMERGE_SCR:%.c=%.o)

IFOS_OBJ = $(IFOS2D:%.c=%.o)

# -------------
# Dependencies
# -------------
Tilman Steinweg's avatar
Tilman Steinweg committed
58 59 60 61 62 63 64 65 66 67 68

SNAPMERGE_SCR = \
	snapmerge.c \
	merge.c \
	json_parser.c \
	read_par_json.c \
	readdsk.c \
	writedsk.c \
	util.c 


Florian Wittkamp's avatar
Florian Wittkamp committed
69 70
IFOS2D= \
	IFOS2D.c \
Tilman Steinweg's avatar
Tilman Steinweg committed
71 72 73
	stf.c \
	window_cos.c \
	calc_mat_change_test.c \
Florian Wittkamp's avatar
Florian Wittkamp committed
74
    	calc_res.c \
Tilman Steinweg's avatar
Tilman Steinweg committed
75
	calc_misfit.c \
Florian Wittkamp's avatar
Florian Wittkamp committed
76
    	calc_opt_step.c \
Tilman Steinweg's avatar
Tilman Steinweg committed
77 78 79 80 81 82 83 84 85 86 87 88 89
	calc_energy.c \
	checkfd.c \
	checkfd_ssg_elastic.c \
	checkfd_ssg_visc.c \
	conv_FD.c \
	count_killed_traces.c \
	psource.c \
	holbergcoeff.c\
	comm_ini.c\
	exchange_v.c \
	exchange_s.c \
	exchange_p.c \
	snap_ssg.c \
Florian Wittkamp's avatar
Florian Wittkamp committed
90
   	snap_ssg_SH.c \
Tilman Steinweg's avatar
Tilman Steinweg committed
91 92 93 94 95 96
	seismo_ssg.c \
	surface_elastic_PML.c \
	surface_acoustic_PML.c \
	surface_PML.c \
	update_v_ssg.c \
	update_v_PML.c \
97
	update_v_PML_SH.c \
Tilman Steinweg's avatar
Tilman Steinweg committed
98 99 100 101 102
	update_v_acoustic_PML.c \
	prepare_update_s.c \
	update_p_PML.c \
	update_s_elastic_ssg.c \
	update_s_elastic_PML.c \
Florian Wittkamp's avatar
Florian Wittkamp committed
103
    	update_s_elastic_PML_SH.c \
Tilman Steinweg's avatar
Tilman Steinweg committed
104
	update_s_visc_PML.c \
Florian Wittkamp's avatar
Florian Wittkamp committed
105
    	update_s_visc_PML_SH.c \
Tilman Steinweg's avatar
Tilman Steinweg committed
106 107 108 109 110 111 112 113 114 115 116 117 118 119
	av_mue.c \
	av_rho.c \
	av_tau.c \
	median2D.c \
	exchange_par.c \
	info.c \
	inseis.c \
	inseis_source_wavelet.c \
	initproc.c \
	interpol.c \
	json_parser.c \
	LBFGS.c \
	smooth.c \
	$(MODEL) \
120
	$(MODEL_AC) \
121
	$(MODEL_EL) \
Florian Wittkamp's avatar
Florian Wittkamp committed
122
    	$(MODEL_VAC) \
Tilman Steinweg's avatar
Tilman Steinweg committed
123 124 125 126 127 128 129 130 131 132 133 134
	matcopy.c \
	matcopy_elastic.c \
	matcopy_acoustic.c \
	mergemod.c \
	max_grad.c \
	note.c \
	norm.c \
	outseis_vector.c \
	outseis_glob.c \
	catseis.c \
	output_source_signal.c \
	PCG.c \
135
	PCG_SH.c \
Tilman Steinweg's avatar
Tilman Steinweg committed
136 137 138 139 140 141
	PML_pro.c \
	readdsk.c \
	read_par_json.c \
	readmod.c \
	readmod_elastic.c \
	readmod_acoustic.c \
Florian Wittkamp's avatar
Florian Wittkamp committed
142
    	receiver.c \
Tilman Steinweg's avatar
Tilman Steinweg committed
143
	rd_sour.c \
Florian Wittkamp's avatar
Florian Wittkamp committed
144 145
    	read_workflow.c \
    	apply_workflow.c \
Tilman Steinweg's avatar
Tilman Steinweg committed
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
	saveseis_glob.c \
	sources.c \
	solvelin.c \
	spat_filt.c \
	splitsrc.c \
	splitsrc_back.c \
	splitrec.c \
	stalta.c \
	taper.c \
	taper_grad.c \
	taper_grad_shot.c \
	timedomain_filt.c \
	timedomain_filt_vector.c \
	time_window.c \
	util.c \
	wavelet.c \
	wavelet_stf.c \
	writemod.c \
	write_par.c \
	writedsk.c \
	zero_fdveps.c \
	zero_fdveps_ac.c \
	zero_fdveps_visc.c \
	calc_envelope.c \
Florian Wittkamp's avatar
Florian Wittkamp committed
170 171 172 173
    	joint_inversion.c \
    	matrix_operations.c \
    	wolfe_condition.c \
    	calc_hilbert.c \
174 175
	eprecond.c \
	eprecond1.c \
Florian Wittkamp's avatar
Florian Wittkamp committed
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190
    	zero_fdveps_viscac.c \
    	update_p_visc_PML.c \
    	matcopy_viscac.c \
    	prepare_update_p.c \
    	readmod_viscac.c \
    	time_window_glob.c \
    	create_trkill_table.c \
    	filter_frequencies.c

# -------------
# Targes
# -------------

IFOS2D:		$(IFOS_OBJ) fd.h
	$(CC) $(SFLAGS) $(IFOS_OBJ) -o $(EXEC)/IFOS2D $(LFLAGS)
Tilman Steinweg's avatar
Tilman Steinweg committed
191

Florian Wittkamp's avatar
Florian Wittkamp committed
192
all: IFOS2D snapmerge
Tilman Steinweg's avatar
Tilman Steinweg committed
193 194 195 196

snapmerge:	$(SNAPMERGE_OBJ)
	$(CC) $(SFLAGS) $(SNAPMERGE_OBJ) -o ../bin/snapmerge $(LFLAGS)

Florian Wittkamp's avatar
Florian Wittkamp committed
197
.PHONY: clean
Tilman Steinweg's avatar
Tilman Steinweg committed
198
clean:
Florian Wittkamp's avatar
Florian Wittkamp committed
199
	find . -name "*.d" -exec rm {} \;
Tilman Steinweg's avatar
Tilman Steinweg committed
200 201 202
	find . -name "*.o" -exec rm {} \; 
	find . -name "*.c%" -exec rm {} \;
	find . -name "*.bck" -exec rm {} \;
Florian Wittkamp's avatar
Florian Wittkamp committed
203
	find ../genmod -name "*.o" -exec rm {} \;
Florian Wittkamp's avatar
Florian Wittkamp committed
204 205 206 207
	find ../genmod -name "*.d" -exec rm {} \;

install: clean all

208
-include $(IFOS_OBJ:.o=.d)