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

include $(gagadmdir)/Makefile.def

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

ARRAY_OBJECTS = type-array.o

ARRAY_EXPORTS = cubetools_array_types.mod cubetools_strg_1d_types.mod	\
cubetools_inte_1d_types.mod cubetools_long_1d_types.mod			\
cubetools_real_1d_types.mod cubetools_dble_1d_types.mod			\
cubetools_cplx_1d_types.mod cubetools_inte_2d_types.mod			\
cubetools_long_2d_types.mod cubetools_real_2d_types.mod			\
cubetools_dble_2d_types.mod cubetools_cplx_2d_types.mod			\
cubetools_real_3d_types.mod

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

HEADER_OBJECTS = header.o header-array.o header-array-element.o		\
header-array-noise.o header-array-shape.o header-axis.o header-axset.o	\
header-interface.o header-methods.o header-observatory.o		\
header-observatory-telescope.o header-spatial.o header-spatial-beam.o	\
header-spatial-element.o header-spatial-frame.o				\
header-spatial-projection.o header-spectral.o header-spectral-element.o	\
header-vo.o

HEADER_EXPORTS = cubetools_arrelt_types.mod cubetools_axis_types.mod	\
cubetools_axset_types.mod cubetools_beam_types.mod			\
cubetools_brightness.mod cubetools_header_array_types.mod		\
cubetools_header_interface.mod cubetools_header_types.mod		\
cubetools_header_methods.mod cubetools_header_vo.mod			\
cubetools_noise_types.mod cubetools_observatory_types.mod		\
cubetools_obstel_types.mod cubetools_shape_types.mod			\
cubetools_spaelt_types.mod cubetools_spafra_types.mod			\
cubetools_spapro_types.mod cubetools_spatial_types.mod			\
cubetools_spectral_types.mod cubetools_speelt_types.mod

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

STRUCTURE_OBJECTS = structure.o structure-argument.o structure-command.o	\
structure-language.o structure-option.o structure-package.o			\
structure-product.o

STRUCTURE_EXPORTS = cubetools_command.mod cubetools_language.mod		\
cubetools_option.mod cubetools_primitive_arg.mod cubetools_structure.mod	\
cubetools_primitive_prod.mod cubetools_package.mod \

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

SYNTAX_OBJECTS = type-option.o type-switch.o 

SYNTAX_EXPORTS = cubetools_option_types.mod cubetools_switch_types.mod 

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

TYPE_OBJECTS = type-consistency.o type-extrema.o type-keyword.o	\
type-list.o type-processing.o type-progstruct.o type-setup.o	\
type-unit.o type-userspace.o type-userstruct.o type-uservar.o

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

USER_OBJECTS = user2prog.o

USER_EXPORTS = cubetools_userspace.mod cubetools_userstruct.mod	\
cubetools_uservar.mod cubetools_user2prog.mod

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

LIB_IDENTITY = cubetools

LIB_F_OBJECTS = $(ARRAY_OBJECTS) $(HEADER_OBJECTS) $(STRUCTURE_OBJECTS)	\
$(SYNTAX_OBJECTS) $(TYPE_OBJECTS) $(USER_OBJECTS) access.o ascii.o	\
brightness.o cmessaging.o consistency-colors.o consistency-methods.o	\
convert.o data-format.o data-size.o disambiguate.o format.o help.o	\
message.o nan.o parameters.o parse.o string.o unit.o

LIB_EXPORTS = $(ARRAY_EXPORTS) $(HEADER_EXPORTS) $(STRUCTURE_EXPORTS)		\
$(SYNTAX_EXPORTS) $(USER_EXPORTS) cubetools_access.mod cubetools_ascii.mod	\
cubetools_cmessaging.mod cubetools_consistency_colors.mod			\
cubetools_consistency_types.mod cubetools_consistency_methods.mod		\
cubetools_convert.mod cubetools_dataformat.mod cubetools_datasize.mod		\
cubetools_disambiguate.mod cubetools_extrema_types.mod cubetools_help.mod	\
cubetools_format.mod cubetools_keyword_arg.mod cubetools_list.mod		\
cubetools_messaging.mod cubetools_nan.mod cubetools_parameters.mod		\
cubetools_parse.mod cubetools_processing_types.mod				\
cubetools_setup_types.mod cubetools_progstruct_types.mod			\
cubetools_string.mod cubetools_unit.mod cubetools_unit_magnitude.mod		\
cubetools_unit_setup.mod cubetools_unit_arg.mod

INTERFACES_DISABLE = yes

LIB_DEPENDS = $(GREG_LIBS)

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

include $(gagadmdir)/Makefile.lib

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

include $(builddir)/Makefile.deps

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