Makefile 4.13 KB
Newer Older
Florian Wittkamp's avatar
Florian Wittkamp committed
1
# Makefile for IFOS2D
tilman.metz's avatar
tilman.metz 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.metz's avatar
tilman.metz 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
Florian Wittkamp's avatar
Florian Wittkamp committed
22
CC=mpicc
tilman.metz's avatar
tilman.metz committed
23 24 25 26 27
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
28 29 30 31 32 33
# LINUX with OpenMPI / IntelMPI and GCC Compiler
#CC=mpicc
#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.
tilman.metz's avatar
tilman.metz committed
34

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.metz's avatar
tilman.metz 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.metz's avatar
tilman.metz 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.metz's avatar
tilman.metz 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.metz's avatar
tilman.metz committed
71 72
	stf.c \
	window_cos.c \
73
	alloc_sections.c \
tilman.metz's avatar
tilman.metz committed
74
	calc_mat_change_test.c \
Florian Wittkamp's avatar
Florian Wittkamp committed
75
    	calc_res.c \
tilman.metz's avatar
tilman.metz committed
76
	calc_misfit.c \
Florian Wittkamp's avatar
Florian Wittkamp committed
77
    	calc_opt_step.c \
tilman.metz's avatar
tilman.metz committed
78 79 80 81 82 83 84 85 86 87 88 89 90
	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
91
   	snap_ssg_SH.c \
tilman.metz's avatar
tilman.metz committed
92 93 94 95 96 97
	seismo_ssg.c \
	surface_elastic_PML.c \
	surface_acoustic_PML.c \
	surface_PML.c \
	update_v_ssg.c \
	update_v_PML.c \
98
	update_v_PML_SH.c \
tilman.metz's avatar
tilman.metz committed
99 100 101 102 103
	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
104
    	update_s_elastic_PML_SH.c \
tilman.metz's avatar
tilman.metz committed
105
	update_s_visc_PML.c \
Florian Wittkamp's avatar
Florian Wittkamp committed
106
    	update_s_visc_PML_SH.c \
tilman.metz's avatar
tilman.metz committed
107 108 109 110 111 112 113 114 115 116 117 118 119 120
	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) \
121
	$(MODEL_AC) \
122
	$(MODEL_EL) \
Florian Wittkamp's avatar
Florian Wittkamp committed
123
    	$(MODEL_VAC) \
tilman.metz's avatar
tilman.metz committed
124 125 126 127 128 129 130 131 132 133 134 135
	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 \
136
	PCG_SH.c \
tilman.metz's avatar
tilman.metz committed
137 138 139 140 141 142
	PML_pro.c \
	readdsk.c \
	read_par_json.c \
	readmod.c \
	readmod_elastic.c \
	readmod_acoustic.c \
Florian Wittkamp's avatar
Florian Wittkamp committed
143
    	receiver.c \
tilman.metz's avatar
tilman.metz committed
144
	rd_sour.c \
Florian Wittkamp's avatar
Florian Wittkamp committed
145 146
    	read_workflow.c \
    	apply_workflow.c \
tilman.metz's avatar
tilman.metz committed
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
	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
171 172 173 174
    	joint_inversion.c \
    	matrix_operations.c \
    	wolfe_condition.c \
    	calc_hilbert.c \
175 176
	eprecond.c \
	eprecond1.c \
Florian Wittkamp's avatar
Florian Wittkamp committed
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
    	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.metz's avatar
tilman.metz committed
192

Florian Wittkamp's avatar
Florian Wittkamp committed
193
all: IFOS2D snapmerge
tilman.metz's avatar
tilman.metz committed
194 195 196 197

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

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

install: clean all

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