include ../../settings.make

CCFLAGS += -I ../../include
LDFLAGS += ../../lib/libquickflash.a


BIN = struct_fn struct_fn_xy flame_dist_analysis


all : $(BIN)

clean : 
	rm -f *.o
	rm -f $(BIN)

struct_fn : struct_fn.o flame_front.o structure.o file_defs.o \
	    mpi_utils.o decomp_utils.o flame_dist.o
	$(LD) -o struct_fn struct_fn.o flame_front.o structure.o \
	    file_defs.o mpi_utils.o decomp_utils.o flame_dist.o \
	    $(LDFLAGS) $(LDFLAGS_HDF5) $(LDFLAGS_MAGICK)

struct_fn_xy : struct_fn_xy.o flame_front.o structure_xy.o file_defs.o \
	    mpi_utils.o decomp_utils.o flame_dist.o
	$(LD) -o struct_fn_xy struct_fn_xy.o flame_front.o structure_xy.o \
	    file_defs.o mpi_utils.o decomp_utils.o flame_dist.o \
	    $(LDFLAGS) $(LDFLAGS_HDF5) $(LDFLAGS_MAGICK)

flame_dist_analysis : flame_dist_analysis.o ranged_bin_arrays.o
	$(LD) -o flame_dist_analysis flame_dist_analysis.o \
	    ranged_bin_arrays.o \
	    $(LDFLAGS) $(LDFLAGS_HDF5)

collect_flame_data : collect_flame_data.o flame_dist.o flame_front.o \
	    file_defs.o decomp_utils.o
	$(LD) -o collect_flame_data collect_flame_data.o flame_dist.o \
	    flame_front.o file_defs.o decomp_utils.o \
	    $(LDFLAGS) $(LDFLAGS_HDF5)

struct_fn.o : struct_fn.cpp flame_front.hpp structure.hpp mpi_utils.hpp \
	    flame_dist.hpp file_defs.hpp
	$(CXX) -c $(CCFLAGS) $(CCFLAGS_HDF5) -o struct_fn.o struct_fn.cpp

struct_fn_xy.o : struct_fn_xy.cpp flame_front.hpp structure_xy.hpp \
	    mpi_utils.hpp flame_dist.hpp file_defs.hpp
	$(CXX) -c $(CCFLAGS) $(CCFLAGS_HDF5) -o struct_fn_xy.o struct_fn_xy.cpp

collect_flame_data.o : collect_flame_data.cpp flame_dist.hpp flame_front.hpp \
	    decomp_utils.hpp
	$(CXX) -c $(CCFLAGS) $(CCFLAGS_HDF5) -o collect_flame_data.o \
	    collect_flame_data.cpp

file_defs.o : file_defs.hpp file_defs.cpp
	$(CXX) -c $(CCFLAGS) -o file_defs.o file_defs.cpp

flame_front.o : flame_front.hpp flame_front.cpp file_defs.hpp
	$(CXX) -c $(CCFLAGS) $(CCFLAGS_HDF5) -o flame_front.o flame_front.cpp

grid_output.o : grid_output.hpp grid_output.cpp
	$(CXX) -c $(CCFLAGS) -o grid_output.o grid_output.cpp

structure.o : structure.hpp structure.cpp
	$(CXX) -c $(CCFLAGS) -o structure.o structure.cpp

structure_xy.o : structure_xy.hpp structure_xy.cpp
	$(CXX) -c $(CCFLAGS) -o structure_xy.o structure_xy.cpp

decomp_utils.o : decomp_utils.hpp decomp_utils.cpp
	$(CXX) -c $(CCFLAGS) -o decomp_utils.o decomp_utils.cpp

mpi_utils.o : mpi_utils.hpp mpi_utils.cpp
	$(CXX) -c $(CCFLAGS) -o mpi_utils.o mpi_utils.cpp

flame_dist.o : flame_dist.hpp flame_dist.cpp file_defs.hpp
	$(CXX) -c $(CCFLAGS) $(CCFLAGS_HDF5) -o flame_dist.o flame_dist.cpp

flame_dist_analysis.o : flame_dist_analysis.cpp ranged_bin_arrays.hpp
	$(CXX) -c $(CCFLAGS) $(CCFLAGS_HDF5) -o flame_dist_analysis.o \
	    flame_dist_analysis.cpp

ranged_bin_arrays.o : ranged_bin_arrays.hpp ranged_bin_arrays.cpp
	$(CXX) -c $(CCFLAGS) -o ranged_bin_arrays.o ranged_bin_arrays.cpp
