CC=g++ AR=ar IDLDIR= CipresIDL IMPLDIR= CipresCommlib ifeq ($(debug), 1) CFLAGS += -g endif ifeq ($(generate), 1) IDL_FLAGS += -GI endif IDL_FLAGS += -o $(IDLDIR) CIPRES_IDL_DIR = $(CIPRES_LIB_ROOT)/IDL # this is the preprocessor used to wrapp include config.h statements. # we don't have configure generating this makefile, but we should run configure # to create config.h CFLAGS += -DHAVE_CONFIG_H IDL_FILES = Cipres \ ReadNexus \ TreeImprove \ TreeDecompose \ TreePrune \ TreeMerge \ TreeRefine IDL_EXT = C.cpp C.h S.cpp S.h IDLALL_EXT = $(foreach ext, C S I S_T, $(foreach ending, .h .cpp .i, $(ext)$(ending))) # Path to the .idl files IDL_FILES_FULL = $(addprefix $(CIPRES_IDL_DIR)/, $(IDL_FILES)) LIBNAME = libCipres LIB = $(LIBNAME).a SHLIB = $(LIBNAME).dylib IDL_SRCFILES = $(addsuffix S, $(IDL_FILES)) \ $(addsuffix C, $(IDL_FILES)) IDL_CPPFILES = $(addsuffix .cpp, $(IDL_SRCFILES)) IDL_DEFFILES = $(addsuffix .h, $(IDL_SRCFILES)) IDL_OBJFILES = $(addsuffix .o, $(IDL_SRCFILES)) IMPL_SRCFILES = CipresDataMatrixHelper \ CipresFacilitator \ CipresHelper \ CipresNameService \ CipresNativeC \ CipresSimpleServer \ CipresRegistry \ LifeCycle_i \ poautil IMPL_CPPFILES = $(addsuffix .cpp, $(IMPL_SRCFILES)) IMPL_DEFFILES = $(addsuffix .h, $(IMPL_SRCFILES)) IMPL_OBJFILES = $(addsuffix .o, $(IMPL_SRCFILES)) OBJS = $(IDL_OBJFILES) $(IMPL_OBJFILES) ALLGENERATED_FILES = $(foreach file, $(IDL_FILES), $(foreach ext, $(IDLALL_EXT), $(IDLDIR)/$(file)$(ext))) IDLINCDIRS += -I$(TAO_ROOT)/tao \ -I$(TAO_ROOT)/orbsvcs \ -I$(TAO_ROOT)/orbsvcs/orbsvcs \ -I$(CIPRES_IDL_DIR) INCDIRS = -I$(ACE_ROOT) \ -I$(TAO_ROOT) \ -I$(TAO_ROOT)/orbsvcs \ -I$(TAO_ROOT)/orbsvcs/orbsvcs \ -I$(CIPRES_LIB_ROOT)/C++ \ -I$(BOOST_ROOT) LIBS = -lcc_dynamic -lstdc++ -lSystem -lACE -lTAO -lTAO_PortableServer -lTAO_ObjRefTemplate -lTAO_ValueType -lTAO_IORInterceptor LIB_DIRS = -L$(ACE_ROOT)/ace -L$(TAO_ROOT)/tao -L$(TAO_ROOT)/orbsvcs/orbsvcs IDLC = $(TAO_ROOT)/TAO_IDL/tao_idl IDL_FLAGS += $(IDLINCDIRS) # the parent directory's Makefile (generated by autoconf) tries to make the target "all" # in all of the subdirectories, so this target has to be defined all: $(LIB) echo "made all" $(LIB) : $(OBJS) ar rcs $(LIB) $^ # Make all the generated files depend on their .idl file. $(foreach file, $(IDL_FILES), $(foreach ext, $(IDL_EXT), $(IDLDIR)/$(file)$(ext))): $(addsuffix .idl, $(IDL_FILES_FULL)) $(IDLC) $(IDL_FLAGS) $(addsuffix .idl, $(IDL_FILES_FULL)) # $< is name of prereq, $@ is name of target %.o : $(IDLDIR)/%.cpp $(CC) -c $(CFLAGS) $(INCDIRS) $< -o $@ %.o : $(IMPLDIR)/%.cpp $(CC) -c $(CFLAGS) $(INCDIRS) $< -o $@ %.o : $(IDLDIR)/%.c $(CC) -c $(CFLAGS) $(INCDIRS) $< -o $@ %.o : $(IMPLDIR)/%.c $(CC) -c $(CFLAGS) $(INCDIRS) $< -o $@ runidlc: # $(IDLC) $(IDL_FLAGS) $(addsuffix .idl, $(IDL_FILES)) $(IDLC) $(IDL_FLAGS) $(addsuffix .idl, $(IDL_FILES_FULL)) clean: rm -f $(ALLGENERATED_FILES) *.o $(LIB) $(SHLIB)