#
# $PROJECT: Makefile includes
#
# $VER: sas_rules.mk 1.5 (23.09.97)
#
# by
#
# Stefan Ruppert , Windthorststrasse 5 , 65439 Floersheim , GERMANY
#
# (C) Copyright 1995
# All Rights Reserved !
#
# $HISTORY:
#
# 23.09.97 : 001.005 : hided some commands
# 05.07.97 : 001.004 : changed to new include structure
# 31.12.95 : 001.003 : added datatype target
# 02.09.95 : 001.002 : added checkinsym
# 21.07.95 : 001.001 : initial
#

##############################################################################
#
# command to use including path
#

SC      = sc
CC      = sc
LD      = slink
AR      = oml

##############################################################################
#
# GNUMake SAS-C pattern rules
#
# These rules compiles every c and assembler source and puts the output to
# the OBJDIR directory
#

$(OBJDIR)/%.o: %.asm
	$(SC) $(SCOPTS) $(SCWARN) $(SCIDIRS) $(DEBUG) $(SCOPTIMIZE) ASM $< OBJNAME $@
	$(ARCHIVER)

ifneq ($(HOLDCCODE)X,X)
$(OBJDIR)/%.o: %.cc
	$(SC) $(SCOPTS) $(SCWARN) $(SCIDIRS) $(DEBUG) $(SCOPTIMIZE) CXXONLY CXXSRC $< OBJNAME t:
	@$(CP) $(CPFLAGS) t:$*..c $(@D)
	$(SC) $(SCOPTS) $(SCWARN) $(SCIDIRS) $(DEBUG) $(SCOPTIMIZE) CSRC t:$*..c OBJNAME t:
	@$(RM) $(RMFLAGS) t:$*..c
	@$(MV) $(MVFLAGS) t:$*..o $@
	$(ARCHIVER)
else
$(OBJDIR)/%.o: %.cc
	$(SC) $(SCOPTS) $(SCWARN) $(SCIDIRS) $(SCUSER) $(DEBUG) $(SCOPTIMIZE) CXXSRC $< OBJNAME t:
	@$(MV) $(MVFLAGS) t:$(@F) $@
	$(ARCHIVER)
endif

$(OBJDIR)/%.o: %.c
	$(SC) $(SCOPTS) $(SCWARN) $(SCIDIRS) $(SCUSER) $(DEBUG) $(SCOPTIMIZE) CSRC $< OBJNAME t:
	@$(MV) $(MVFLAGS) t:$(@F) $@
	$(ARCHIVER)


##############################################################################
#
# make datatype, only if the DATATYPE varibale is specified
#

ifneq ($(DATATYPE)X,X)
$(DATATYPE) : $(OBJS)
	@echo "$^" >$(LINKTMPNAME)
	$(LD) with $(LINKTMPNAME) to $@ $(SLOPTS) $(LINKLIBS)
	@Delete $(LINKTMPNAME) quiet
	@$(PROTECT) $@ FLAGS=E SUB
	$(CP) $(CPFLAGS) $@ $(DTYPEDEST)
	$(FLUSHLIB) $(@F)

$(DTYPEDEST): $(DATATYPE)
	$(CP) $(CPFLAGS) $(DATATYPE) $@

$(PATCHDESTDIR)/%.p : $(PATCHSRCDIR)/%
	sc:c/scompare -o$@ $(PATCHSRCDIR)/$(PATCHBASE) $^
endif

##############################################################################
#
# make BOOPSI class, only if the BOOPSICLASS variable is specified
#

ifneq ($(BOOPSICLASS)X,X)
$(BOOPSICLASS) : $(OBJS)
	@echo "$(filter %.o,$^)" >$(LINKTMPNAME)
	$(LD) with $(LINKTMPNAME) to $@ $(SLOPTS) $(LINKLIBS)
	@Delete $(LINKTMPNAME) quiet
	@$(PROTECT) $@ FLAGS=E SUB
	$(CP) $(CPFLAGS) $@ $(BCLASSDEST)
	$(FLUSHLIB) $(@F)
endif

##############################################################################
#
# make startup.class executable, if SUEXE variable is specified
#

ifneq ($(SUEXE)X,X)
$(SUEXE) : $(OBJS)
	$(LD) from lib:sucl.o $(filter %.o,$^) to $@ $(SLOPTS) $(LINKLIBS)
endif


##############################################################################
#
# make SAS-C GST file
#

$(GST): $(GSTINC)
	$(SC) MGST $(GST) $(GSTINC) $(SCIDIRS) NOOBJNAME NOICON

