# Makefile for classes MyClassB MyClassC. # shell: make -f Makefile4MyClassBC #MAIN=$(shell basename `pwd`) MAIN = MyClassB include Makefile.arch #------------------------------------------------------------------------------ MYOBJ = $(MAIN).$(ObjSuf) $(MAIN)Dict.$(ObjSuf) MyClassC.$(ObjSuf) MYSRC = $(MAIN).$(SrcSuf) $(MAIN)Dict.$(SrcSuf) MyClassC.$(SrcSuf) MYDLL = lib$(MAIN).$(DllSuf) ifeq ($(PLATFORM),win32) MYLIB = lib$(MAIN).lib else MYLIB = $(shell pwd)/$(MYDLL) endif OBJS = $(MYOBJ) PROGRAMS = $(MYDLL) #------------------------------------------------------------------------------ .SUFFIXES: .$(SrcSuf) .$(ObjSuf) .$(DllSuf) all: $(PROGRAMS) $(MYDLL): $(MYOBJ) ifeq ($(ARCH),aix) /usr/ibmcxx/bin/makeC++SharedLib $(OutPutOpt) $@ $(LIBS) -p 0 $^ else ifeq ($(ARCH),aix5) /usr/vacpp/bin/makeC++SharedLib $(OutPutOpt) $@ $(LIBS) -p 0 $^ else ifeq ($(PLATFORM),macosx) # We need to make both the .dylib and the .so $(LD) $(SOFLAGS) $^ $(OutPutOpt) $@ ifeq ($(MACOSX_MINOR),4) ln -sf $@ $(subst .$(DllSuf),.so,$@) else $(LD) -bundle -undefined $(UNDEFOPT) $(LDFLAGS) $^ \ $(OutPutOpt) $(subst .$(DllSuf),.so,$@) endif else ifeq ($(PLATFORM),win32) bindexplib $* $^ > $*.def lib -nologo -MACHINE:IX86 $^ -def:$*.def \ $(OutPutOpt)$(MYLIB) $(LD) $(SOFLAGS) $(LDFLAGS) $^ $*.exp $(LIBS) \ $(OutPutOpt)$@ else $(LD) $(SOFLAGS) $(LDFLAGS) $^ $(OutPutOpt) $@ $(EXPLLINKLIBS) endif endif endif endif clean-MyClassBC: # @rm -f $(OBJS) core @rm -f $(OBJS) core $(MAIN)Dict.* lib$(MAIN).* clean:: clean-MyClassBC .SUFFIXES: .$(SrcSuf) ### $(MAIN)Dict.$(SrcSuf): $(MAIN).h MyClassC.h $(MAIN)LinkDef.h @echo "Generating dictionary $@..." @rootcint -f $@ -c $^ .$(SrcSuf).$(ObjSuf): $(CXX) $(CXXFLAGS) -c $<