######################################################################### # COMMON NORM MAKEFILE STUFF # SHELL=/bin/sh .SUFFIXES: .cpp -sim.o $(.SUFFIXES) PROTOLIB = ../protolib COMMON = ../common UNIX = ../unix NS = ../ns INCLUDES = $(TCL_INCL_PATH) $(SYSTEM_INCLUDES) -I$(UNIX) -I$(COMMON) -I$(PROTOLIB)/common CFLAGS = -g -DPROTO_DEBUG -DUNIX -D_FILE_OFFSET_BITS=64 -O -fPIC $(SYSTEM_HAVES) $(INCLUDES) LDFLAGS = $(SYSTEM_LDFLAGS) # Note: Even command line app needs X11 for Netscape post-processing LIBS = $(SYSTEM_LIBS) -lm -lpthread XLIBS = -lXmu -lXt -lX11 #NOTE: TK_LIB must come before TCL_LIB for some reason TKLIBS = $(TK_LIB) $(TCL_LIB) TCL_SCRIPTS = ${TCL_SCRIPT_PATH}/init.tcl \ ${TK_SCRIPT_PATH}/tk.tcl \ ${TK_SCRIPT_PATH}/bgerror.tcl \ ${TK_SCRIPT_PATH}/button.tcl \ ${TK_SCRIPT_PATH}/dialog.tcl \ ${TK_SCRIPT_PATH}/entry.tcl \ ${TK_SCRIPT_PATH}/focus.tcl \ ${TK_SCRIPT_PATH}/listbox.tcl \ ${TK_SCRIPT_PATH}/menu.tcl \ ${TK_SCRIPT_PATH}/palette.tcl \ ${TK_SCRIPT_PATH}/scale.tcl \ ${TK_SCRIPT_PATH}/scrlbar.tcl \ ${TK_SCRIPT_PATH}/tearoff.tcl \ ${TK_SCRIPT_PATH}/text.tcl \ ${TK_SCRIPT_PATH}/optMenu.tcl TARGETS = norm raft # Rule for C++ .cpp extension .cpp.o: $(CC) -c $(CFLAGS) -o $*.o $*.cpp # NORM depends upon the NRL Protean Group's development library LIBPROTO = $(PROTOLIB)/unix/libProtokit.a $(PROTOLIB)/unix/libProtokit.a: cd $(PROTOLIB)/unix; $(MAKE) -f Makefile.$(SYSTEM) libProtokit.a NORM_SRC = $(COMMON)/normMessage.cpp $(COMMON)/normSession.cpp \ $(COMMON)/normNode.cpp $(COMMON)/normObject.cpp \ $(COMMON)/normSegment.cpp $(COMMON)/normBitmask.cpp \ $(COMMON)/normEncoder.cpp $(COMMON)/galois.cpp \ $(COMMON)/normFile.cpp NORM_OBJ = $(NORM_SRC:.cpp=.o) LIB_SRC = $(NORM_SRC) LIB_OBJ = $(LIB_SRC:.cpp=.o) libnorm.a: $(LIB_OBJ) $(AR) rcv $@ $(LIB_OBJ) $(RANLIB) $@ .cpp-sim.o: $(CC) -c $(CFLAGS) -DSIMULATE -o $*-sim.o $*.cpp SIM_SRC = $(NORM_SRC) $(COMMON)/normSimAgent.cpp SIM_OBJ = $(SIM_SRC:.cpp=-sim.o) libnormSim.a: $(SIM_OBJ) ar rcv $@ $(SIM_OBJ) ranlib $@ # (norm) command-line file broadcaster/receiver APP_SRC = $(COMMON)/normApp.cpp $(COMMON)/normPostProcess.cpp \ $(UNIX)/unixPostProcess.cpp APP_OBJ = $(APP_SRC:.cpp=.o) norm: $(APP_OBJ) libnorm.a $(LIBPROTO) $(CC) $(CFLAGS) -o $@ $(APP_OBJ) $(LDFLAGS) libnorm.a $(LIBPROTO) $(LIBS) # (normTest) test of NORM API TEST_SRC = $(COMMON)/normApi.cpp $(COMMON)/normTest.cpp TEST_OBJ = $(TEST_SRC:.cpp=.o) normTest: $(TEST_OBJ) libnorm.a $(LIBPROTO) $(CC) $(CFLAGS) -o $@ $(TEST_OBJ) $(LDFLAGS) libnorm.a $(LIBPROTO) $(LIBS) # (raft) command-line reliable tunnel helper RAFT_SRC = $(COMMON)/raft.cpp RAFT_OBJ = $(RAFT_SRC:.cpp=.o) raft: $(RAFT_OBJ) $(LIBPROTO) $(CC) $(CFLAGS) -o $@ $(RAFT_OBJ) $(LDFLAGS) $(LIBPROTO) $(LIBS) clean: rm -f $(COMMON)/*.o $(UNIX)/*.o $(UNIX)/libnorm.a $(UNIX)/norm $(NS)/*.o; cd $(PROTOLIB)/unix; $(MAKE) -f Makefile.$(SYSTEM) clean # DO NOT DELETE THIS LINE -- mkdep uses it. # DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.