SOAP-related issues ------------------- To generate soap files for daemons/processes in Condor it suffices to: 1. Create gsoap_.h file with the following content //gsoap condor service name: #import "gsoap_daemon_core.h" For example, gsoap_had.h //gsoap condor service name: condorHad #import "gsoap_daemon_core.h" 2. Create soap_Stub.C file with the following content #include ".nsmap" #include "../condor_daemon_core.V6/soap_daemon_core.cpp" For example, soap_hadStub.C #include "condorHad.nsmap" #include "../condor_daemon_core.V6/soap_daemon_core.cpp" 3. In Imakefile two following lines must be included to generate the rest of SOAP-related files soapobjs() gen_soapfiles(,) For example, soapobjs(had) gen_soapfiles(had,condorHad) 4. Besides, the object files generated by SOAP must be included into the list of objects, on which the daemon binary construction depends (soap_C.o, soap_Server.o, soap_Stub.o), for example HAD_OBJ = StateMachine.o HAD.o Utils.o soap_hadC.o soap_hadServer.o soap_hadStub.o c_plus_target($(HAD_NAME),$(HAD_OBJ),$(LIB)) release_target($(HAD_NAME),sbin,EXECUTABLE_MODE) strip_target($(HAD_NAME),sbin,EXECUTABLE_MODE) static_target($(HAD_NAME),$(HAD_OBJ),$(LIB),$(STATIC_DIR)/sbin) pure_c_plus_target($(HAD_NAME).pure,$(HAD_OBJ),$(LIB)) purecov_c_plus_target($(HAD_NAME).pc,$(HAD_OBJ),$(LIB)) 5. To compile the SOAP files properly on Windows NT platform, one must append the following lines to NTconfig/gsoap.mak : $(SRCDIR)\condor_$@\soap_$@Stub.C \ $(SRCDIR)\condor_$@\gsoap_$@.h -2mkdir $(TEMPDIR) cd $(SRCDIR)\condor_$@ $(SOAPCPP) $(SOAPCPPFLAGS) -p soap_$@ -d $(TEMPDIR) gsoap_$@.h copy /Y $(TEMPDIR)\soap_$@C.cpp .\*.C copy /Y $(TEMPDIR)\soap_$@Server.cpp .\*.C copy /Y $(TEMPDIR)\condor$@.nsmap . copy /Y $(TEMPDIR)\soap_$@H.h . copy /Y $(TEMPDIR)\soap_$@Stub.h . copy /Y $(TEMPDIR)\condor$@.wsdl . rd /q /s $(TEMPDIR) > NUL 2>&1 For example, had : $(SRCDIR)\condor_$@\soap_$@Stub.C \ $(SRCDIR)\condor_$@\gsoap_$@.h -2mkdir $(TEMPDIR) cd $(SRCDIR)\condor_$@ $(SOAPCPP) $(SOAPCPPFLAGS) -p soap_$@ -d $(TEMPDIR) gsoap_$@.h copy /Y $(TEMPDIR)\soap_$@C.cpp .\*.C copy /Y $(TEMPDIR)\soap_$@Server.cpp .\*.C copy /Y $(TEMPDIR)\condor$@.nsmap . copy /Y $(TEMPDIR)\soap_$@H.h . copy /Y $(TEMPDIR)\soap_$@Stub.h . copy /Y $(TEMPDIR)\condor$@.wsdl . rd /q /s $(TEMPDIR) > NUL 2>&1