#===================================================================== # # 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 || 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