# Makefile for building JTC JThreads/C++ # Source code from Object Oriented Concepts www.ooc.com # R. Ansari LAL-IN2P3/CNRS CXX := g++ ifdef SOPHYACXX CXX := $(SOPHYACXX) endif SYSNOM = $(shell echo `uname`) SYSNOMD = $(shell echo `uname | sed 's/-//'`) SYSCOMPNOM = $(SYSNOM)-$(CXX) $(OBJ)%.o:%.cc $(COMPILE.cc) -o $@ $< $(OBJ)%.o:%.cpp $(COMPILE.cc) -o $@ $< CPPFLAGS := -I. -D$(SYSNOMD) # Flag pour compilo DEC-cxx (Compaq) ifeq ($(CXX),cxx) CPPFLAGS := $(CPPFLAGS) -pthread -nopt -distinguish_nested_enums endif AR = ar ARFLAGS = -rcs LIB = Objs/ OBJ = Objs/ OBJLIST = $(OBJ)Cond.o $(OBJ)Event.o $(OBJ)License.o $(OBJ)Monitor.o $(OBJ)Mutex.o $(OBJ)TSS.o $(OBJ)TSSManager.o $(OBJ)Thread.o $(OBJ)ThreadGroup.o $(OBJ)Version.o # Fabrication de shared lib CMDSLB := $(CXX) -shared SYSLIBS := -lpthread ifeq ($(CXX),KCC) CMDSLB := $(CXX) endif # ---------------- Building Library all: rep $(LIB)libJTC.a $(LIB)libJTC.so rep : if (test ! -d Objs) then mkdir Objs ; fi $(LIB)libJTC.a : $(OBJLIST) $(AR) $(ARFLAGS) $(LIB)libJTC.a $(OBJLIST) ifeq ($(CXX),cxx) $(CXX) $? $(CPPFLAGS) $(CXXFLAGS) -o $(OBJ)xx.x -Hf endif $(LIB)libJTC.so : $(LIB)libJTC.a $(CMDSLB) -o $(LIB)libJTC.so $(OBJLIST) $(SYSLIBS) # ---------------- Cleaning clean: rm -rf Objs # --------------- Installing install: if (test ! -d $(JTCBASEREP)/Include) then mkdir $(JTCBASEREP)/Include ; fi if (test ! -d $(JTCBASEREP)/Include/JTC) then mkdir $(JTCBASEREP)/Include/JTC ; fi cp JTC/*.h $(JTCBASEREP)/Include/JTC chmod a+r $(JTCBASEREP)/Include/JTC/* if (test ! -d $(JTCBASEREP)/$(SYSCOMPNOM)) then mkdir $(JTCBASEREP)/$(SYSCOMPNOM) ; fi if (test ! -d $(JTCBASEREP)/$(SYSCOMPNOM)/Libs) then mkdir $(JTCBASEREP)/$(SYSCOMPNOM)/Libs ; fi if (test ! -d $(JTCBASEREP)/$(SYSCOMPNOM)/ShLibs) then mkdir $(JTCBASEREP)/$(SYSCOMPNOM)/ShLibs ; fi cp Objs/libJTC.a $(JTCBASEREP)/$(SYSCOMPNOM)/Libs cp Objs/libJTC.so $(JTCBASEREP)/$(SYSCOMPNOM)/ShLibs chmod a+r $(JTCBASEREP)/$(SYSCOMPNOM)/Libs/libJTC.a chmod a+r $(JTCBASEREP)/$(SYSCOMPNOM)/ShLibs/libJTC.so $(OBJ)Cond.o : Cond.cpp $(CXX) $(CPPFLAGS) -c -o $@ $< $(OBJ)Event.o : Event.cpp $(CXX) $(CPPFLAGS) -c -o $@ $< $(OBJ)License.o : License.cpp $(CXX) $(CPPFLAGS) -c -o $@ $< $(OBJ)Monitor.o : Monitor.cpp $(CXX) $(CPPFLAGS) -c -o $@ $< $(OBJ)Mutex.o : Mutex.cpp $(CXX) $(CPPFLAGS) -c -o $@ $< $(OBJ)TSS.o : TSS.cpp $(CXX) $(CPPFLAGS) -c -o $@ $< $(OBJ)TSSManager.o : TSSManager.cpp $(CXX) $(CPPFLAGS) -c -o $@ $< $(OBJ)Thread.o : Thread.cpp $(CXX) $(CPPFLAGS) -c -o $@ $< $(OBJ)ThreadGroup.o : ThreadGroup.cpp $(CXX) $(CPPFLAGS) -c -o $@ $< $(OBJ)Version.o : Version.cpp $(CXX) $(CPPFLAGS) -c -o $@ $<