#########################################################################
#									#
#   Imakefile for the Opera project tree.				#
#   Two main libraries libThotKernel.a and libThotEditor are the	#
#   core of all applications supported.					#
#									#
#   These definitions relies on local Imake.rules and Imake.tmpl via	#
#   the makemake script. makemake call imake and build the resulting	#
#   CommonMake makefile describing all the compilation steps.		#
# 									#
#########################################################################
 
#########################################################################
#									#
#			General Options					#
#									#
#########################################################################
#
# General commands
#

MKDIR	= mkdir -p
MV	= mv
RM	= rm -f
CP	= cp
RM_CMD	= $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~  make.log MakeOut
CLINK	= $(CC) ${LINK_OPTIONS}
MAKE	= make CC="$(CC)" AR="$(AR)" RANLIB="$(RANLIB)"

#
# General definitions.
#

DEPEND		= makedepend
ROOT 		= ${THOTDIR}
BIN		= ${ROOT}/bin
THOTBIN		= ${ROOT}/${MACHINE}/bin

#########################################################################
#									#
#			Compilation Flags				#
#									#
#########################################################################
#
# General compilation flags for ThotLib files and sources using the API.
#

THOTINCLUDES= -I${API} -I${VAR} -I${INCL} -I${FUNC} -I${SCHEMAS} \
 -I${SCHEMASOPERA} ${JPEGINCL} ${PNGINCL} -I/usr/X11/include

BATCHINCLUDES= -I${API} -I${VAR} -I${INCL} -I${FUNC} -I${SCHEMAS} \
 -I${SCHEMASOPERA} -I${BATCH}/f -I/usr/X11/include

APIINCLUDES= -I${API} -I/usr/X11/include 

#
# Version of the LibWWW and the related includes path.
#

LIBWWW	= w3c-libwww-5.0a
WWWINCL	= -I${ROOT}/${LIBWWW}/Library/src

#
# Version of the Lib
#

LIBJPEG	= libjpeg
JPEGINCL= -I${ROOT}/${LIBJPEG}

#
# Version of the LibPNG and the related includes path.
#
LIBZ = zlib
LIBPNG	= libpng
PNGINCL= -I${ROOT}/${LIBPNG} -I${ROOT}/${LIBPNG}/${LIBZ}

#
# Version of the Kaffe interpreter and the related includes path.
#

LIBKAFFE= kaffe-0.7.1
KAFFELIBS= -lkaffe_vm -lkaffe_native -lkaffe_agent -lkaffe_net
KAFFEINCL= -I${ROOT}/javalib

#KAFFEINCL= -I${ROOT}/${LIBKAFFE}/lib/support -I${ROOT}/${LIBKAFFE}/kaffevm \
#           -I${ROOT}/${LIBKAFFE}/config -I${ROOT}/${MACHINE}/${LIBKAFFE}/config

#
# Specific flags for applications or subset of files.
#

JAVA_COMPIL_OPTIONS	= ${KAFFEINCL} \
	-I${JAVA}/f -I${VAR} -I${INCL} -I${FUNC}
PLUGIN_COMPIL_OPTIONS	= -I${VAR} -I${INCL} -I${FUNC} \
	-I${PLUGIN}/f -DPLUGIN_TRACE -DXP_UNIX
DRAW_COMPIL_OPTIONS	= -I${DRAW} -I${DRAW}/f -I${VAR} -I${INCL} -I${FUNC}
INDEX_COMPIL_OPTIONS	= -I${INDEX} -I${INDEX}/f -I${VAR} -I${INCL} -I${FUNC}
TABLE_COMPIL_OPTIONS	= -I${TABLE} -I${TABLE}/f -I${VAR} -I${INCL} -I${FUNC} \
        -I${SCHEMAS}
THOT_COMPIL_OPTIONS	= -I${THOT} -I${THOT}/f -I${DRAW} -I${DRAW}/f \
        -I${INDEX} -I${INDEX}/f -I${VAR} -I${INCL} -I${FUNC}
COLPAGE_COMPIL_OPTIONS	= -D__COLPAGE__ 
AMAYA_COMPIL_OPTIONS	= ${WWWINCL} -I${AMAYA} $(AMAYA_OPTIONS) -I${AMAYA}/f -I${ROOT}/${LIBPNG}/${LIBZ}
ANNOTATIONS_COMPIL_OPTIONS = -I${ROOT}/misc/annotations/f
NEW_AMAYA_COMPIL_OPTIONS= ${WWWINCL} -I${AMAYA} -I${AMAYA}/f \
    -DDEBUG -I${ROOT}/${LIBPNG}/${LIBZ}

#########################################################################
#									#
#		What to build by default: 				#
#									#
#########################################################################

all : globals compilers thotbins

#########################################################################
#									#
#		Rules to build the external libraries			#
#									#
#########################################################################

libwww $(ROOT)/$(MACHINE)/libwww.a :
	@(if [ ! -d $(ROOT)/$(LIBWWW) ] ; \
	  then \
	      cd $(ROOT)/.. ; cvs get opera/$(LIBWWW) ; \
	  fi)
	-@(cd $(ROOT)/$(LIBWWW) ; ./configure ; cd Library/src ; touch *.html ; \
	   touch *.h ; touch *.c ; make CC=$(CC) libwww.a)
	@($(CP) $(ROOT)/$(LIBWWW)/Library/src/libwww.a $(ROOT)/$(MACHINE)/libwww.a)
	@echo $(ROOT)/$(MACHINE)/libwww.a reinstalled

libjpeg $(ROOT)/$(MACHINE)/libjpeg.a :
	@(if [ ! -d $(ROOT)/$(LIBJPEG) ] ; \
	  then \
	      cd $(ROOT)/.. ; cvs get opera/$(LIBJPEG) ; \
	  fi)
	@(cd $(ROOT)/$(LIBJPEG) ; $(MAKE) clean ; $(MAKE) libjpeg.a ; \
	  $(CP) $(ROOT)/$(LIBJPEG)/libjpeg.a $(ROOT)/$(MACHINE)/libjpeg.a)
	@echo $(ROOT)/$(MACHINE)/libjpeg.a reinstalled

libz $(ROOT)/$(MACHINE)/libz.a libpng $(ROOT)/$(MACHINE)/libpng.a :
	@(if [ ! -d $(ROOT)/$(LIBPNG) ] ; \
	  then \
	      cd $(ROOT)/.. ; cvs get opera/$(LIBPNG) ; \
	  fi)
	@(cd $(ROOT)/$(LIBPNG)/$(LIBZ) ; $(MAKE) clean ; $(MAKE) libz.a ; \
	  $(CP) $(ROOT)/$(LIBPNG)/$(LIBZ)/libz.a $(ROOT)/$(MACHINE)/libz.a)
	@echo $(ROOT)/$(MACHINE)/libz.a reinstalled
	@(cd $(ROOT)/$(LIBPNG) ; $(MAKE) clean ; $(MAKE) libpng.a ; \
	  $(CP) $(ROOT)/$(LIBPNG)/libpng.a $(ROOT)/$(MACHINE)/libpng.a)
	@echo $(ROOT)/$(MACHINE)/libpng.a reinstalled

libkaffe kaffe :
	@(if [ ! -d $(ROOT)/$(LIBKAFFE) ] ; \
	  then \
	      cd $(ROOT)/.. ; cvs get opera/$(LIBKAFFE) ; \
	  fi)
	@(if [ ! -d $(ROOT)/$(MACHINE)/$(LIBKAFFE) ] ; \
	  then \
	      mkdir $(ROOT)/$(MACHINE)/$(LIBKAFFE) ; \
	  fi)
	@(cd $(ROOT)/$(MACHINE)/$(LIBKAFFE) ; \
	  $(ROOT)/$(LIBKAFFE)/configure --prefix=$(ROOT) \
	   --prefix=$(ROOT)/$(MACHINE) --libdir=$(ROOT)/$(MACHINE)/bin \
	   --bindir=$(ROOT)/$(MACHINE)/bin --enable-staticlib ; \
	  $(MAKE) CFLAGS="$(CFLAGS) -DSELECT_CALL=AmayaSelect" ; $(MAKE) install)
	@($(MKDIR) $(ROOT)/classes $(ROOT)/classes/lib)
	@($(MV) $(ROOT)/$(MACHINE)/share/kaffe/classes.zip $(ROOT)/classes)
	@($(MV) $(ROOT)/$(MACHINE)/share/kaffe/lib/javac.properties $(ROOT)/classes/lib)
	@($(MV) $(ROOT)/$(MACHINE)/include/kaffe/StubPreamble.h $(ROOT)/javalib)
	@($(MV) $(ROOT)/$(MACHINE)/include/kaffe/jtypes.h $(ROOT)/javalib)
	@($(MV) $(ROOT)/$(MACHINE)/include/kaffe/native.h $(ROOT)/javalib)
	@(echo $(LIBKAFFE) reinstalled)
	@($(RM) -rf $(ROOT)/$(MACHINE)/share $(ROOT)/$(MACHINE)/include \
	        $(ROOT)/$(MACHINE)/man )
	@echo Cleaning temp $(LIBKAFFE) files

# rm $(ROOT)/$(MACHINE)/$(LIBKAFFE) 

#########################################################################
#									#
#			Various Path definitions			#
#									#
#########################################################################
# Include paths.
INCL		= ${ROOT}/thotlib/internals/h
FUNC		= ${ROOT}/thotlib/internals/f
VAR		= ${ROOT}/thotlib/internals/var
API		= ${ROOT}/thotlib/include

# applications
AMAYA		= ${ROOT}/amaya
THOT		= ${ROOT}/thot
TYPO		= ${ROOT}/misc/typo
ANNOTATIONS	= ${ROOT}/misc/annotations
# batchs
BATCH		= ${ROOT}/batch

# Thotlib directories
BASE		= ${ROOT}/thotlib/base
CONTENT		= ${ROOT}/thotlib/content
DIALOGUE	= ${ROOT}/thotlib/dialogue
DOCUMENT	= ${ROOT}/thotlib/document
EDITING		= ${ROOT}/thotlib/editing
IMAGE		= ${ROOT}/thotlib/image
PRESENTATION	= ${ROOT}/thotlib/presentation
TREE		= ${ROOT}/thotlib/tree
VIEW		= ${ROOT}/thotlib/view

# extra libraries
DRAW		= ${ROOT}/drawlib
TABLE		= ${ROOT}/tablelib
INDEX		= ${ROOT}/indexlib
PLUGIN		= ${ROOT}/pluginlib
JAVA		= ${ROOT}/javalib
TABLEAUX	= ${ROOT}/misc/util/tableaux
TOOLS		= ${ROOT}/misc/tools
TRANSF		= ${ROOT}/misc/util/transform
VERSIONS	= ${ROOT}/misc/util/versions

# shemas locations.
SCHEMAS		= ${THOTDIR}/schemas
SCHEMASOPERA	= ${THOTDIR}/schemasOPERA

# schema compilers front-ends.
COMPTREE= ${THOTDIR}/${MACHINE}/bin/app
COMPSTR = ${THOTDIR}/${MACHINE}/bin/str
COMPPRS = ${THOTDIR}/${MACHINE}/bin/prs
COMPTRA = ${THOTDIR}/${MACHINE}/bin/tra

#
# Paths for associated objects.
#

AMAYA_O		= ${ROOT}/${MACHINE}/amaya
THOT_O		= ${ROOT}/${MACHINE}/thot
TYPO_O		= ${ROOT}/${MACHINE}/misc/typo

BATCH_O		= ${ROOT}/${MACHINE}/batch

BASE_O		= ${ROOT}/${MACHINE}/thotlib/base
CONTENT_O	= ${ROOT}/${MACHINE}/thotlib/content
DIALOGUE_O	= ${ROOT}/${MACHINE}/thotlib/dialogue
DOCUMENT_O	= ${ROOT}/${MACHINE}/thotlib/document
EDITING_O	= ${ROOT}/${MACHINE}/thotlib/editing
IMAGE_O		= ${ROOT}/${MACHINE}/thotlib/image
PRESENTATION_O	= ${ROOT}/${MACHINE}/thotlib/presentation
TREE_O		= ${ROOT}/${MACHINE}/thotlib/tree
VIEW_O		= ${ROOT}/${MACHINE}/thotlib/view

DRAW_O		= ${ROOT}/${MACHINE}/drawlib
TABLE_O		= ${ROOT}/${MACHINE}/tablelib
INDEX_O		= ${ROOT}/${MACHINE}/indexlib
PLUGIN_O	= ${ROOT}/${MACHINE}/pluginlib
JAVA_O		= ${ROOT}/${MACHINE}/javalib
TABLEAUX_O	= ${ROOT}/${MACHINE}/misc/util/tableaux
TOOLS_O		= ${ROOT}/${MACHINE}/misc/tools
TRANSF_O	= ${ROOT}/${MACHINE}/misc/util/transform
VERSIONS_O	= ${ROOT}/${MACHINE}/misc/util/versions
ANNOTATIONS_O	= ${ROOT}/${MACHINE}/misc/annotations

SCHEMAS_O	= ${ROOT}/schemas
SCHEMASOPERA_O	= ${ROOT}/schemasOPERA

OBJDIR		= \
	$(AMAYA_O) $(BASE_O) $(BATCH_O) $(COLPAGE_O) $(CONTENT_O) \
	$(DIALOGUE_O) $(DOCUMENT_O) $(EDITING_O) $(IMAGE_O) \
	$(MOTIF_O) $(PRESENTATION_O) $(THOT_O) $(TOOLS_O) $(TRANSF_O) \
	$(TREE_O) $(TYPO_O) $(VIEW_O) $(DRAW_O) $(TABLE_O) $(PLUGIN_O) \
	$(JAVA_O) $(ANNOTATIONS_O) \
	$(TABLEAUX_O) $(INDEX_O) $(JAVA_O)

#########################################################################
#									#
#			Main Target Definitions				#
#									#
#########################################################################

globals : $(ROOT)/makes/Make.depend directories

$(ROOT)/makes/Make.files :
	@(cd $(ROOT)/makes ; make THOTDIR=$(THOTDIR) PARENTDIR=`dirname $(THOTDIR)` TREENAME=`basename $(THOTDIR)` rebuild)

$(ROOT)/makes/Make.depend : $(ROOT)/makes/Make.files
	@(cd $(ROOT)/makes ; make THOTDIR=$(THOTDIR) PARENTDIR=`dirname $(THOTDIR)` TREENAME=`basename $(THOTDIR)` depend)
	@(echo "File list and dependancies rebuild, restart make")
	@(exit 1)

directories :
	@$(MKDIR) $(THOTBIN) $(OBJDIR) $(THOTDIR)/$(MACHINE)/bin \
	  $(THOTDIR)/$(MACHINE)/thotlib $(THOTDIR)/$(MACHINE)/misc

thotbins : \
	thotkernel \
	newlib \
	print 

compilers : \
	grm \
	str \
	prs \
	tra \
	app \
	rescandialogue

tools : \
	typ \
	printstr \
	printprs \
	printtyp \
	transform \
	convtable

#########################################################################
#									#
#		Rules to build the main libraries			#
#									#
#########################################################################

THOTK_OBJ = \
	${BASE_O}/fileaccess.o \
	${BASE_O}/memory.o \
	${BASE_O}/message.o \
	${BASE_O}/platform.o \
	${BASE_O}/registry.o \
	${BASE_O}/structlist.o \
	${CONTENT_O}/content.o \
	${DOCUMENT_O}/externalref.o \
	${DOCUMENT_O}/language.o \
	${DOCUMENT_O}/pivot.o \
	${DOCUMENT_O}/readprs.o \
	${DOCUMENT_O}/readstr.o \
	${DOCUMENT_O}/readtra.o \
	${DOCUMENT_O}/schtrad.o \
	${DOCUMENT_O}/translation.o \
	${TREE_O}/draw.o \
	${TREE_O}/exceptions.o \
	${TREE_O}/references.o \
	${TREE_O}/structschema.o \
	${TREE_O}/tree.o \
	${TREE_O}/checkaccess.o \
	${TREE_O}/labelalloc.o

KERNEL_OBJ = \
	${BASE_O}/batchmessage.o \
	${CONTENT_O}/contentapiND.o \
	${DIALOGUE_O}/nodisplay.o \
	${DOCUMENT_O}/documentapiND.o \
	${DOCUMENT_O}/readpivot.o \
	${DOCUMENT_O}/schemastr.o \
	${DOCUMENT_O}/writepivotND.o \
	${EDITING_O}/applicationapiND.o \
	${PRESENTATION_O}/presentationapiND.o \
	${TREE_O}/attributeapiND.o \
	${TREE_O}/referenceapiND.o \
	${TREE_O}/treeapiND.o

EDITOR_OBJ = \
	$(IMAGE_O)/xbmhandler.o \
	$(IMAGE_O)/epshandler.o \
	$(IMAGE_O)/gifhandler.o	\
	$(IMAGE_O)/jpeghandler.o \
	$(IMAGE_O)/picture.o \
	$(IMAGE_O)/xpmhandler.o \
	$(IMAGE_O)/pnghandler.o \
	$(IMAGE_O)/xpmcrbuffri.o\
	$(IMAGE_O)/xpmcrbuffrp.o\
	$(IMAGE_O)/xpmcrdatafri.o\
	$(IMAGE_O)/xpmcrdatafrp.o\
	$(IMAGE_O)/xpmcreate.o\
	$(IMAGE_O)/xpmcrifrbuf.o\
	$(IMAGE_O)/xpmcrifrdata.o\
	$(IMAGE_O)/xpmcrpfrbuf.o\
	$(IMAGE_O)/xpmcrpfrdata.o\
	$(IMAGE_O)/xpmdata.o\
	$(IMAGE_O)/xpmhashtable.o\
	$(IMAGE_O)/xpmmisc.o\
	$(IMAGE_O)/xpmparse.o\
	$(IMAGE_O)/xpmrdftodata.o\
	$(IMAGE_O)/xpmrdftoi.o\
	$(IMAGE_O)/xpmrdftop.o\
	$(IMAGE_O)/xpmrgb.o\
	${BASE_O}/alloca.o \
	${BASE_O}/config.o \
	${BASE_O}/thotmsg.o \
	${CONTENT_O}/contentapi.o \
	${CONTENT_O}/dictionary.o \
	${CONTENT_O}/search.o \
	${CONTENT_O}/searchref.o \
	${CONTENT_O}/word.o \
	${DIALOGUE_O}/callback.o\
	${DIALOGUE_O}/callbackinit.o \
	${DIALOGUE_O}/font.o \
	${DIALOGUE_O}/geom.o \
	${EDITING_O}/scroll.o \
	${EDITING_O}/selectionapi.o \
	${EDITING_O}/spellchecker.o \
	${IMAGE_O}/abspictures.o \
	${IMAGE_O}/pictureapi.o \
	${PRESENTATION_O}/changepresent.o \
	${PRESENTATION_O}/genericdriver.o \
	${PRESENTATION_O}/presentationapi.o \
	${PRESENTATION_O}/presentdriver.o \
	${PRESENTATION_O}/presvariables.o \
	${PRESENTATION_O}/pschemaapi.o \
	${PRESENTATION_O}/specificdriver.o \
	${PRESENTATION_O}/attrpresent.o \
	${TREE_O}/attributeapi.o \
	${TREE_O}/pagecommands.o \
	${TREE_O}/paginate.o \
	${TREE_O}/referenceapi.o \
	${TREE_O}/treeapi.o \
	${VIEW_O}/absboxes.o \
	${VIEW_O}/boxmoves.o \
	${VIEW_O}/boxparams.o \
	${VIEW_O}/boxpositions.o \
	${VIEW_O}/boxrelations.o \
	${VIEW_O}/buildboxes.o \
	${VIEW_O}/buildlines.o \
	${VIEW_O}/changeabsbox.o \
	${VIEW_O}/createabsbox.o \
	${VIEW_O}/createpages.o \
	${VIEW_O}/frame.o \
	${VIEW_O}/hyphen.o \
	${VIEW_O}/inites.o \
	${VIEW_O}/windowdisplay.o

DIALOGUE_OBJ = \
	${DIALOGUE_O}/LiteClue.o \
	${DIALOGUE_O}/appdialogue.o \
	${DIALOGUE_O}/appli.o \
	${DIALOGUE_O}/attrmenu.o \
	${DIALOGUE_O}/browser.o \
	${DIALOGUE_O}/closedoc.o \
	${DIALOGUE_O}/colors.o \
	${DIALOGUE_O}/context.o \
	${DIALOGUE_O}/createdoc.o \
	${DIALOGUE_O}/creationmenu.o \
	${DIALOGUE_O}/dialogapi.o \
	${DIALOGUE_O}/input.o \
	${DIALOGUE_O}/interface.o \
	${DIALOGUE_O}/keyboards.o \
	${DIALOGUE_O}/lookup.o \
	${DIALOGUE_O}/modiftype.o \
	${DIALOGUE_O}/opendoc.o \
	${DIALOGUE_O}/openview.o \
	${DIALOGUE_O}/picturemenu.o \
	${DIALOGUE_O}/presentmenu.o \
	${DIALOGUE_O}/printmenu.o \
	${DIALOGUE_O}/extprintmenu.o \
	${DIALOGUE_O}/quit.o \
	${DIALOGUE_O}/savedoc.o \
	${DIALOGUE_O}/searchmenu.o \
	${DIALOGUE_O}/searchmenustr.o \
	${DIALOGUE_O}/selectmenu.o \
	${DIALOGUE_O}/visibility.o \
	${DIALOGUE_O}/zoom.o \
	${DOCUMENT_O}/documentapi.o \
	${DOCUMENT_O}/readpivot.o \
	${DOCUMENT_O}/schemas.o \
	${DOCUMENT_O}/views.o \
	${DOCUMENT_O}/docs.o \
	${DOCUMENT_O}/writepivot.o \
	${EDITING_O}/applicationapi.o \
	${EDITING_O}/checkermenu.o \
	${EDITING_O}/editcommands.o \
	${EDITING_O}/selectionapi.o \
	${EDITING_O}/structchange.o\
	${EDITING_O}/structcommands.o \
	${EDITING_O}/structcreation.o \
	${EDITING_O}/structmodif.o \
	${EDITING_O}/structselect.o \
	${EDITING_O}/textcommands.o \
	${EDITING_O}/unstructchange.o\
	${EDITING_O}/viewcommands.o \
	${PRESENTATION_O}/presrules.o \
	${TREE_O}/attributes.o \
	${VIEW_O}/boxlocate.o \
	${VIEW_O}/boxselection.o \
	${VIEW_O}/displaybox.o \
	${VIEW_O}/displayselect.o \
	${VIEW_O}/structlocate.o\
	${VIEW_O}/unstructlocate.o\
	${VIEW_O}/viewapi.o 

DRAW_OBJ = \
	${DRAW_O}/Draw3APP.o \
	${DRAW_O}/Draw3actions.o \
	${DRAW_O}/PaletteAPP.o \
	${DRAW_O}/Paletteactions.o \
	${DRAW_O}/boutons.o \
	${DRAW_O}/edition.o \
	${DRAW_O}/initdraw.o \
	${DRAW_O}/liens.o \
	${DRAW_O}/menus.o \
	${DRAW_O}/objets.o \
	${DRAW_O}/paloutils.o \
	${DRAW_O}/utilitaires.o

TABLE_OBJ = \
	${TABLE_O}/tableau.o \
	${TABLE_O}/tableau2.o 

INDEX_OBJ = \
	${INDEX_O}/indcharge.o \
	${INDEX_O}/indcree.o \
	${INDEX_O}/indmenu.o \
	${INDEX_O}/indpres.o \
	${INDEX_O}/indtable.o \
	${INDEX_O}/indtri.o

PLUGIN_OBJ = \
	${PLUGIN_O}/pluginhandler.o \
	${PLUGIN_O}/pluginapi.o \
	${PLUGIN_O}/pluginbrowse.o \
	${PLUGIN_O}/editplugin.o 

JAVA_OBJ = \
	${JAVA_O}/kaffeine.o \
	${JAVA_O}/JavaTypes.o \
	${JAVA_O}/thotlib_APIApplication_stubs.o \
	${JAVA_O}/thotlib_APIDocument_stubs.o \
	${JAVA_O}/thotlib_APITree_stubs.o \
	${JAVA_O}/thotlib_APIContent_stubs.o \
	${JAVA_O}/thotlib_APIAttribute_stubs.o \
	${JAVA_O}/thotlib_APIReference_stubs.o \
	${JAVA_O}/thotlib_APILanguage_stubs.o \
	${JAVA_O}/thotlib_APIPresentation_stubs.o \
	${JAVA_O}/thotlib_APIView_stubs.o \
	${JAVA_O}/thotlib_APISelection_stubs.o \
	${JAVA_O}/thotlib_APIInterface_stubs.o \
	${JAVA_O}/thotlib_APIRegistry_stubs.o \
	${JAVA_O}/thotlib_APIDialog_stubs.o

thotkernel: globals ${THOTBIN}/libThotKernel.a
ThotLibrary(${THOTBIN}/libThotKernel.a, $(THOTK_OBJ) $(KERNEL_OBJ))

newlib:	 globals ${THOTBIN}/libThotEditor.a
ThotLibrary(${THOTBIN}/libThotEditor.a, $(THOTK_OBJ) $(EDITOR_OBJ) $(DIALOGUE_OBJ))

drawlib: globals ${THOTBIN}/libThotDraw.a
ThotLibrary(${THOTBIN}/libThotDraw.a, $(DRAW_OBJ))

pluginlib: globals ${THOTBIN}/libPlugin.a
ThotLibrary(${THOTBIN}/libPlugin.a, $(PLUGIN_OBJ))

javalib: globals ${THOTBIN}/libJava.a
ThotLibrary(${THOTBIN}/libJava.a, $(JAVA_OBJ))

${DRAW}/Draw3APP.c:  ${DRAW}/Draw3.A $(SCHEMAS)/Draw3.STR ${SCHEMAS}/Draw3P.PRS
	cd ${DRAW} ; ${COMPTREE} Draw3.A

${SCHEMAS}/Draw3.STR : ${SCHEMAS}/Draw3.S ${COMPSTR}
	cd ${SCHEMAS} ; ${COMPSTR} Draw3.S

${SCHEMAS}/Draw3P.PRS : ${SCHEMAS}/Draw3P.P ${COMPPRS}
	cd ${SCHEMAS} ; ${COMPPRS} Draw3P.P

${DRAW}/PaletteAPP.c:  ${DRAW}/Palette.A $(SCHEMAS)/Palette.STR ${SCHEMAS}/PaletteP.PRS
	cd ${DRAW} ; ${COMPTREE} Palette.A

${SCHEMAS}/Palette.STR : ${SCHEMAS}/Palette.S ${COMPSTR}
	cd ${SCHEMAS} ; ${COMPSTR} Palette.S

${SCHEMAS}/PaletteP.PRS : ${SCHEMAS}/PaletteP.P ${COMPPRS}
	cd ${SCHEMAS} ; ${COMPPRS} PaletteP.P

tablelib: globals ${THOTBIN}/libThotTable.a
ThotLibrary(${THOTBIN}/libThotTable.a, $(TABLE_OBJ))
indexlib: globals ${THOTBIN}/libThotIndex.a
ThotLibrary(${THOTBIN}/libThotIndex.a, $(INDEX_OBJ))


#########################################################################
#									#
#		Rules to build the main programs			#
#									#
#########################################################################

#
# thot : uses libThotDraw, LibThotTable and libThotEditor, the interface is
#	 defined in ${THOT}/EDITOR.A interface file.
#
thot: all  THOTEDITOR indexlib drawlib tablelib thotmain

THOT_OBJ = \
	${THOT_O}/EDITORactions.o \
	${THOT_O}/EDITORAPP.o 

THOTEDITOR: ${THOT}/EDITORAPP.c
${THOT}/EDITORAPP.c : ${THOT}/EDITOR.A ${THOTBIN}/app
	cd $(THOT); $(COMPTREE) EDITOR
 
THOT_DEPEND = ${THOT}/EDITOR.h
LIBTHOTEDITING = -lThotIndex -lThotDraw -lThotTable -lThotEditor ${LIBS} 

thotmain: globals ${THOTBIN}/thot $(THOT_DEPEND)
EditBinary(thot,THOT, $(THOT_OBJ), $(LIBTHOTEDITING))

#
# Print : uses specific versions of the interface object.
#
PRINT_OBJ= \
	${DIALOGUE_O}/nodialog.o \
	${TREE_O}/paginatePP.o \
	${VIEW_O}/initpses.o \
	${VIEW_O}/psdisplay.o \
	${EDITING_O}/print.o

print: globals ${THOTBIN}/print
EditBinary(print,PRINT, $(PRINT_OBJ), $(XLIBS))

#
# grm : compiler
#
GRM_OBJ= \
	${BASE_O}/compilmsg.o \
	${BATCH_O}/parser.o \
	${BATCH_O}/grammar.o 

grm: globals ${THOTBIN}/grm
KernelBinary(grm,GRM, $(GRM_OBJ))

#
# str : compiler
#
STR_OBJ = \
	${BASE_O}/compilmsg.o \
	${BATCH_O}/parser.o \
	${BATCH_O}/writestr.o \
	${BATCH_O}/str.o

str: globals	${THOTBIN}/str
KernelBinary(str,STR, $(STR_OBJ))

#
# prs : compiler
#
PRS_OBJ = \
	${BASE_O}/compilmsg.o \
	${BATCH_O}/parser.o \
	${BATCH_O}/writeprs.o \
	${BATCH_O}/prs.o

prs: globals	${THOTBIN}/prs
KernelBinary(prs,PRS, $(PRS_OBJ))

#
# typ : compiler
#
TYP_OBJ = \
	${BASE_O}/compilmsg.o \
	${BATCH_O}/parser.o \
	${BATCH_O}/writetyp.o \
	${BATCH_O}/typ.o

typ: globals	${THOTBIN}/typ
KernelBinary(typ,TYP, $(TYP_OBJ))

#
# tra : compiler
#
TRA_OBJ = \
	${BASE_O}/compilmsg.o \
	${BATCH_O}/parser.o \
	${BATCH_O}/writetra.o \
	${BATCH_O}/tra.o

tra: globals	${THOTBIN}/tra
KernelBinary(tra,TRA, $(TRA_OBJ))

#
# app : compiler
#
NEWTREE_OBJ = \
	${BASE_O}/compilmsg.o \
	${DIALOGUE_O}/callbackinit.o \
	${BATCH_O}/parser.o \
	${BATCH_O}/writeapp.o \
	${BATCH_O}/app.o

app: globals	${THOTBIN}/app
KernelBinary(app,APP, $(NEWTREE_OBJ))

#
# printstr : decompiler
#
PRINTSTR_OBJ = \
	${BATCH_O}/printstr.o

printstr: globals	${THOTBIN}/printstr
KernelBinary(printstr,PRINTSTR, $(PRINTSTR_OBJ))

#
# printprs : decompiler
#
PRINTPRS_OBJ = \
	${DOCUMENT_O}/readprs.o \
	${BATCH_O}/printprs.o

printprs: globals	${THOTBIN}/printprs
KernelBinary(printprs,PRINTPRS, (PRINTPRS_OBJ))

#
# printtyp : decompiler
#
PRINTTYP_OBJ = \
	${DOCUMENT_O}/readtyp.o \
	${BATCH_O}/printtyp.o

printtyp: globals	${THOTBIN}/printtyp
KernelBinary(printtyp,PRINTTYP, $(PRINTTYP_OBJ))

#
# art2rap : how to translate Article documents to the new Rapport Structure.
#
ART2RAP_OBJ = \
	${TOOLS_O}/traiteref.o \
	${TOOLS_O}/art2rap.o

art2rap : globals ${THOTBIN}/art2rapmain
KernelBinary(art2rapmain,ART2RAPMAIN, $(ART2RAP_OBJ))

#
# rescandialogue
#

rescandialogue : $(THOTBIN)/rescandialogue
OtherBinary(rescandialogue,RESCANDIALOGUE, $(TOOLS_O)/rescandialogue.o)

#
# transformation binaries.
#
transform : comp conv

#
# compare : compare two different structured documents.
#
COMP_OBJ = \
	${TRANSF_O}/compstr.o \
	${TRANSF_O}/transdump.o \
	${TRANSF_O}/compwr.o \
	${TRANSF_O}/trans.o

comp: globals	${THOTBIN}/compare
KernelBinary(compare,COMPARE, $(COMP_OBJ))

#
# conv : convert a document to a different DTD.
#
CONV_OBJ = \
	${DOCUMENT_O}/readprs.o \
	${TRANSF_O}/conv.o \
	${TRANSF_O}/convthot.o \
	${TRANSF_O}/convattr.o \
	${TRANSF_O}/convadopte.o \
	${TRANSF_O}/convrd.o \
	${TRANSF_O}/trans.o \
	${TRANSF_O}/convnullf.o \
	${TRANSF_O}/transdump.o
conv: globals	${THOTBIN}/conv
KernelBinary(conv,CONV, $(CONV_OBJ))

#########################################################################
#									#
#		Rules to build the main object files			#
#									#
#########################################################################

ThotObjectModule(spellchecker, ${EDITING_O}, ${EDITING})
ThotObjectModule(checkermenu, ${EDITING_O}, ${EDITING})
ThotObjectModule(word, ${CONTENT_O}, ${CONTENT})

ThotObjectModule(picture, ${IMAGE_O}, ${IMAGE})

ThotObjectModule(xbmhandler, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmdata, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmcreate, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmmisc, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmrgb, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmparse, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmcrbuffri, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmcrbuffrp, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmcrdatafri, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmcrdatafrp, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmcrifrbuf, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmcrifrdata, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmcrpfrbuf, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmcrpfrdata, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmrdftodata, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmrdftoi, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmrdftop, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmhashtable, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(xpmhandler, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(epshandler, ${IMAGE_O}, ${IMAGE})

ThotObjectModule(gifhandler, ${IMAGE_O}, ${IMAGE})

ThotObjectModule(jpeghandler, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(pnghandler, ${IMAGE_O}, ${IMAGE})

ThotObjectModule(comparedyn, ${VIEW_O}, ${VIEW})
ThotObjectModule(createabsbox, ${VIEW_O}, ${VIEW})
ThotObjectModule(createpages, ${VIEW_O}, ${VIEW})
ThotObjectModule(absboxes, ${VIEW_O}, ${VIEW})
ThotObjectModule(abspictures, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(changeabsbox, ${VIEW_O}, ${VIEW})
ThotObjectModule(changepresent, ${PRESENTATION_O}, ${PRESENTATION})
ThotObjectModule(pres, ${VIEW_O}, ${VIEW})
ThotObjectModule(presvariables, ${PRESENTATION_O}, ${PRESENTATION})

ThotObjectModule(search, ${CONTENT_O}, ${CONTENT})
ThotObjectModule(searchref, ${CONTENT_O}, ${CONTENT})
ThotObjectModule(textcommands, ${EDITING_O}, ${EDITING})
ThotObjectModule(editcommands, ${EDITING_O}, ${EDITING})
ThotObjectModule(structcreation, ${EDITING_O}, ${EDITING})
ThotObjectModule(scroll, ${EDITING_O}, ${EDITING})
ThotObjectModule(viewcommands, ${EDITING_O}, ${EDITING})
ThotObjectModule(translation, ${DOCUMENT_O}, ${DOCUMENT})
ThotObjectModule(structmodif, ${EDITING_O}, ${EDITING})
ThotObjectModule(structcommands, ${EDITING_O}, ${EDITING})
ThotObjectModule(structchange, ${EDITING_O}, ${EDITING})
ThotObjectModule(unstructchange, ${EDITING_O}, ${EDITING})
ThotObjectModule(print, ${EDITING_O}, ${EDITING})
ThotObjectModule(structselect, ${EDITING_O}, ${EDITING})

ThotObjectModule(compilmsg, ${BASE_O}, ${BASE})
ThotObjectModule(config, ${BASE_O}, ${BASE})
ThotObjectModule(fileaccess, ${BASE_O}, ${BASE})
ThotObjectModule(structlist, ${BASE_O}, ${BASE})
ThotObjectModule(platform, ${BASE_O}, ${BASE})
ThotObjectModule(thotmsg, ${BASE_O}, ${BASE})
ThotObjectModule(memory, ${BASE_O}, ${BASE})
ThotObjectModule(message, ${BASE_O}, ${BASE})
ThotObjectModule(batchmessage, ${BASE_O}, ${BASE})
ThotObjectModule(alloca, ${BASE_O}, ${BASE})

ThotObjectModule(boxmoves, ${VIEW_O}, ${VIEW})
ThotObjectModule(boxlocate, ${VIEW_O}, ${VIEW})
ThotObjectModule(structlocate, ${VIEW_O}, ${VIEW})
ThotObjectModule(unstructlocate, ${VIEW_O}, ${VIEW})
ThotObjectModule(buildboxes, ${VIEW_O}, ${VIEW})
ThotObjectModule(buildlines, ${VIEW_O}, ${VIEW})
ThotObjectModule(hyphen, ${VIEW_O}, ${VIEW})
ThotObjectModule(boxparams, ${VIEW_O}, ${VIEW})
ThotObjectModule(boxpositions, ${VIEW_O}, ${VIEW})
ThotObjectModule(boxrelations, ${VIEW_O}, ${VIEW})
ThotObjectModule(boxselection, ${VIEW_O}, ${VIEW})
ThotObjectModule(displayselect, ${VIEW_O}, ${VIEW})

ThotObjectModule(callbackinit, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(callback, ${DIALOGUE_O}, ${DIALOGUE})

ThotObjectModule(tree, ${TREE_O}, ${TREE})
ThotObjectModule(checkaccess, ${TREE_O}, ${TREE})
ThotObjectModule(labelalloc, ${TREE_O}, ${TREE})
ThotObjectModule(attrpresent, ${PRESENTATION_O}, ${PRESENTATION})
ThotObjectModule(attributes, ${TREE_O}, ${TREE})
ThotObjectModule(views, ${DOCUMENT_O}, ${DOCUMENT})
ThotObjectModule(docs, ${DOCUMENT_O}, ${DOCUMENT})
ThotObjectModule(exceptions, ${TREE_O}, ${TREE})
ThotObjectModule(pagecommands, ${TREE_O}, ${TREE})
ThotObjectModule(paginate, ${TREE_O}, ${TREE})
SpecialObjectModule(paginatePP,${TREE_O},paginate,${TREE},-DPAGINEETIMPRIME)

ThotObjectModule(references, ${TREE_O}, ${TREE})
ThotObjectModule(structschema, ${TREE_O}, ${TREE})
ThotObjectModule(content, ${CONTENT_O}, ${CONTENT})

ThotObjectModule(draw, ${TREE_O}, ${TREE})

ThotObjectModule(inites, ${VIEW_O}, ${VIEW})
ThotObjectModule(displaybox, ${VIEW_O}, ${VIEW})
ThotObjectModule(windowdisplay, ${VIEW_O}, ${VIEW})
ThotObjectModule(frame, ${VIEW_O}, ${VIEW})
ThotObjectModule(initpses, ${VIEW_O}, ${VIEW})
ThotObjectModule(psdisplay, ${VIEW_O}, ${VIEW})

ThotObjectModule(writepivot, ${DOCUMENT_O}, ${DOCUMENT})
KernelObjectModule(writepivot,writepivotND, ${DOCUMENT_O}, ${DOCUMENT})
ThotObjectModule(readpivot, ${DOCUMENT_O}, ${DOCUMENT})
ThotObjectModule(externalref, ${DOCUMENT_O}, ${DOCUMENT})
ThotObjectModule(readprs, ${DOCUMENT_O}, ${DOCUMENT})
ThotObjectModule(readtyp, ${DOCUMENT_O}, ${DOCUMENT})
ThotObjectModule(readstr, ${DOCUMENT_O}, ${DOCUMENT})
ThotObjectModule(readtra, ${DOCUMENT_O}, ${DOCUMENT})
ThotObjectModule(schemas, ${DOCUMENT_O}, ${DOCUMENT})
ThotObjectModule(schtrad, ${DOCUMENT_O}, ${DOCUMENT})
ThotObjectModule(schemastr, ${DOCUMENT_O}, ${DOCUMENT})

ThotObjectModule(context, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(font, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(geom, ${DIALOGUE_O}, ${DIALOGUE})

ThotObjectModule(dialogapi, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(pictureapi, ${IMAGE_O}, ${IMAGE})
ThotObjectModule(registry, ${BASE_O}, ${BASE})
ThotObjectModule(language, ${DOCUMENT_O}, ${DOCUMENT})
ThotObjectModule(dictionary, ${CONTENT_O}, ${CONTENT})
ThotObjectModule(applicationapi, ${EDITING_O}, ${EDITING})
KernelObjectModule(applicationapi,applicationapiND, ${EDITING_O}, ${EDITING})
ThotObjectModule(attributeapi, ${TREE_O}, ${TREE})
KernelObjectModule(attributeapi,attributeapiND, ${TREE_O}, ${TREE})
ThotObjectModule(contentapi, ${CONTENT_O}, ${CONTENT})
KernelObjectModule(contentapi,contentapiND, ${CONTENT_O}, ${CONTENT})
ThotObjectModule(documentapi, ${DOCUMENT_O}, ${DOCUMENT})
KernelObjectModule(documentapi,documentapiND, ${DOCUMENT_O}, ${DOCUMENT})
ThotObjectModule(presentationapi,${PRESENTATION_O}, ${PRESENTATION})
KernelObjectModule(presentationapi,presentationapiND, ${PRESENTATION_O}, ${PRESENTATION})
ThotObjectModule(pschemaapi, ${PRESENTATION_O}, ${PRESENTATION})
ThotObjectModule(referenceapi, ${TREE_O}, ${TREE})
KernelObjectModule(referenceapi,referenceapiND, ${TREE_O}, ${TREE})
ThotObjectModule(presrules, ${PRESENTATION_O}, ${PRESENTATION})
ThotObjectModule(debugpresent, ${PRESENTATION_O}, ${PRESENTATION})
ThotObjectModule(presentdriver, ${PRESENTATION_O}, ${PRESENTATION})
ThotObjectModule(genericdriver, ${PRESENTATION_O}, ${PRESENTATION})
ThotObjectModule(specificdriver, ${PRESENTATION_O}, ${PRESENTATION})
ThotObjectModule(treeapi, ${TREE_O}, ${TREE})
KernelObjectModule(treeapi,treeapiND, ${TREE_O}, ${TREE})
ThotObjectModule(selectionapi, ${EDITING_O}, ${EDITING})
ThotObjectModule(viewapi, ${VIEW_O}, ${VIEW})
ThotObjectModule(nodisplay, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(nodialog, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(pivot, ${DOCUMENT_O}, ${DOCUMENT})
ThotObjectModule(interface, ${DIALOGUE_O}, ${DIALOGUE})

ThotObjectModule(presentmenu, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(attrmenu, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(creationmenu, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(searchmenu, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(searchmenustr, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(printmenu, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(extprintmenu, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(LiteClue, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(appdialogue, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(picturemenu, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(appli, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(closedoc, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(colors, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(createdoc, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(browser, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(input, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(keyboards, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(lookup, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(opendoc, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(savedoc, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(openview, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(quit, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(selectmenu, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(modiftype, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(visibility, ${DIALOGUE_O}, ${DIALOGUE})
ThotObjectModule(zoom, ${DIALOGUE_O}, ${DIALOGUE})

BatchObjectModule(parser, ${BATCH_O}, ${BATCH})
BatchObjectModule(grammar, ${BATCH_O}, ${BATCH})
BatchObjectModule(app, ${BATCH_O}, ${BATCH})
BatchObjectModule(printprs, ${BATCH_O}, ${BATCH})
BatchObjectModule(printtyp, ${BATCH_O}, ${BATCH})
BatchObjectModule(printstr, ${BATCH_O}, ${BATCH})
BatchObjectModule(prs, ${BATCH_O}, ${BATCH})
BatchObjectModule(typ, ${BATCH_O}, ${BATCH})
BatchObjectModule(str, ${BATCH_O}, ${BATCH})
BatchObjectModule(tra, ${BATCH_O}, ${BATCH})
BatchObjectModule(writeprs, ${BATCH_O}, ${BATCH})
BatchObjectModule(writetyp, ${BATCH_O}, ${BATCH})
BatchObjectModule(writestr, ${BATCH_O}, ${BATCH})
BatchObjectModule(writetra, ${BATCH_O}, ${BATCH})
BatchObjectModule(writeapp, ${BATCH_O}, ${BATCH})

ThotObjectModule(art2rap, ${TOOLS_O}, ${TOOLS})
ThotObjectModule(traiteref, ${TOOLS_O}, ${TOOLS})
ThotObjectModule(rescandialogue, ${TOOLS_O}, ${TOOLS})

ThotObjectModule(conv, ${TRANSF_O}, ${TRANSF})
ThotObjectModule(convthot, ${TRANSF_O}, ${TRANSF})
ThotObjectModule(convattr, ${TRANSF_O}, ${TRANSF})
ThotObjectModule(convadopte, ${TRANSF_O}, ${TRANSF})
ThotObjectModule(convrd, ${TRANSF_O}, ${TRANSF})
ThotObjectModule(trans, ${TRANSF_O}, ${TRANSF})
ThotObjectModule(convnullf, ${TRANSF_O}, ${TRANSF})
ThotObjectModule(transdump, ${TRANSF_O}, ${TRANSF})
ThotObjectModule(compstr, ${TRANSF_O}, ${TRANSF})
ThotObjectModule(compwr, ${TRANSF_O}, ${TRANSF})

AppliObjectModule(COLPAGE,view, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,createabsbox, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,createpages, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,absboxes, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,changeabsbox, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,modifcmd, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,modifcmdstr, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,modifcmdstrno, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,changepresent, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,presrules, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,presvariables, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,edit, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,print, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,select, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,img, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,lig, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,pos, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,docvues, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,attribut, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,traitepage, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,page, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,pivecr, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,pivlec, ${COLPAGE_O}, ${COLPAGE})
AppliObjectModule(COLPAGE,prs, ${COLPAGE_O}, ${COLPAGE})

AppliObjectModule(DRAW,Draw3APP, ${DRAW_O}, ${DRAW})
AppliObjectModule(DRAW,Draw3actions, ${DRAW_O}, ${DRAW})
AppliObjectModule(DRAW,PaletteAPP, ${DRAW_O}, ${DRAW})
AppliObjectModule(DRAW,Paletteactions, ${DRAW_O}, ${DRAW})
AppliObjectModule(DRAW,utilitaires, ${DRAW_O}, ${DRAW})
AppliObjectModule(DRAW,liens, ${DRAW_O}, ${DRAW})
AppliObjectModule(DRAW,menus, ${DRAW_O}, ${DRAW})
AppliObjectModule(DRAW,paloutils, ${DRAW_O}, ${DRAW})
AppliObjectModule(DRAW,edition, ${DRAW_O}, ${DRAW})
AppliObjectModule(DRAW,objets, ${DRAW_O}, ${DRAW})
AppliObjectModule(DRAW,initdraw, ${DRAW_O}, ${DRAW})
AppliObjectModule(DRAW,boutons, ${DRAW_O}, ${DRAW})

AppliObjectModule(TABLE,tableau, ${TABLE_O}, ${TABLE})
AppliObjectModule(TABLE,tableau2, ${TABLE_O}, ${TABLE})

AppliObjectModule(INDEX,indmenu, ${INDEX_O}, ${INDEX})
AppliObjectModule(INDEX,indtable, ${INDEX_O}, ${INDEX})
AppliObjectModule(INDEX,indcree, ${INDEX_O}, ${INDEX})
AppliObjectModule(INDEX,indcharge, ${INDEX_O}, ${INDEX})
AppliObjectModule(INDEX,indpres, ${INDEX_O}, ${INDEX})
AppliObjectModule(INDEX,indtri, ${INDEX_O}, ${INDEX})

AppliObjectModule(PLUGIN,pluginhandler, ${PLUGIN_O}, ${PLUGIN})
AppliObjectModule(PLUGIN,pluginapi, ${PLUGIN_O}, ${PLUGIN})
AppliObjectModule(PLUGIN,pluginbrowse, ${PLUGIN_O}, ${PLUGIN})
AppliObjectModule(PLUGIN,editplugin, ${PLUGIN_O}, ${PLUGIN})

AppliObjectModule(JAVA,kaffeine, ${JAVA_O}, ${JAVA})
AppliObjectModule(JAVA,JavaTypes, ${JAVA_O}, ${JAVA})
AppliObjectModule(JAVA,thotlib_APIApplication_stubs, ${JAVA_O}, ${JAVA})
AppliObjectModule(JAVA,thotlib_APIDocument_stubs, ${JAVA_O}, ${JAVA})
AppliObjectModule(JAVA,thotlib_APITree_stubs, ${JAVA_O}, ${JAVA})
AppliObjectModule(JAVA,thotlib_APIContent_stubs, ${JAVA_O}, ${JAVA})
AppliObjectModule(JAVA,thotlib_APIAttribute_stubs, ${JAVA_O}, ${JAVA})
AppliObjectModule(JAVA,thotlib_APIReference_stubs, ${JAVA_O}, ${JAVA})
AppliObjectModule(JAVA,thotlib_APILanguage_stubs, ${JAVA_O}, ${JAVA})
AppliObjectModule(JAVA,thotlib_APIPresentation_stubs, ${JAVA_O}, ${JAVA})
AppliObjectModule(JAVA,thotlib_APIView_stubs, ${JAVA_O}, ${JAVA})
AppliObjectModule(JAVA,thotlib_APISelection_stubs, ${JAVA_O}, ${JAVA})
AppliObjectModule(JAVA,thotlib_APIInterface_stubs, ${JAVA_O}, ${JAVA})
AppliObjectModule(JAVA,thotlib_APIRegistry_stubs, ${JAVA_O}, ${JAVA})
AppliObjectModule(JAVA,thotlib_APIDialog_stubs, ${JAVA_O}, ${JAVA})


AppliObjectModule(THOT,EDITORAPP, ${THOT_O}, ${THOT})
AppliObjectModule(THOT,EDITORactions, ${THOT_O}, ${THOT})

#########################################################################
#									#
#		Rules to build Amaya application			#
#									#
#########################################################################

amaya: all compHTML compHTMLP compHTMLT NEWHTMLsource NEWAMAYAEDITOR amayamain

#
# Compilations rules for HTML structured documents.
#
 
# structure schemas
compHTML: $(AMAYA)/HTML.STR
$(AMAYA)/HTML.STR : $(AMAYA)/HTML.S
	cd $(AMAYA); $(COMPSTR) $(AMAYA_OPTIONS) HTML
	cd $(AMAYA); $(COMPPRS) $(AMAYA_OPTIONS) HTMLP
	cd $(AMAYA); $(COMPPRS) $(AMAYA_OPTIONS) -DPAGE HTMLP HTMLPP
	cd $(AMAYA); $(COMPPRS) $(AMAYA_OPTIONS) -DUS_PAPER HTMLP HTMLPPUS
	cd $(AMAYA); $(COMPPRS) $(AMAYA_OPTIONS) -DBLACK_WHITE HTMLP HTMLPBW
	cd $(AMAYA); $(COMPTRA) $(AMAYA_OPTIONS) HTMLT
 
# presentation schemas
compHTMLP: $(AMAYA)/HTMLP.PRS
$(AMAYA)/HTMLP.PRS : $(AMAYA)/HTMLP.P
	cd $(AMAYA); $(COMPPRS) $(AMAYA_OPTIONS) HTMLP
	cd $(AMAYA); $(COMPPRS) $(AMAYA_OPTIONS) -DPAGE HTMLP HTMLPP
	cd $(AMAYA); $(COMPPRS) $(AMAYA_OPTIONS) -DUS_PAPER HTMLP HTMLPPUS
	cd $(AMAYA); $(COMPPRS) $(AMAYA_OPTIONS) -DBLACK_WHITE HTMLP HTMLPBW
 
# traduction schemas
compHTMLT: $(AMAYA)/HTMLT.TRA
$(AMAYA)/HTMLT.TRA : $(AMAYA)/HTMLT.T
	cd $(AMAYA); $(COMPTRA) $(AMAYA_OPTIONS) HTMLT

# interface schemas
NEWHTMLsource: ${AMAYA}/HTMLAPP.c
${AMAYA}/HTMLAPP.c : ${AMAYA}/HTML.A ${AMAYA}/HTML.STR ${THOTBIN}/app
	cd $(AMAYA); $(COMPTREE) $(AMAYA_OPTIONS) HTML

NEWHTMLh: ${AMAYA}/HTML.h
${AMAYA}/HTML.h : ${AMAYA}/HTML.A ${AMAYA}/HTML.STR ${THOTBIN}/app
	cd $(AMAYA); $(COMPTREE) $(AMAYA_OPTIONS) HTML

NEWAMAYAEDITOR: ${AMAYA}/EDITORAPP.c
${AMAYA}/EDITORAPP.c : ${AMAYA}/EDITOR.A ${THOTBIN}/app
	cd $(AMAYA); $(COMPTREE) $(AMAYA_OPTIONS) EDITOR
 
# list of objects
AMAYA_OBJ = \
	${AMAYA_O}/HTMLAPP.o \
	${AMAYA_O}/EDITORAPP.o \
	${AMAYA_O}/init.o \
	${AMAYA_O}/EDITORactions.o \
	${AMAYA_O}/HTMLactions.o \
	${AMAYA_O}/HTMLform.o \
	${AMAYA_O}/HTMLedit.o \
	${AMAYA_O}/HTMLsave.o \
	${AMAYA_O}/html2thot.o \
	${AMAYA_O}/HTMLstyle.o \
	${AMAYA_O}/EDITstyle.o \
	${AMAYA_O}/HTMLimage.o \
	${AMAYA_O}/EDITimage.o \
	${AMAYA_O}/HTMLpresentation.o \
	${AMAYA_O}/p2css.o \
	${AMAYA_O}/UIcss.o \
	${AMAYA_O}/css.o \
	${AMAYA_O}/HTMLhistory.o \
	${AMAYA_O}/answer.o \
	${AMAYA_O}/query.o \
	${AMAYA_O}/AHTURLTools.o \
	${AMAYA_O}/HTMLtable.o \
	${AMAYA_O}/AHTBridge.o \
	${AMAYA_O}/AHTFWrite.o \
	${AMAYA_O}/trans.o \
	${AMAYA_O}/transparse.o \
	${AMAYA_O}/AHTMemConv.o 

# linking
amayamain: globals ${THOTBIN}/amaya
EditBinary(amaya,AMAYA, $(AMAYA_OBJ), $(LIBS))

# rules for building objects
AppliObjectModule(AMAYA,AHTBridge, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,AHTFWrite, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,AHTMemConv, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,AHTURLTools, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,EDITORAPP, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,EDITORactions, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,EDITimage, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,EDITstyle, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,HTMLAPP, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,HTMLactions, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,HTMLedit, ${AMAYA_O}, ${AMAYA})
AppliObjectModule(AMAYA,HTMLform, ${AMAYA_O}, ${AMAYA})
AppliObjectModule(AMAYA,HTMLhistory, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,HTMLimage, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,HTMLpresentation, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,HTMLsave, ${AMAYA_O},${AMAYA})
AppliObjectModule(AMAYA,HTMLstyle, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,HTMLtable, ${AMAYA_O}, ${AMAYA})
AppliObjectModule(AMAYA,UIcss, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,answer, ${AMAYA_O}, ${AMAYA})
AppliObjectModule(AMAYA,css, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,html2thot, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,init, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,p2css, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,query, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,trans, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(AMAYA,transparse, ${AMAYA_O},  ${AMAYA})

#########################################################################
#									#
#		Rules to build Amaya application			#
#									#
#########################################################################

new_amaya amaya_new: all compHTML compHTMLP compHTMLT NEWHTMLsource NEWAMAYAEDITOR new_amayamain

# list of objects
NEW_AMAYA_OBJ = \
	${AMAYA_O}/HTMLAPP.o \
	${AMAYA_O}/EDITORAPP.o \
	${AMAYA_O}/init.o \
	${AMAYA_O}/EDITORactions.o \
	${AMAYA_O}/HTMLactions.o \
	${AMAYA_O}/HTMLform.o \
	${AMAYA_O}/HTMLedit.o \
	${AMAYA_O}/HTMLsave.o \
	${AMAYA_O}/html2thot.o \
	${AMAYA_O}/HTMLstyle.o \
	${AMAYA_O}/EDITstyle.o \
	${AMAYA_O}/HTMLimage.o \
	${AMAYA_O}/EDITimage.o \
	${AMAYA_O}/HTMLpresentation.o \
	${AMAYA_O}/p2css.o \
	${AMAYA_O}/UIcss.o \
	${AMAYA_O}/css.o \
	${AMAYA_O}/HTMLhistory.o \
	${AMAYA_O}/HTMLtable.o \
	${AMAYA_O}/trans.o \
	${AMAYA_O}/transparse.o \
\
	${AMAYA_O}/AHTMemConv.o  \
	${AMAYA_O}/AHTURLTools.o \
	${AMAYA_O}/eventamaya.o \
	${AMAYA_O}/eventloop.o \
	${AMAYA_O}/eventwww.o

# linking
new_amayamain: globals ${THOTBIN}/libJava.a ${THOTBIN}/libPlugin.a ${THOTBIN}/new_amaya
EditBinary(new_amaya,NEW_AMAYA, $(NEW_AMAYA_OBJ) ${THOTBIN}/libJava.a ${THOTBIN}/libPlugin.a,\
           -lPlugin -lJava $(KAFFELIBS) $(LIBS))

# rules for building objects
AppliObjectModule(NEW_AMAYA,eventamaya, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(NEW_AMAYA,eventloop, ${AMAYA_O},  ${AMAYA})
AppliObjectModule(NEW_AMAYA,eventwww, ${AMAYA_O},  ${AMAYA})

#########################################################################
#									#
#	Rules to build the table converter application			#
#									#
#########################################################################

TABLEAUX_OBJ	= \
		${TABLEAUX_O}/error_tab.o \
		${TABLEAUX_O}/conv2tableau.o \
		${TABLEAUX_O}/conv2table.o \
		${TABLEAUX_O}/tableau.o \
		${TABLEAUX_O}/Tableaux.o

convtable: globals $(THOTBIN)/convtable
EditBinary(convtable,CONVTABLE, $(TABLEAUX_OBJ), -lnewThot)

# object building rules

ThotObjectModule(Tableaux,${TABLEAUX_O},${TABLEAUX})
ThotObjectModule(conv2table,${TABLEAUX_O},${TABLEAUX})
ThotObjectModule(conv2tableau,${TABLEAUX_O},${TABLEAUX})
ThotObjectModule(error_tab,${TABLEAUX_O},${TABLEAUX})
ThotObjectModule(tableau,${TABLEAUX_O},${TABLEAUX})

#########################################################################
#                                                                       #
#       Rules to build the annotation application                       #
#                                                                       #
#########################################################################

ANNOTATIONS_OBJ = \
        ${ANNOTATIONS_O}/AnnotationsAPP.o \
        ${ANNOTATIONS_O}/Annotationsactions.o \
        ${ANNOTATIONS_O}/EDITORAPP.o \
        ${ANNOTATIONS_O}/EDITORactions.o \
        ${ANNOTATIONS_O}/ExtAnnoAPP.o \
        ${ANNOTATIONS_O}/ExtAnnoactions.o \
        ${ANNOTATIONS_O}/annot_io.o \
        ${ANNOTATIONS_O}/annotactions.o \
        ${ANNOTATIONS_O}/annotations.o \
        ${ANNOTATIONS_O}/annotbase.o \
        ${ANNOTATIONS_O}/annotenviron.o \
        ${ANNOTATIONS_O}/dialogAnnot.o \
        ${ANNOTATIONS_O}/marques.o

${ANNOTATIONS}/EDITORAPP.c: ${ANNOTATIONS}/EDITOR.A
	cd ${ANNOTATIONS} ;  ${COMPTREE} EDITOR.A

${ANNOTATIONS}/AnnotationsAPP.c:  ${ANNOTATIONS}/Annotations.A
	cd ${ANNOTATIONS} ;  ${COMPTREE} Annotations.A

${ANNOTATIONS}/ExtAnnoAPP.c:  ${ANNOTATIONS}/ExtAnno.A
	cd ${ANNOTATIONS} ;  ${COMPTREE} ExtAnno.A

annotations: globals ${THOTBIN}/annotations
EditBinary(annotations,ANNOTATIONS, $(ANNOTATIONS_OBJ), $(LIBS))

AppliObjectModule(ANNOTATIONS,AnnotationsAPP,${ANNOTATIONS_O},${ANNOTATIONS})
AppliObjectModule(ANNOTATIONS,Annotationsactions,${ANNOTATIONS_O},${ANNOTATIONS})
AppliObjectModule(ANNOTATIONS,EDITORAPP,${ANNOTATIONS_O},${ANNOTATIONS})
AppliObjectModule(ANNOTATIONS,EDITORactions,${ANNOTATIONS_O},${ANNOTATIONS})
AppliObjectModule(ANNOTATIONS,ExtAnnoAPP,${ANNOTATIONS_O},${ANNOTATIONS})
AppliObjectModule(ANNOTATIONS,ExtAnnoactions,${ANNOTATIONS_O},${ANNOTATIONS})
AppliObjectModule(ANNOTATIONS,annot_io,${ANNOTATIONS_O},${ANNOTATIONS})
AppliObjectModule(ANNOTATIONS,annotactions,${ANNOTATIONS_O},${ANNOTATIONS})
AppliObjectModule(ANNOTATIONS,annotations,${ANNOTATIONS_O},${ANNOTATIONS})
AppliObjectModule(ANNOTATIONS,annotbase,${ANNOTATIONS_O},${ANNOTATIONS})
AppliObjectModule(ANNOTATIONS,annotenviron,${ANNOTATIONS_O},${ANNOTATIONS})
AppliObjectModule(ANNOTATIONS,dialogAnnot,${ANNOTATIONS_O},${ANNOTATIONS})
AppliObjectModule(ANNOTATIONS,marques,${ANNOTATIONS_O},${ANNOTATIONS})


#########################################################################
#									#
#	Extra rules : clean, rebuild, depend, mkid			#
#									#
#########################################################################

ThotCleanSubdirs($(OBJDIR))

rebuild :
	@(cd $(THOTDIR)/makes ; make THOTDIR=$(THOTDIR) PARENTDIR=`dirname $(THOTDIR)` TREENAME=`basename $(THOTDIR)`  rebuild)

depend :
	(cd $(THOTDIR)/makes ; make THOTDIR=$(THOTDIR) PARENTDIR=`dirname $(THOTDIR)` TREENAME=`basename $(THOTDIR)` depend)

mkid :
	@(cd $(THOTDIR)/makes ; make THOTDIR=$(THOTDIR) PARENTDIR=`dirname $(THOTDIR)` TREENAME=`basename $(THOTDIR)` mkid)

tags :
	@(cd $(THOTDIR)/makes ; make THOTDIR=$(THOTDIR) PARENTDIR=`dirname $(THOTDIR)` TREENAME=`basename $(THOTDIR)` tags)

proto :
	@(cd $(THOTDIR)/makes ; make THOTDIR=$(THOTDIR) PARENTDIR=`dirname $(THOTDIR)` TREENAME=`basename $(THOTDIR)` proto)

javastub :
	@(cd $(THOTDIR)/makes ; make THOTDIR=$(THOTDIR) PARENTDIR=`dirname $(THOTDIR)` TREENAME=`basename $(THOTDIR)` javastub)

java :
	@(cd $(THOTDIR)/makes ; make THOTDIR=$(THOTDIR) PARENTDIR=`dirname $(THOTDIR)` TREENAME=`basename $(THOTDIR)` javastub java)

update :
	@(cd $(THOTDIR)/makes ; make THOTDIR=$(THOTDIR) PARENTDIR=`dirname $(THOTDIR)` TREENAME=`basename $(THOTDIR)` update)

commit :
	@(cd $(THOTDIR)/makes ; make THOTDIR=$(THOTDIR) PARENTDIR=`dirname $(THOTDIR)` TREENAME=`basename $(THOTDIR)` commit)

schemas :
	@(cd $(THOTDIR)/schemas ; make THOTDIR=$(THOTDIR) MACHINE=$(MACHINE))

#########################################################################
#									#
#		Include dependancies from Make.depend			#
#									#
#########################################################################

ThotAddDepend(${ROOT}/makes/Make.depend)

