######################################################################### # COMMON NORM MAKEFILE STUFF # SHELL=/bin/sh .SUFFIXES: .cpp -sim.o $(.SUFFIXES) PROTOLIB = ../protolib COMMON = ../common UNIX = ../unix NS = ../ns INCLUDES = $(SYSTEM_INCLUDES) -I$(UNIX) -I$(COMMON) -I$(PROTOLIB)/common CFLAGS = -g -DPROTO_DEBUG -DUNIX -D_FILE_OFFSET_BITS=64 -O $(SYSTEM_CFLAGS) $(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 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)/normEncoder.cpp $(COMMON)/galois.cpp \ $(COMMON)/normFile.cpp $(COMMON)/normApi.cpp NORM_OBJ = $(NORM_SRC:.cpp=.o) LIB_SRC = $(NORM_SRC) LIB_OBJ = $(LIB_SRC:.cpp=.o) # NORM as a static library libnorm.a: $(LIB_OBJ) $(AR) rcv $@ $(LIB_OBJ) $(RANLIB) $@ # NORM as a shared library libnorm.so: $(LIB_OBJ) $(CC) $(SYSTEM_SOFLAGS) $(LIB_OBJ) $(LIBS) -o $@ # NORM as a dynamic library for MacOS libnorm.dylib: $(LIB_OBJ) $(LIBPROTO) $(CC) $(SYSTEM_SOFLAGS) $(LIB_OBJ) $(LIBPROTO) $(LIBS) -o $@ 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)/normTest.cpp TEST_OBJ = $(TEST_SRC:.cpp=.o) normTest: $(TEST_OBJ) libnorm.a $(LIBPROTO) $(CC) $(CFLAGS) -o $@ $(TEST_OBJ) $(LDFLAGS) libnorm.a $(LIBPROTO) $(LIBS) # (normThreadTest) test of threaded use of NORM API TTEST_SRC = $(COMMON)/normThreadTest.cpp TTEST_OBJ = $(TTEST_SRC:.cpp=.o) normThreadTest: $(TTEST_OBJ) libnorm.a $(LIBPROTO) $(CC) $(CFLAGS) -o $@ $(TTEST_OBJ) $(LDFLAGS) libnorm.a $(LIBPROTO) $(LIBS) # (normThreadTest2) alt test of threaded use of NORM API TTEST2_SRC = $(UNIX)/normThreadTest2.cpp TTEST2_OBJ = $(TTEST2_SRC:.cpp=.o) normThreadTest2: $(TTEST2_OBJ) libnorm.a $(LIBPROTO) $(CC) $(CFLAGS) -o $@ $(TTEST2_OBJ) $(LDFLAGS) libnorm.a $(LIBPROTO) $(LIBS) # (npc) NORM Pre-Coder PCODE_SRC = $(COMMON)/normPrecode.cpp PCODE_OBJ = $(PCODE_SRC:.cpp=.o) npc: $(PCODE_OBJ) libnorm.a $(LIBPROTO) $(CC) $(CFLAGS) -o $@ $(PCODE_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)/libnorm.so $(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.