# TOVE top-level makefile
# Author: Timo Pärnänen


# The name of the switch side executable
TARGET = controller

# Switch side object files on the top level
OBJS = swmain.o

# Subdirs that contain necessary modules
SUBDIRS = $(TOVESRC)/sf \
        $(TOVESRC)/pf \
        $(TOVESRC)/common \
        $(TOVESRC)/iface/naalif \
        $(TOVESRC)/iface/uaalif \
        $(TOVESRC)/iface/aaif \
        $(TOVESRC)/iface/cpcsif \
	$(TOVESRC)/iface/mtpif \
	$(TOVESRC)/iface/sccpif \
        $(TOVESRC)/protocol/cpcs \
        $(TOVESRC)/protocol/sscop \
        $(TOVESRC)/protocol/nsscf \
        $(TOVESRC)/protocol/usscf \
        $(TOVESRC)/protocol/saal \
	$(TOVESRC)/protocol/mtp3 \
	$(TOVESRC)/protocol/sccp \
	$(TOVESRC)/protocol/tcap \
	$(TOVESRC)/mgmt \
	$(TOVESRC)/sw \
	$(TOVESRC)/iface/sigif \
	$(TOVESRC)/iface/binapif \
	$(TOVESRC)/iface/swif \
	$(TOVESRC)/protocol/uni \
	$(TOVESRC)/protocol/bisup \
	$(TOVESRC)/protocol/sig \
	$(TOVESRC)/ie \
	$(TOVESRC)/protocol/cc \
	$(TOVESRC)/protocol/gsmp

MODULEFILES = $(TOVESRC)/sw/sw.a \
	$(TOVESRC)/protocol/uni/uni.a \
	$(TOVESRC)/protocol/bisup/bisup.a \
	$(TOVESRC)/protocol/cc/cc.a \
	$(TOVESRC)/protocol/gsmp/gsmp.a \
	$(TOVESRC)/iface/swif/swif.a \
	$(TOVESRC)/iface/binapif/binapif.a \
	$(TOVESRC)/protocol/sig/sig.a \
	$(TOVESRC)/iface/sigif/sigif.a \
	$(TOVESRC)/mgmt/mgmt.a \
	$(TOVESRC)/protocol/tcap/tcap.a \
	$(TOVESRC)/protocol/sccp/sccp.a \
	$(TOVESRC)/protocol/mtp3/mtp3.a \
	$(TOVESRC)/protocol/saal/saal.a \
	$(TOVESRC)/protocol/usscf/usscf.a \
	$(TOVESRC)/protocol/nsscf/nsscf.a \
	$(TOVESRC)/protocol/sscop/sscop.a \
	$(TOVESRC)/protocol/cpcs/cpcs.a \
	$(TOVESRC)/iface/sccpif/sccpif.a \
	$(TOVESRC)/iface/mtpif/mtpif.a \
	$(TOVESRC)/iface/uaalif/uaalif.a \
	$(TOVESRC)/iface/naalif/naalif.a \
	$(TOVESRC)/iface/aaif/aaif.a \
	$(TOVESRC)/iface/cpcsif/cpcsif.a \
	$(TOVESRC)/ie/ie.a \
	$(TOVESRC)/common/common.a \
	$(TOVESRC)/pf/pf.a \
	$(TOVESRC)/sf/sf.a

include $(TOVESRC)/Rules.Make


# Do make in all switch subdirs, link the executable
$(TARGET) : $(OBJS)
	for i in $(SUBDIRS); do $(MAKE) -C $$i; done
	$(CC) $(CCFLAGS) $(INC_DIRS) -o $(TARGET) $(OBJS) $(MODULEFILES) $(ORBLIB) $(NAMELIB)

testconfig : testconfig.o
	$(CC) $(CCFLAGS) $(INC_DIRS) -o testconfig testconfig.o $(MODULEFILES) $(ORBLIB) $(NAMELIB)

# Make clean in all subdirs and in top level
# ('make clean' clears only top level)
deepclean:
	for i in $(SUBDIRS); do $(MAKE) -C $$i clean; done
	rm -rf *~ *.o $(TARGET) testconfig.o

clean:
	rm -rf *~ core *.o $(TARGET) testconfig


# Make dependencies in all subdirs and in top level
# ('make dep' make dependencies only in top level)
deepdep:
	for i in $(SUBDIRS); do $(MAKE) -C $$i dep; done
	makedepend -Y $(INC_DIRS) $(DEFS) *.cpp 2> /dev/null


# Dependencies are below. The next line is used by makedepend, so
# DO NOT DELETE

swmain.o: /home/parnanen/src/pf/system.h /usr/local/include/OB/CORBA.h
swmain.o: /usr/local/include/OB/Basic.h /usr/local/include/OB/Config.h
swmain.o: /usr/local/include/JTC/JTC.h /usr/local/include/JTC/Thread.h
swmain.o: /usr/local/include/JTC/Types.h /usr/local/include/JTC/Config.h
swmain.o: /usr/local/include/JTC/Mutex.h /usr/local/include/JTC/Sync.h
swmain.o: /usr/local/include/JTC/Event.h /usr/local/include/JTC/Cond.h
swmain.o: /usr/local/include/JTC/ThreadGroup.h
swmain.o: /usr/local/include/JTC/Monitor.h /usr/local/include/JTC/Exception.h
swmain.o: /usr/local/include/JTC/Runnable.h /usr/local/include/JTC/MonitorT.h
swmain.o: /usr/local/include/JTC/TSS.h /usr/local/include/OB/Except.h
swmain.o: /usr/local/include/OB/Template.h
swmain.o: /usr/local/include/OB/Declarations.h /usr/local/include/OB/Any.h
swmain.o: /usr/local/include/OB/TCKind.h /usr/local/include/OB/TypeCode.h
swmain.o: /usr/local/include/OB/Environment.h /usr/local/include/OB/Context.h
swmain.o: /usr/local/include/OB/NamedValue.h
swmain.o: /usr/local/include/OB/Principal.h /usr/local/include/OB/IOP.h
swmain.o: /usr/local/include/OB/Object.h /usr/local/include/OB/Policy.h
swmain.o: /usr/local/include/OB/IntRep.h /usr/local/include/OB/IntRepMember.h
swmain.o: /usr/local/include/OB/ORB.h /usr/local/include/OB/Object_skel.h
swmain.o: /usr/local/include/OB/ImplRep.h /usr/local/include/OB/BOA.h
swmain.o: /usr/local/include/OB/DII.h /usr/local/include/OB/DSI.h
swmain.o: /usr/local/include/OB/Current.h /usr/local/include/OB/DynAny.h
swmain.o: /home/parnanen/src/pf/exception.h /home/parnanen/src/pf/types.h
swmain.o: /home/parnanen/src/sw/swswitch.h /home/parnanen/src/pf/conduit.h
swmain.o: /home/parnanen/src/pf/exception.h /home/parnanen/src/pf/types.h
swmain.o: /home/parnanen/src/iface/swif/swconnectiface.h
swmain.o: /home/parnanen/src/common/ss7configure.h
swmain.o: /home/parnanen/src/common/ss7defs.h
swmain.o: /home/parnanen/src/sw/swconfigimpl.h
swmain.o: /home/parnanen/src/mgmt/mgmtdelegationbase.h
swmain.o: /home/parnanen/src/sw/swportfactory.h
swmain.o: /home/parnanen/src/sw/swport.h /home/parnanen/src/sw/swlink.h
swmain.o: /home/parnanen/src/iface/swif/swfabriccallback.h
swmain.o: /home/parnanen/src/ie/connectioninfo.h
swmain.o: /home/parnanen/src/ie/informationelement.h
swmain.o: /home/parnanen/src/pf/bytes.h /home/parnanen/src/pf/ie.h
swmain.o: /home/parnanen/src/pf/error.h
swmain.o: /home/parnanen/src/protocol/sig/sigdefs.h
swmain.o: /home/parnanen/src/pf/debug.h /home/parnanen/src/pf/state.h
swmain.o: /home/parnanen/src/pf/protocol.h /home/parnanen/src/pf/transp.h
swmain.o: /home/parnanen/src/pf/messenge.h /home/parnanen/src/pf/storage.h
swmain.o: /home/parnanen/src/pf/frame.h /home/parnanen/src/pf/bitstring.h
swmain.o: /home/parnanen/src/pf/frame.h /home/parnanen/src/pf/ie.h
swmain.o: /home/parnanen/src/pf/iecontainer.h /home/parnanen/src/pf/conduit.h
swmain.o: /home/parnanen/src/sf/task.h /home/parnanen/src/pf/timers.h
swmain.o: /home/parnanen/src/pf/timer.h /home/parnanen/src/sf/otime.h
swmain.o: /home/parnanen/src/sw/swatmfcf.h
swmain.o: /home/parnanen/src/sw/swconnectid.h /home/parnanen/src/sw/swfcf.h
swmain.o: /home/parnanen/src/iface/swif/sweventif.h
swmain.o: /home/parnanen/src/iface/swif/swconfigcontrol.h
testconfig.o: /usr/local/include/OB/CORBA.h /usr/local/include/OB/Basic.h
testconfig.o: /usr/local/include/OB/Config.h /usr/local/include/JTC/JTC.h
testconfig.o: /usr/local/include/JTC/Thread.h /usr/local/include/JTC/Types.h
testconfig.o: /usr/local/include/JTC/Config.h /usr/local/include/JTC/Mutex.h
testconfig.o: /usr/local/include/JTC/Sync.h /usr/local/include/JTC/Event.h
testconfig.o: /usr/local/include/JTC/Cond.h
testconfig.o: /usr/local/include/JTC/ThreadGroup.h
testconfig.o: /usr/local/include/JTC/Monitor.h
testconfig.o: /usr/local/include/JTC/Exception.h
testconfig.o: /usr/local/include/JTC/Runnable.h
testconfig.o: /usr/local/include/JTC/MonitorT.h /usr/local/include/JTC/TSS.h
testconfig.o: /usr/local/include/OB/Except.h /usr/local/include/OB/Template.h
testconfig.o: /usr/local/include/OB/Declarations.h
testconfig.o: /usr/local/include/OB/Any.h /usr/local/include/OB/TCKind.h
testconfig.o: /usr/local/include/OB/TypeCode.h
testconfig.o: /usr/local/include/OB/Environment.h
testconfig.o: /usr/local/include/OB/Context.h
testconfig.o: /usr/local/include/OB/NamedValue.h
testconfig.o: /usr/local/include/OB/Principal.h /usr/local/include/OB/IOP.h
testconfig.o: /usr/local/include/OB/Object.h /usr/local/include/OB/Policy.h
testconfig.o: /usr/local/include/OB/IntRep.h
testconfig.o: /usr/local/include/OB/IntRepMember.h
testconfig.o: /usr/local/include/OB/ORB.h /usr/local/include/OB/Object_skel.h
testconfig.o: /usr/local/include/OB/ImplRep.h /usr/local/include/OB/BOA.h
testconfig.o: /usr/local/include/OB/DII.h /usr/local/include/OB/DSI.h
testconfig.o: /usr/local/include/OB/Current.h /usr/local/include/OB/DynAny.h
testconfig.o: /home/parnanen/src/pf/system.h /home/parnanen/src/pf/debug.h
testconfig.o: /home/parnanen/src/pf/state.h /home/parnanen/src/pf/protocol.h
testconfig.o: /home/parnanen/src/pf/types.h /home/parnanen/src/pf/transp.h
testconfig.o: /home/parnanen/src/pf/types.h /home/parnanen/src/pf/conduit.h
testconfig.o: /home/parnanen/src/pf/exception.h
testconfig.o: /home/parnanen/src/pf/messenge.h
testconfig.o: /home/parnanen/src/pf/storage.h /home/parnanen/src/pf/frame.h
testconfig.o: /home/parnanen/src/pf/exception.h
testconfig.o: /home/parnanen/src/pf/bitstring.h /home/parnanen/src/pf/frame.h
testconfig.o: /home/parnanen/src/pf/ie.h /home/parnanen/src/pf/iecontainer.h
testconfig.o: /home/parnanen/src/pf/conduit.h /home/parnanen/src/sf/task.h
testconfig.o: /home/parnanen/src/pf/timers.h /home/parnanen/src/pf/timer.h
testconfig.o: /home/parnanen/src/sf/otime.h /home/parnanen/src/pf/naming.h
testconfig.o: /usr/local/include/OB/Util.h /usr/local/include/OB/CosNaming.h
testconfig.o: /home/parnanen/src/mgmt/toveswitch_impl.h
testconfig.o: /home/parnanen/src/mgmt/toveswitch_skel.h
testconfig.o: /home/parnanen/src/mgmt/toveswitch.h
testconfig.o: /home/parnanen/src/mgmt/mgmtsend.h
testconfig.o: /home/parnanen/src/mgmt/mgmtcommand.h
testconfig.o: /home/parnanen/src/mgmt/mgmtcommand.h
