# # The intended use of this library is as an embeddable builder # implementation support where someone else supplies main. # # Build a library of the core framework and support classes. # This library may well require -lmpich -ldl -lpthread and such # to work, depending on the configuration of ccaffeine. # It does NOT include the commandline/gui muxer service # and all that IO tie-off initialization. # ## there's a more portable way to do this. this requires gnu ar. CCAFE_HOME=.. include $(CCAFE_HOME)/Makefile.Rules MKDIR = "mkdir" CCAFE_BSLIB=libccafeCore.a CCAFE_DRIVERLIB=libccafeDrivers.a #retired RETIRED= \ $(CCAFE_HOME)/scutil/libscutil.a CCAFE_BS_SUPPORT= \ $(CCAFE_HOME)/dc/user_iface/libccafeBM.a \ $(CCAFE_HOME)/dc/framework/libdc_fwk.a \ $(CLASSIC_LIBRARY_COMPONENTS) \ $(CCAFE_HOME)/dc/port/libports.a \ $(CCAFE_HOME)/parameters/libparameters.a \ $(CCAFE_HOME)/jc++/libjcpp.a \ $(CCAFE_HOME)/util/libcafeutil.a \ $(CCAFE_BABEL_LIBS) \ $(NEO_LIBRARY) \ $(CLASSIC_LIBRARY) # CCAFE_DRIVER_SUPPORT is those needed in addition to CCAFE_BS_SUPPORT CCAFE_DRIVER_SUPPORT= \ $(CCAFE_HOME)/dc/user_iface/libccafeUserIface.a \ $(CCAFE_HOME)/dc/user_iface/ccacmd/libccacmd.a \ $(CCAFE_HOME)/cmd/libcmd.a \ $(CCAFE_HOME)/stovepipe/libstovepipe.a \ $(CCAFE_HOME)/gnu/getopt/libgetCCAFEopt.a \ $(CCAFE_HOME)/dc/distributed/libdistributed.a #retired local RL=libscutil.a CCAFE_BS_LOCAL= \ libccafeBM.a \ libdc_fwk.a \ $(CLASSIC_LIBRARY_COMPONENTS_NAME) \ libports.a \ libparameters.a \ libjcpp.a \ libcafeutil.a \ $(CCAFE_BABEL_LIBNAMES) \ $(NEO_LIBRARY_NAME) \ $(CLASSIC_LIBRARY_NAME) CCAFE_DRIVER_LOCAL= $(notdir $(CCAFE_DRIVER_SUPPORT)) all bins lib: @echo "building in cxx/lib is obsolete. Rebuilds are done from cxx." old-all: lib solib noscratch @touch .allbuild.complete old-bins: @touch .binbuild.complete src-list: gen: old-lib $(CCAFE_BSLIB): $(CCAFE_BS_SUPPORT) @echo ASSEMBLING $(CCAFE_BSLIB) @if test ! -d scratch; then \ $(MKDIR) scratch; \ fi /bin/cp $(CCAFE_BS_SUPPORT) scratch @cd scratch ; \ for i in $(CCAFE_BS_LOCAL) ; do \ echo "Extracting Objects From $$i"; \ ar x $$i; \ done -$(RM) $(CCAFE_BSLIB) ar crv $(CCAFE_BSLIB) scratch/*.o $(RANLIB) $(CCAFE_BSLIB) @echo ASSEMBLING $(CCAFE_DRIVERLIB) @if test ! -d scratch; then \ $(MKDIR) scratch; \ fi /bin/cp $(CCAFE_DRIVER_SUPPORT) scratch @cd scratch ; \ for i in $(CCAFE_DRIVER_LOCAL) ; do \ echo "Extracting Objects From $$i"; \ ar x $$i; \ done -$(RM) $(CCAFE_DRIVERLIB) @touch scratch/dummy.wo -@for i in scratch/*.wo; do \ j=`echo $$i |sed -e 's%.wo%.o%g'`; \ mv $$i $$j; \ done -@$(RM) scratch/dummy.o ar crv $(CCAFE_DRIVERLIB) scratch/*.o $(RANLIB) $(CCAFE_DRIVERLIB) old-solib: $(CCAFE_SHLIB_LD) $(CCAFE_SHLIB_LDFLAGS) \ -o libccafeCore.so scratch/*.o $(MPILD_SO_FLAGS) \ $(BABEL_CCA_LIBS) $(BABEL_LIB) -lpthread clean: noscratch -$(RM) *.o *.a *.so *~ *.cca *.scl $(RM) -r babel-components classic-components noscratch: -$(RM) scratch/*.a scratch/*.o depend: @echo "dccafe/cxx/lib depends not checked."