###########################################################################
#
# Makefile system for GILDAS softwares (2003-2024).
#
# Please be careful: element order often matters in makefiles.
#
###########################################################################

include $(gagadmdir)/Makefile.def

###########################################################################

LIB_IDENTITY = mapping

LIB_C_OBJECTS = mapping-sicimport.o

# Creates pymapping.so (implicit compilation of mapping-pyimport.c)
IMPORT_FROM_PYTHON = yes

# List of source codes that are declared obsolete (put in the obsolete
# directory for the moment).
OBSOLETE_CODE = command-uv-restore.o 

INTERFACE_OBJECTS = mapping-interfaces.o mapping-interfaces-private.o	\
mapping-interfaces-public.o

BUFFER_OBJECTS = buffer-clean.o buffer-file.o buffer-map.o	\
buffer-omp.o buffer-plot.o buffer-primary.o buffer-uv.o buffer-uvmap.o

TYPE_OBJECTS = type-cct.o type-clean.o type-gridding.o type-mapping.o	\
type-uvmap.o

TOOL_OBJECTS = tool-clean.o tool-clean-beam.o tool-clean-flux.o		\
tool-clean-cycle.o tool-clean-mrc.o tool-clean-multi.o			\
tool-clean-support.o tool-fit-beam.o tool-gaussian.o tool-list.o	\
tool-minmax.o tool-rotate-shift-and-sort.o tool-uvmap.o tool-uvmosaic.o	\
tool-uvstat.o tool-uv-spectral.o

ADM_COMMAND_OBJECTS = command-dump.o command-flux-scale.o command-load.o	\
command-mosaic.o command-primary.o command-read.o command-show-or-view.o	\
command-specify.o command-statistics.o command-support.o command-write.o

UV_COMMAND_OBJECTS = command-uv-baseline.o command-uv-check.o			\
command-uv-continuum.o command-uv-extract.o command-uv-filter.o			\
command-uv-flag.o command-uv-resample.o command-uv-reweight.o			\
command-uv-rms.o command-uv-shift.o command-uv-sort.o command-uv-stack.o	\
command-uv-statistics.o command-uv-time.o command-uv-truncate.o			\
command-uv-stokes.o

IMAGING_COMMAND_OBJECTS = command-imaging-fit.o command-uv-map.o	\
command-uv-residual.o command-uv-restore.o

CLEAN_COMMAND_OBJECTS = command-clean-clark.o command-clean-clean.o	\
command-clean-hogbom.o command-clean-mfs.o command-clean-mrc.o		\
command-clean-multi.o command-clean-mx.o command-clean-sdi.o

PACKAGE_OBJECTS = language.o message.o package.o 

LIB_F_OBJECTS = $(INTERFACE_OBJECTS) $(BUFFER_OBJECTS) $(TYPE_OBJECTS)		\
$(TOOL_OBJECTS) allocation.o dofft_q.o dofft_v.o dofft_y.o map_resample.o	\
util_grid.o util_self.o util-uvmap.o util_weight.o $(ADM_COMMAND_OBJECTS)	\
$(UV_COMMAND_OBJECTS) $(IMAGING_COMMAND_OBJECTS) $(CLEAN_COMMAND_OBJECTS)	\
$(PACKAGE_OBJECTS)

LIB_EXPORTS = cct_types.mod clean_beam_tool.mod clean_mx.mod			\
clean_tool.mod clean_types.mod gridding_types.mod mapping_interfaces.mod	\
fit_beam_tool.mod mapping_interfaces_public.mod					\
mapping_interfaces_private.mod mapping_gaussian_tool.mod			\
mapping_primary.mod mapping_read.mod minmax_tool.mod uvmap_types.mod		\
uvstat_tool.mod uv_rotate_shift_and_sort_tool.mod uv_shift.mod 			\
uv_sort_codes.mod uv_sort.mod

LIB_DEPENDS = $(CUBE_LIBS) -lclassic $(GREG_LIBS)

# map/lib does not support mandatory-only interfaces
GAG_INTERFACES_MANDATORY = no

ifeq ($(GAG_COMPILER_FKIND),gfortran)
  ifeq ($(GAG_COMPILER_FVERSION_GE_10),yes)
    LOCAL_FFLAGS = -fallow-argument-mismatch
  endif
endif

###########################################################################

include $(gagadmdir)/Makefile.lib

###########################################################################

include $(builddir)/Makefile.deps

###########################################################################
