TEST_LIBS:=-L${cppunit_prefix}/lib -lcppunit
TEST_INC:=-I${cppunit_prefix}/include
-
-LDFLAGS:=-L${stagedir}/lib \
- ${COVERAGE_FLAGS}
+# TODO: merge - check the 64bit stuff
+# - and what about the new JOBID lib?
+archlib:=lib
+host_cpu:=${shell uname -m}
+ifeq (${host_cpu},x86_64)
+ archlib:=lib64
+ LDFLAGS:=-L${stagedir}/lib64 -L${stagedir}/lib ${COVERAGE_FLAGS}
+else
+ LDFLAGS:=-L${stagedir}/lib
+endif
COMPILE:=libtool --mode=compile ${CC} ${CFLAGS}
CXXCOMPILE:=libtool --mode=compile ${CXX} ${CXXFLAGS}
LIBOBJS:=connection.o consumer.o notification.o prod_proto.o \
producer.o uiwrap.o statistics.o
+# TODO: restructuring - do we really need FAKE versions? maybe remove all FAKEs here
FAKELIBOBJS:=consumer_fake.o producer_fake.o
PLUSOBJS:=Event.o Job.o JobStatus.o Notification.o ServerConnection.o
TOOLS:=${LB_PERF_TOOLS}
EXAMPLES:=log_usertag_proxy job_log job_reg feed_shark notify query_ext query_seq_code stats abort_job change_acl stresslog flood_proxy dagids stress_context parse_eventsfile
+EXAMPLES_PLUS:=indexed_attrs_plus job_status_plus query_events_plus listener user_jobs_plus job_log_plus notify_plus
-EXAMPLES_CL=user_jobs job_status
-EXAMPLES_CL_THR=user_jobs_threaded
+EXAMPLES_CL:=user_jobs job_status
+EXAMPLES_CL_THR:=user_jobs_threaded
FAKE_EXAMPLES:=job_log_fake
MAN_GZ:=glite-lb-logevent.1.gz
MAN = $(MAN_GZ:.gz=)
+PLUS_EXTRA_LIB:=-lglite_wmsutils_jobid -lglite_wmsutils_exception
+
+
# version_info=-version-info `echo ${version} | cut -d. -f1,2 | tr . :`
# counted minor versions:
ln -vs . ${lbprefix}
for i in ${HDRS}; do ln -vs ../interface/$$i $$i ; done
+default: all
+
${LIB}: ${LIBOBJS}
${LINK} ${version_info} -o $@ ${LIBLOBJS} -rpath ${PREFIX}/lib \
${COMMON_LIB} ${TRIO_LIB} \
${COMMON_LIB_THR} \
-lglite_security_gss_${thrflavour}
-${PLUSLIB}: ${PLUSOBJS}
- ${LINK} ${version_info} -o $@ ${PLUSLOBJS} -rpath ${PREFIX}/lib ${LIB}
+${PLUSLIB}: ${PLUSOBJS} ${LIB}
+ ${LINKXX} ${version_info} -o $@ ${PLUSLOBJS} -rpath ${PREFIX}/lib ${LIB} ${PLUS_EXTRA_LIB}
-${THRPLUSLIB}: ${PLUSTHROBJS}
- ${LINK} ${version_info} -o $@ ${PLUSTHRLOBJS} -rpath ${PREFIX}/lib ${THRLIB}
+${THRPLUSLIB}: ${PLUSTHROBJS} ${THRLIB}
+ ${LINKXX} ${version_info} -o $@ ${PLUSTHRLOBJS} -rpath ${PREFIX}/lib ${THRLIB} ${PLUS_EXTRA_LIB}
logevent: logevent.o args.o
${LINK} -o $@ logevent.o args.o ${LIB} ${EXT_LIB}
${PLUSTHROBJS}: %.thr.o: %.cpp
${CXXCOMPILE} -o $@ -c $<
+${EXAMPLES_PLUS}: ${PLUSLIB}
+
+${EXAMPLES_PLUS}: %: %.o
+ ${LINKXX} -o $@ $< ${PLUSLIB}
+
${LIBOBJS} ${FAKELIBOBJS}: %.o: %.c
${COMPILE} -c $<
${AT3} $< >$@ || rm -f $@
chmod -w $@ >/dev/null
+%.o: %.cpp
+ ${CXX} ${CFLAGS} ${GLOBUSINC} -c $<
+
%.c: %.c.T
rm -f $@
${AT3} $< >$@ || rm -f $@
$(GENSAM) $< >$@ || rm -f $@
chmod -w,+x $@ > /dev/null
-examples: ${EXAMPLES} ${EXAMPLES_CL} ${EXAMPLES_CL_THR} ${sh_PROGS}
+examples: ${EXAMPLES} ${EXAMPLES_PLUS} ${EXAMPLES_CL} ${EXAMPLES_CL_THR} ${sh_PROGS}
fake: ${FAKE_EXAMPLES}
$(MAKE) install PREFIX=${stagedir}
${INSTALL} -m 644 ${FAKELIB} ${FAKETHRLIB} ${stagedir}/lib
+# TODO: restructuring - cleanup the documentation
doc: generate
cp ${top_srcdir}/doc/*.dox .
echo "PROJECT_NUMBER = ${version}" >> C.dox
ifdef LB_STANDALONE
${INSTALL} -m 644 ${LIB} ${THRLIB} ${PREFIX}/lib
else
-# FIXME:
-# ${INSTALL} -m 644 ${LIB} ${THRLIB} ${PLUSLIB} ${THRPLUSLIB} ${PREFIX}/lib
+ ${INSTALL} -m 644 ${LIB} ${THRLIB} ${PLUSLIB} ${THRPLUSLIB} ${PREFIX}/lib
${INSTALL} -m 644 ${LIB} ${THRLIB} ${PREFIX}/lib
endif
${INSTALL} -m 644 ${top_srcdir}/LICENSE ${PREFIX}/share/doc/${package}-${version}
for p in ${TOOLS} ; do \
${INSTALL} -m 755 "$$p" "${PREFIX}/sbin/glite-lb-$$p"; \
done
+# TODO: restructuring - install also source code of examples together with some good Makefile
for p in ${EXAMPLES} ${EXAMPLES_CL} ${EXAMPLES_CL_THR} ${sh_PROGS} ; do \
${INSTALL} -m 755 "$$p" "${PREFIX}/examples/glite-lb-$$p"; \
done
* Handle GSS failures on the client side
*----------------------------------------------------------------------
*/
+/* TODO: restructuring - move handle_gss_failures to a separate file
+ and use it both in producer (here) and consumer (connection.c)
+*/
static
int handle_gss_failures(edg_wll_Context ctx, int code, edg_wll_GssStatus *gss_code, const char *text)
{
return ret;
}
+/* TODO: restructuring - start using the following to provide better error handling when communicating with proxy
+ and use it also both in producer and consumer
+*/
#if 0 /* unused */
/**
*----------------------------------------------------------------------
}
#ifdef EDG_WLL_LOG_STUB
if (my_subject_name) {
- // XXX: shouldn't be probably ctx->p_user_lbproxy but some new parameter, eg. ctx->p_user
+/* TODO: merge - shouldn't be probably ctx->p_user_lbproxy but some new parameter, eg. ctx->p_user
+ related to the change in producer.c
+*/
edg_wll_SetParamString(ctx, EDG_WLL_PARAM_LBPROXY_USER, my_subject_name);
fprintf(stderr,"edg_wll_log_direct_connect: using certificate: %s\n",my_subject_name);
} else {
}
edg_wll_DoLogEvent_end:
-// XXX: no close if using connpool: edg_wll_log_close(ctx,&conn);
-
return handle_errors(ctx,answer,"edg_wll_DoLogEvent()");
}
edg_wll_SetError(ctx,ret = ENOMEM,"edg_wll_FormatLogLine(): trio_asprintf() error");
goto edg_wll_formatlogline_end;
}
- /* TODO: add always, probably new ctx->p_user */
+/* TODO: merge - add always, probably new ctx->p_user
+ has this already been agreed? */
if ( ( (flags & EDG_WLL_LOGFLAG_PROXY) || (flags & EDG_WLL_LOGFLAG_DIRECT) ) &&
(ctx->p_user_lbproxy) ) {
if (trio_asprintf(&dguser,EDG_WLL_FORMAT_USER,ctx->p_user_lbproxy) == -1) {
}
/* query LBProxyServer for sequence code if not user-suplied */
-/* XXX: don't know if working properly */
+/* TODO: merge - check if it is really working properly after the unification of proxy and server */
if (!code) {
if (edg_wll_QuerySequenceCodeProxy(ctx, job, &code_loc))
goto edg_wll_setloggingjobproxy_end;
const char * seed,
edg_wlc_JobId ** subjobs)
{
-/* XXX: what is that ? */
-#ifdef LB_PERF
- return edg_wll_RegisterJobMaster(ctx,EDG_WLL_LOGFLAG_DIRECT,job,type,jdl,ns,parent,num_subjobs,seed,subjobs);
-#else
+/* TODO: merge - do we want subjobs to be registered
+ directly to bkserver (LOGFLAG_DIRECT)
+ or "just" through the locallogger (LOGFLAG_LOCAL) ?
+*/
return edg_wll_RegisterJobMaster(ctx,EDG_WLL_LOGFLAG_LOCAL,job,type,jdl,ns,parent,num_subjobs,seed,subjobs);
-#endif
}
/**