#			Copyright (c) 1994 by
#			Advanced Visual Systems Inc.
#			All Rights Reserved
#
#	This software comprises unpublished confidential information of
#	Advanced Visual Systems Inc. and may not be used, copied or made
#	available to anyone, except in accordance with the license
#	under which it is furnished.
#
#	This file is under Perforce control
#	$Id: //depot/express/fcs70/om/Makefile#1 $
#
include ../include/stddefs.mk

SRCDIR = $(XP_ROOT)/om
BINDIR = $(XP_ROOT)/bin/$(MACHINE)
LLIB=$(XP_LIB_DIR)/libom.a
DLLIB=$(XP_LIB_DIR)/libom
MCLIB=$(XP_LIB_DIR)/libmnc.a
MCXXLIB=$(XP_LIB_DIR)/libmncxx.a
#VER_FILE=$(XP_ROOT)/Files.rel

#
#  This defines the version number that appears during initialization.
#
include version.mk

LIBOFILES = $(LLIB)(yacc.o) $(LLIB)(proc.o) $(LLIB)(rp.o) \
	    $(LLIB)(elem.o) $(LLIB)(om_misc.o) $(LLIB)(type.o) \
	    $(LLIB)(comp.o) $(LLIB)(parse.o) $(LLIB)(raw.o) \
	    $(LLIB)(list.o) $(LLIB)(func.o) \
	    $(LLIB)(wrap.o) $(LLIB)(notify.o) $(LLIB)(sys.o) \
	    $(LLIB)(gen.o) $(LLIB)(name.o) $(LLIB)(att.o) \
	    $(LLIB)(om_comm.o) $(LLIB)(dgroup.o) $(LLIB)(virt.o) \
	    $(LLIB)(mrg.o) $(LLIB)(sched.o) $(LLIB)(link.o) \
	    $(LLIB)(arr.o) $(LLIB)(agrp.o) $(LLIB)(dfunc.o) \
	    $(LLIB)(prop.o) $(LLIB)(crash.o) $(LLIB)(paths.o) \
	    $(LLIB)(flow.o) $(LLIB)(om_init.o) $(LLIB)(process.o) \
	    $(LLIB)(preproc.o) $(LLIB)(ne_om.o) \
	    $(LLIB)(ebuf.o) $(LLIB)(msg.o) $(LLIB)(env.o) \
	    $(LLIB)(compile.o) $(LLIB)(binv.o) \
	    $(LLIB)(xp_init.o) $(LLIB)(mnini.o) \
	    $(LLIB)(hash.o) $(LLIB)(excxx.o) $(LLIB)(cgen.o) \
	    $(LLIB)(om_vers.o) $(LLIB)(autoload.o)

PROJ_INCLUDES=-I$(SRCDIR) -DMACHINE_STR='"$(MACHINE)"'

default: $(LLIB) $(DLLIBNAME) $(MCLIB) $(MCXXLIB)
#default: $(LLIB) $(MCLIB) $(MCXXLIB) tags

$(MCLIB): $(MCLIB)(mainc.o)

$(MCXXLIB): $(MCXXLIB)(maincxx.o)

test_om: $(LLIB) $(XP_LIB_DIR)/test_om.o 
	$(LINK_C) $(XP_LIB_DIR)/test_om.o $(LLIB) -L$(LLIBDIR) \
	-lcomm -ltool -llic $(LASTLIBS) -o $(BINDIR)/test_om

tags: *.c
	ctags -w *.c $(XP_ROOT)/comm/*.c &

clean::
	rm -f $(LLIB) *.o $(BINDIR)/test_om $(XP_LIB_DIR)/test_om.o tags core

# version is used by the script build/install
version.h: Makefile version.mk
	@echo Making version.h
	-if [ -f "version.h" ] ; then \
	    $(RM) version.h; \
	fi
	echo 'char ExpressVersion[] = "$(VERSION_NUMBER) $(RELEASE_PHASE)";' > version.h
	@echo Making version
	-if [ -f version ] ; then $(RM) version; fi
	printf "EXPRESS\t${VERSION_NUMBER}\t${RELEASE_PHASE}" > version

include $(XP_MACHRULE_PATH)

$(LLIB)(proc.o): ../include/avs/om.h rpprocs.h
$(LLIB)(elem.o): ../include/avs/om.h ../include/avs/om_att.h om_int.h
$(LLIB)(rp.o): ../include/avs/om.h rpprocs.h ../include/avs/heap.h
$(LLIB)(comp.o): ../include/avs/om.h ../include/avs/om_type.h
$(LLIB)(list.o): ../include/avs/om.h ../include/avs/om_type.h \
		 ../include/avs/edf/om_list.edf
$(LLIB)(raw.o): ../include/avs/om.h ../include/avs/om_type.h
$(LLIB)(type.o): ../include/avs/om.h 
$(LLIB)(func.o): ../include/avs/om.h ../include/avs/edf/sm_meth.edf \
		 ../include/avs/edf/om_list.edf
$(LLIB)(wrap.o): ../include/avs/om.h 
$(LLIB)(notify.o): ../include/avs/om.h 
$(LLIB)(sys.o): ../include/avs/om.h version.h
$(LLIB)(gen.o): ../include/avs/om.h  ../include/avs/om_type.h \
		../include/avs/edf/om_list.edf
$(LLIB)(name.o): ../include/avs/om.h
$(LLIB)(att.o): ../include/avs/om.h ../include/avs/om_type.h \
		../include/avs/om_att.h
$(LLIB)(yacc.o): ../include/avs/om.h lex_yy.c parse.h
$(LLIB)(om_comm.o): ../include/avs/om.h parse.h
$(LLIB)(virt.o): ../include/avs/om.h ../include/avs/edf/om_list.edf
$(LLIB)(dgroup.o): ../include/avs/om.h
$(LLIB)(mrg.o): ../include/avs/om.h
$(LLIB)(sched.o): ../include/avs/om.h
$(LLIB)(link.o): ../include/avs/om.h
$(LLIB)(arr.o): ../include/avs/om.h
$(LLIB)(dfunc.o): ../include/avs/om.h
$(LLIB)(agrp.o): ../include/avs/om.h
$(LLIB)(prop.o): ../include/avs/om.h
$(LLIB)(parse.o): ../include/avs/om.h parse.h
$(LLIB)(paths.o): ../include/avs/om.h
$(LLIB)(flow.o): ../include/avs/om.h
$(LLIB)(om_init.o): ../include/avs/om.h ../include/avs/om_type.h
$(LLIB)(process.o): ../include/avs/om.h ../include/avs/om_type.h \
		    ../include/avs/edf/om_proc.edf
$(LLIB)(preproc.o): ../include/avs/om.h parse.h
$(LLIB)(ne_om.o): ../include/avs/ne_om.h
$(LLIB)(data.o): ../include/avs/om.h 
$(LLIB)(ebuf.o): ../include/avs/om.h y_tab.h parse.h
$(LLIB)(msg.o): ../include/avs/om.h 
$(LLIB)(compile.o): ../include/avs/om.h
$(LLIB)(mnini.o): ../include/avs/om.h
$(LLIB)(binv.o): ../include/avs/om.h ../include/avs/heap.h binv.h
$(LLIB)(hash.o): ../include/avs/om.h 
$(LLIB)(excxx.o): ../include/avs/om.h 
$(LLIB)(cgen.o): ../include/avs/om.h 
$(LLIB)(ne_om.o): ../include/avs/om.h
$(LLIB)(crash.o): ../include/avs/om.h
$(LLIB)(om_vers.o): ../include/avs/version.h

$(XP_LIB_DIR)/test_om.o: test_om.c
	$(XP_C_COMPILE_CMD) test_om.c

# We always want this guy compiled -g so that users can call functions
# directly out of it from most debuggers...
$(LLIB)(om_misc.o): ../include/avs/om.h
	-cd $(XP_LIB_DIR); \
	$(COMPILE_C_G) $(GOPT) -c $(SRCDIR)/om_misc.c
	-@cd $(XP_LIB_DIR); \
	if [ -f $% ] ; then \
	    echo $% >> $(FILES_FILE) ; \
	else \
	    echo $% >> $(ERRORS_FILE) ; /bin/false; \
	fi

$(MCLIB)(mainc.o): ../include/avs/om.h
	-cd $(XP_LIB_DIR); \
	$(COMPILE_C) -c $(SRCDIR)/mainc.c
	$(AR) $(ARFLAGS) $@ $(XP_LIB_DIR)/$%
	$(RL) $@
	$(RM) $(XP_LIB_DIR)/$%

$(MCXXLIB)(maincxx.o): ../include/avs/om.h mainc.c
	-cd $(XP_LIB_DIR) ; \
	$(COMPILE_CXX) -c $(SRCDIR)/$*.cxx ;
	$(AR) $(ARFLAGS) $@ $(XP_LIB_DIR)/$%
	$(RL) $@
	$(RM) $(XP_LIB_DIR)/$%
