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

include $(gagadmdir)/Makefile.def

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

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 

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

VARIABLE_OBJECTS = type-progstruct.o type-userspace.o type-userstruct.o	\
type-uservar.o

VARIABLE_EXPORTS = cubetools_progstruct_types.mod cubetools_userspace.mod	\
cubetools_userstruct.mod cubetools_uservar.mod

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

#***JP: type-dataformat.o is pretty specific to IO. It should belong to one
#***JP: of the IO library.

SYNTAX_OBJECTS = type-access.o type-dataformat.o type-datatype.o	\
type-key.o type-keywordlist.o type-switch.o

SYNTAX_EXPORTS = cubesyntax_datatype_types.mod cubesyntax_key_types.mod	\
cubetools_access_types.mod cubetools_dataformat_types.mod		\
cubetools_keywordlist_types.mod cubetools_switch_types.mod

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

#***JP: tool-user2prog depends on unit...
UNIT_OBJECTS = type-unit.o unit.o tool-user2prog.o

UNIT_EXPORTS = cubetools_unit.mod cubetools_unit_arg.mod	\
cubetools_unit_magnitude.mod cubetools_unit_setup.mod cubetools_unit_types.mod \
cubetools_user2prog.mod

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

KEYVAL_OBJECTS = type-keyval.o tool-keyvalunit-list.o type-value.o	\
type-keyval-keyword.o type-keyval-strg.o type-keyvalunit-real.o		\
type-keyvalunit-dble.o

KEYVAL_EXPORTS = cubesyntax_keyval_types.mod				 \
cubesyntax_keyval_keyword_types.mod cubesyntax_keyval_strg_types.mod	 \
cubesyntax_keyvalunit_list_tool.mod cubesyntax_keyvalunit_real_types.mod \
cubesyntax_keyvalunit_dble_types.mod cubesyntax_value_real_types.mod	 \
cubesyntax_value_dble_types.mod cubesyntax_value_strg_types.mod

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

LIB_IDENTITY = cubesyntax

LIB_F_OBJECTS = $(STRUCTURE_OBJECTS) $(VARIABLE_OBJECTS) $(SYNTAX_OBJECTS)	\
$(UNIT_OBJECTS) $(KEYVAL_OBJECTS) message.o

LIB_EXPORTS = $(STRUCTURE_EXPORTS) $(VARIABLE_EXPORTS) $(SYNTAX_EXPORTS)	\
$(UNIT_EXPORTS) $(KEYVAL_EXPORTS) cubesyntax_messaging.mod

INTERFACES_DISABLE = yes

LIB_DEPENDS = -lcubetools $(GREG_LIBS)

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

include $(gagadmdir)/Makefile.lib

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

include $(builddir)/Makefile.deps

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