#
# OMNeT++/OMNEST Makefile for UWNetwork
#
# This file was generated with the command:
#  opp_makemake -f --deep -O out -I/opt/MATLAB/R2010b/extern/include -I/home/brian/omnetpp-4.0p1/src/common -I/home/brian/omnetpp-4.0p1/src/envir -I/home/brian/omnetpp-4.0p1/include/platdep -L/home/brian/UWNetwork/lib -L/opt/MATLAB/R2010b/runtime/glnxa64 -L/opt/MATLAB/R2010b/bin/glnxa64 -lmat -lchannel -lphy -lmwmclmcrrt
#

# Name of target to be created (-o option)
TARGET = UWNetwork$(EXE_SUFFIX)

# User interface (uncomment one) (-u option)
USERIF_LIBS = $(ALL_ENV_LIBS) # that is, $(TKENV_LIBS) $(CMDENV_LIBS)
#USERIF_LIBS = $(CMDENV_LIBS)
#USERIF_LIBS = $(TKENV_LIBS)

# C++ include paths (with -I)
INCLUDE_PATH = \
    -I/opt/MATLAB/R2010b/extern/include \
    -I/home/brian/omnetpp-4.0p1/src/common \
    -I/home/brian/omnetpp-4.0p1/src/envir \
    -I/home/brian/omnetpp-4.0p1/include/platdep \
    -I. \
    -Idata \
    -Idata/IR_200m \
    -Idata/IR_505m \
    -Iinclude \
    -Ilib \
    -Inode \
    -Ipacket \
    -Iutil \
    -Iuwchannel

# Additional object and library files to link with
EXTRA_OBJS =

# Additional libraries (-L, -l options)
LIBS = -Llib -L/opt/MATLAB/R2010b/runtime/glnxa64 -L/opt/MATLAB/R2010b/bin/glnxa64  -lmat -lchannel -lphy -lmwmclmcrrt
LIBS += -Wl,-rpath,`abspath lib` -Wl,-rpath,`abspath /opt/MATLAB/R2010b/runtime/glnxa64` -Wl,-rpath,`abspath /opt/MATLAB/R2010b/bin/glnxa64`

# Output directory
PROJECT_OUTPUT_DIR = out
PROJECTRELATIVE_PATH =
O = $(PROJECT_OUTPUT_DIR)/$(CONFIGNAME)/$(PROJECTRELATIVE_PATH)

# Object files for local .cc and .msg files
OBJS = \
    $O/main.o \
    $O/node/Phy.o \
    $O/node/Link.o \
    $O/node/App.o \
    $O/packet/Datagram.o \
    $O/util/CRC16.o \
    $O/uwchannel/UWChannel.o

# Message files
MSGFILES =

#------------------------------------------------------------------------------

# Pull in OMNeT++ configuration (Makefile.inc or configuser.vc)

ifneq ("$(OMNETPP_CONFIGFILE)","")
CONFIGFILE = $(OMNETPP_CONFIGFILE)
else
ifneq ("$(OMNETPP_ROOT)","")
CONFIGFILE = $(OMNETPP_ROOT)/Makefile.inc
else
CONFIGFILE = $(shell opp_configfilepath)
endif
endif

ifeq ("$(wildcard $(CONFIGFILE))","")
$(error Config file '$(CONFIGFILE)' does not exist -- add the OMNeT++ bin directory to the path so that opp_configfilepath can be found, or set the OMNETPP_CONFIGFILE variable to point to Makefile.inc)
endif

include $(CONFIGFILE)

# Simulation kernel and user interface libraries
OMNETPP_LIB_SUBDIR = $(OMNETPP_LIB_DIR)/$(TOOLCHAIN_NAME)
OMNETPP_LIBS = -L"$(OMNETPP_LIB_SUBDIR)" -L"$(OMNETPP_LIB_DIR)" $(USERIF_LIBS) $(KERNEL_LIBS) $(SYS_LIBS)

COPTS = $(CFLAGS)  $(INCLUDE_PATH) -I$(OMNETPP_INCL_DIR)
MSGCOPTS = $(INCLUDE_PATH)

#------------------------------------------------------------------------------
# User-supplied makefile fragment(s)
# >>>
# <<<
#------------------------------------------------------------------------------

# Main target
all: $(TARGET)

$(TARGET) : $O/$(TARGET)
	ln -s -f $O/$(TARGET) .

$O/$(TARGET): $(OBJS)  $(wildcard $(EXTRA_OBJS)) Makefile
	@mkdir -p $O
	$(CXX) $(LDFLAGS) -o $O/$(TARGET)  $(OBJS) $(EXTRA_OBJS) $(WHOLE_ARCHIVE_ON) $(LIBS) $(WHOLE_ARCHIVE_OFF) $(OMNETPP_LIBS)

.PHONY:

.SUFFIXES: .cc

$O/%.o: %.cc
	@mkdir -p $(dir $@)
	$(CXX) -c $(COPTS) -o $@ $<

%_m.cc %_m.h: %.msg
	$(MSGC) -s _m.cc $(MSGCOPTS) $?

msgheaders: $(MSGFILES:.msg=_m.h)

clean:
	-rm -rf $O
	-rm -f UWNetwork UWNetwork.exe libUWNetwork.so libUWNetwork.a libUWNetwork.dll libUWNetwork.dylib
	-rm -f ./*_m.cc ./*_m.h
	-rm -f data/*_m.cc data/*_m.h
	-rm -f data/IR_200m/*_m.cc data/IR_200m/*_m.h
	-rm -f data/IR_505m/*_m.cc data/IR_505m/*_m.h
	-rm -f include/*_m.cc include/*_m.h
	-rm -f lib/*_m.cc lib/*_m.h
	-rm -f node/*_m.cc node/*_m.h
	-rm -f packet/*_m.cc packet/*_m.h
	-rm -f util/*_m.cc util/*_m.h
	-rm -f uwchannel/*_m.cc uwchannel/*_m.h

cleanall: clean
	-rm -rf $(PROJECT_OUTPUT_DIR)

depend:
	$(MAKEDEPEND) $(INCLUDE_PATH) -f Makefile -P\$$O/ -- $(MSG_CC_FILES)  ./*.cc data/*.cc data/IR_200m/*.cc data/IR_505m/*.cc include/*.cc lib/*.cc node/*.cc packet/*.cc util/*.cc uwchannel/*.cc

# DO NOT DELETE THIS LINE -- make depend depends on it.
$O/main.o: main.cc \
	include/libchannel.h \
	include/libphy.h
$O/node/App.o: node/App.cc \
	node/App.h \
	packet/Datagram.h
$O/node/Phy.o: node/Phy.cc \
	packet/Datagram.h \
	node/Phy.h \
	include/libphy.h
$O/node/Link.o: node/Link.cc \
	packet/Datagram.h \
	node/Link.h
$O/packet/Datagram.o: packet/Datagram.cc \
	packet/Datagram.h \
	util/CRC16.h
$O/util/CRC16.o: util/CRC16.cc \
	util/CRC16.h
$O/uwchannel/UWChannel.o: uwchannel/UWChannel.cc \
	include/libchannel.h \
	packet/Datagram.h \
	uwchannel/UWChannel.h

