#=====================================================================
#
# Toplevel makefile for OMNeT++ libraries and programs
#
# platform: Windows NT, Windows 2000
# compiler: MSVC 6.0
#
#=====================================================================
#
# Options
#
include configuser.vc
MOPTS=/nologo
MAKEFILE=/F Makefile.vc
# Win9x, ME not supported (shell is crippled)
!if "$(OS)"!="Windows_NT"
!error This makefile only works on NT (NT4.0, Win2K, XP)
!endif
# envir_ilib only needed if dlls are to be built
!if "$(LIB_SUFFIX)"==".dll"
ENVIR_ILIB=envir_ilib
!else
ENVIR_ILIB=
!endif
#=====================================================================
#
# Main targets
#
#=====================================================================
all: check-env components reminder
components: libs progs configsamples samples configtutorial thetutorial
#=====================================================================
#
# OMNeT++ components
#
#=====================================================================
LIBS=$(ENVIR_ILIB) sim envir cmdenv tkenv nedxml
PROGS=utils nedc gned plove
SAMPLES=dyna fddi fifo1 fifo2 hcube hist nim token dyna2 topo demo
#
# Group targets. Note that utils has to be built BEFORE other libs and progs.
#
libs: utils $(LIBS)
progs: $(PROGS)
samples: $(SAMPLES)
docs: api nedxml-api manual
#
# Libraries
#
envir_ilib:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SRC_DIR:/=\)\envir && $(MAKE) $(MOPTS) $(MAKEFILE) envir.ilib
sim:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SRC_DIR:/=\)\sim && $(MAKE) $(MOPTS) $(MAKEFILE)
envir:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SRC_DIR:/=\)\envir && $(MAKE) $(MOPTS) $(MAKEFILE)
cmdenv:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SRC_DIR:/=\)\cmdenv && $(MAKE) $(MOPTS) $(MAKEFILE)
tkenv:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SRC_DIR:/=\)\tkenv && $(MAKE) $(MOPTS) $(MAKEFILE)
nedxml:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SRC_DIR:/=\)\nedxml && $(MAKE) $(MOPTS) $(MAKEFILE)
#
# Programs
#
nedc:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SRC_DIR:/=\)\nedc && $(MAKE) $(MOPTS) $(MAKEFILE)
gned:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SRC_DIR:/=\)\gned && $(MAKE) $(MOPTS) $(MAKEFILE)
plove:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SRC_DIR:/=\)\plove && $(MAKE) $(MOPTS) $(MAKEFILE)
utils:
@echo ===== Compiling $@ ====
echo @$(WISH:/=\) -f $(OMNETPP_ROOT)/bitmaps/showpics > $(OMNETPP_ROOT:/=\)\bitmaps\showpics.bat
cd /d $(OMNETPP_SRC_DIR:/=\)\utils && $(MAKE) $(MOPTS) $(MAKEFILE)
#
# Sample programs
#
dyna:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SAMPLES_DIR:/=\)\dyna && $(MAKE) $(MOPTS) $(MAKEFILE)
fddi:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SAMPLES_DIR:/=\)\fddi && $(MAKE) $(MOPTS) $(MAKEFILE)
fifo1:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SAMPLES_DIR:/=\)\fifo1 && $(MAKE) $(MOPTS) $(MAKEFILE)
fifo2:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SAMPLES_DIR:/=\)\fifo2 && $(MAKE) $(MOPTS) $(MAKEFILE)
hcube:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SAMPLES_DIR:/=\)\hcube && $(MAKE) $(MOPTS) $(MAKEFILE)
hist:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SAMPLES_DIR:/=\)\hist && $(MAKE) $(MOPTS) $(MAKEFILE)
nim:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SAMPLES_DIR:/=\)\nim && $(MAKE) $(MOPTS) $(MAKEFILE)
token:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SAMPLES_DIR:/=\)\token && $(MAKE) $(MOPTS) $(MAKEFILE)
dyna2:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SAMPLES_DIR:/=\)\dyna2 && $(MAKE) $(MOPTS) $(MAKEFILE)
topo:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SAMPLES_DIR:/=\)\topo && $(MAKE) $(MOPTS) $(MAKEFILE)
demo:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_SAMPLES_DIR:/=\)\demo && $(MAKE) $(MOPTS) $(MAKEFILE)
thetutorial:
@echo ===== Compiling $@ ====
cd /d $(OMNETPP_TUTORIAL_DIR:/=\)\queues && $(MAKE) $(MOPTS) $(MAKEFILE)
#
# Documentation
#
api:
cd /d $(OMNETPP_INCL_DIR:/=\) && $(MAKE) $(MOPTS) $(MAKEFILE) doc
nedxml-api:
cd /d $(OMNETPP_SRC_DIR:/=\)\nedxml && $(MAKE) $(MOPTS) $(MAKEFILE) doc
manual:
cd /d $(OMNETPP_DOC_DIR:/=\)\usman && $(MAKE) $(MOPTS) $(MAKEFILE)
#
# Tests
#
tests: check-env libs progs
@echo ===== Running tests ====
@cd /d $(OMNETPP_TEST_DIR:/=\) && call runtest.cmd
#=====================================================================
#
# Utilities
#
#=====================================================================
check-env:
@echo ===== Checking environment =====
@if not .%OS%.==.Windows_NT. echo ERROR: This makefile can ONLY be used on NT4.0 or Windows 2000! For Win95/98/ME, use Makefile.98!
@echo Checking if $(CXX) works...
@$(CXX) /? /nologo <nul > nul || echo ERROR: Could not run $(CXX). Probably PATH does not contain its BIN or DLL directory. && exit 1
@echo Checking if OMNETPP_ROOT is correctly set...
@cd /d $(OMNETPP_ROOT:/=\) || echo ERROR: The directory defined in configuser.vc as OMNETPP_ROOT does not exist. && exit 1
@echo Checking if TCL_LIB/TCL_VER is correctly set...
@cd /d $(_TCL_LIBRARY:/=\) || echo ERROR: The directory $(_TCL_LIBRARY) does not exist. TK_DIR or TK_VER defined in configuser.vc might be wrong. && exit 1
configsamples:
@echo ===== Configuring .dsp files for samples =====
cd /d $(OMNETPP_SAMPLES_DIR:/=\) && cc2cpp.bat
for %%i in ( $(SAMPLES) ) do \
cd /d $(OMNETPP_SAMPLES_DIR:/=\)\%%i && \
$(REPLACE:/=\) %%i.dsp.in - "@OMNETPP_INCL_DIR@" "$(OMNETPP_INCL_DIR)" | \
$(REPLACE:/=\) - - "@OMNETPP_LIB_DIR@" "$(OMNETPP_LIB_DIR)" | \
$(REPLACE:/=\) - - "@OMNETPP_BIN_DIR@" "$(OMNETPP_BIN_DIR:/=\)" | \
$(REPLACE:/=\) - - "@TK_LIB_PATH@" "$(TK_LIB_DIR)" | \
$(REPLACE:/=\) - - "@TCL_LIB@" "$(TCL_LIB)" | \
$(REPLACE:/=\) - %%i.dsp "@TK_LIB@" "$(TK_LIB)"
configtutorial:
@echo ===== Configuring .dsp files for tutorial/queues =====
-cd /d $(OMNETPP_TUTORIAL_DIR:/=\)\queues && ren *.cc *.cpp 2>nul
cd /d $(OMNETPP_TUTORIAL_DIR:/=\)\queues && \
$(REPLACE:/=\) queues.dsp.in - "@OMNETPP_INCL_DIR@" "$(OMNETPP_INCL_DIR)" | \
$(REPLACE:/=\) - - "@OMNETPP_LIB_DIR@" "$(OMNETPP_LIB_DIR)" | \
$(REPLACE:/=\) - - "@OMNETPP_BIN_DIR@" "$(OMNETPP_BIN_DIR:/=\)" | \
$(REPLACE:/=\) - - "@TK_LIB_PATH@" "$(TK_LIB_DIR)" | \
$(REPLACE:/=\) - - "@TCL_LIB@" "$(TCL_LIB)" | \
$(REPLACE:/=\) - queues.dsp "@TK_LIB@" "$(TK_LIB)"
clean:
-for %%i in ( $(LIBS) $(PROGS) ) do \
cd /d $(OMNETPP_SRC_DIR:/=\)\%%i && $(MAKE) $(MOPTS) $(MAKEFILE) clean
-del /q $(OMNETPP_BIN_DIR:/=\)\*.
-del /q $(OMNETPP_BIN_DIR:/=\)\*.exe
-del /q $(OMNETPP_BIN_DIR:/=\)\*.bat
-del /q $(OMNETPP_BIN_DIR:/=\)\opp_*.*
-del /q $(OMNETPP_BIN_DIR:/=\)\neddoc.xsl
-del /q $(OMNETPP_LIB_DIR:/=\)\*.lib
-del /q $(OMNETPP_LIB_DIR:/=\)\*.dll
-del /q $(OMNETPP_LIB_DIR:/=\)\*.ilib
-for %%i in ( $(SAMPLES) ) do \
cd /d $(OMNETPP_SAMPLES_DIR:/=\)\%%i && $(MAKE) $(MOPTS) $(MAKEFILE) clean
-cd /d $(OMNETPP_TUTORIAL_DIR:/=\)\queues && $(MAKE) $(MOPTS) $(MAKEFILE) clean
depend:
for %%i in ( $(LIBS) $(PROGS) ) do \
cd /d $(OMNETPP_SRC_DIR:/=\)\%%i && $(MAKE) $(MOPTS) $(MAKEFILE) depend
for %%i in ( $(SAMPLES) ) do \
cd /d $(OMNETPP_SAMPLES_DIR:/=\)\%%i && $(MAKE) $(MOPTS) $(MAKEFILE) depend
cd /d $(OMNETPP_TUTORIAL_DIR:/=\)\queues && $(MAKE) $(MOPTS) $(MAKEFILE) depend
reminder:
!IF "$(TCL_LIBRARY)" == ""
@echo ***
@echo *** Don't forget to set the TCL_LIBRARY environment variable!
@echo *** TCL_LIBRARY=$(_TCL_LIBRARY)
@echo ***
!ENDIF
syntax highlighted by Code2HTML, v. 0.9.1