#
# $PROJECT: Makefile includes
#
# $VER: rules.mk 1.2 (24.09.97)
#
# $AUTHOR: Stefan Ruppert , Windthorststrasse 5 , 65439 Floersheim , GERMANY
#
# $COPYRIGHT: (C) Copyright 1997 by Stefan Ruppert, All Rights Reserved!
#
# $EMAIL: ruppert@amigaworld.com
#
# $HISTORY:
#
# 24.09.97 : 001.002 : added default compiler
# 05.07.97 : 001.001 : initial
#

ifeq "$(VARS_INCLUDED)X" "X"
include vars.mk
endif

include $(COMPILER)_rules.mk

##############################################################################
#
# commands
#

RX     = Sys:Rexxc/rx
ifeq ($(NAME)X,X)
NAME = $(PROJECT)
endif
ifeq ($(VERSTR)X,X)
VERSTR = $(VERSION).$(REVISION)
endif

##############################################################################
#
# generate c source version information
#

$(CREVFILE):
	rx MakeCRev $(PROJECT) $(VERSION) $(REVISION) >$(CREVFILE)

crevheader: $(CREVFILE)

##############################################################################
#
# make prototypes
#

protos: $(DIRS) $(PROTOS)


ifneq ($(PSRCS)X,X)
$(PROTOS): $(PSRCS)
	$(MKPROTO) $(PSRCS) TO $(PROTOS) $(MKPROTOFLAGS)
else
$(PROTOS): $(CSRCS)
	$(MKPROTO) $(CSRCS) TO $(PROTOS) $(MKPROTOFLAGS)
endif

##############################################################################
#
# generate pragmas out of fd files
#

ifneq ($(LIBPRAGMA)X,X)
$(LIBPRAGMA): $(LIBFD) $(LIBPROTOS)
	$(MKPRAGMA) $(LIBFD) $@ $(LIBPROTOS) $(MKPRAGMAFLAGS)
endif

##############################################################################
#
# generate c-source file out of a catalog description
#

ifneq ($(CATDIR)X,X)
$(EMPTYCT) : $(CATDESC)
	$(CATCOMP) $^ CTFILE $@ $(CATFLAGS)

$(CATSRCS) : $(CATDESC)
	$(CATCOMP) $^ CFILE $@  $(CATFLAGS)

$(CATDIR)/$(LANG)/%.catalog: $(CATTRANSDIR)/%.ct $(CATDIR)/$(LANG)
	$(CATCOMP) $(CATDESCDIR)/$*.cd $< CATALOG $@

$(CATDIR)/%/$(CATNAME).catalog: %/$(CATNAME).ct
	$(CATCOMP) $(CATDESCDIR)/$(CATNAME).cd $< CATALOG $@

$(CATDIR)/$(LANG):
	$(MKDIR) $(MKDIRFLAGS) $@
endif

##############################################################################
#
# check in all files
#

checkin:
	$(CI) -I -r$(VERSION).$(REVISION) -t-initial $(subst RCS,,$(wildcard *))

checkinsym:
	$(CI) -I -NV$(VERSION)_$(REVISION) -r -t-initial $(subst RCS,,$(wildcard *))

checkout:
	$(CO) -l $(filter-out Makefile%,$(subst RCS/,,$(wildcard RCS/*)))

##############################################################################
#
# make the object directory
#

$(DIRS):
	$(MKDIR) $@ $(MKDIRFLAGS)

##############################################################################
#
# clean up
#

objclean:
	$(RM) $(OBJDIR)/*.o $(DATATYPE) $(RMFLAGS)

##############################################################################
#
# generate autodocs
#

$(filter %.doc,$(AUTODOC)) : $(SRCS)
	 c:swtools/makedoc $^ AUTODOC $@ $(MAKEDOCFLAGS) $(MDOCFLAGS)

##############################################################################
#
# convert autodoc to an amigaguide
#

$(GUIDE) : $(AUTODOC)
	c:swtools/makexref FROM $^ TO t:tmp.xref NOICON VERBOSE CATEGORY Tmp
	c:swtools/loadxref t:tmp.xref $(XREFLOAD) XREFPRI=127 INDEX
	c:swtools/xrefconvert FROM $(filter %.doc,$<) TO $(@D) VERBOSE NOMAINPAGELINK $(MAKEGUIDEFLAGS)
	c:swtools/expungexref Tmp
	delete t:tmp.xref

$(XREF) : $(AUTODOC)
	c:swtools/expungexref $(XREFCATEGORY)
	c:swtools/makexref FROM $^ TO $@ NOICON VERSION $(VERSION) REVISION $(REVISION) \
			   VERBOSE CATEGORY $(XREFCATEGORY)


