cleaner build of gsoap flavours in separate directories
authorAleš Křenek <ljocha@ics.muni.cz>
Tue, 11 Oct 2005 15:38:10 +0000 (15:38 +0000)
committerAleš Křenek <ljocha@ics.muni.cz>
Tue, 11 Oct 2005 15:38:10 +0000 (15:38 +0000)
org.glite.security.gsoap-plugin/Makefile

index d4b2aca..5045515 100644 (file)
@@ -1,5 +1,5 @@
 # defaults
-top_srcdir=.
+top_srcdir=..
 builddir=build
 top_builddir=${top_srcdir}/${builddir}
 stagedir=.
@@ -27,6 +27,8 @@ GSPLUGIN_VERSION_CHECKING?=yes
 
 version_info=-version-info `echo ${version} | cut -d. -f1,2 | tr . :`
 
+gsoap_version=${gsoap_default_version}
+
 VPATH=${top_srcdir}/src:${top_srcdir}/test:${top_srcdir}/examples
 
 TEST_LIBS:=-L${cppunit}/lib -lcppunit
@@ -147,11 +149,9 @@ ${THRLTLIB_S}: ${THROBJS_S}
        ${LINK} ${version_info} -o $@ ${THRLOBJS_S} ${EX_LIBS}
 
 all compile: \
-       link-gsoap-default \
        ${GSS_STATICLIB} ${GSS_LTLIB} ${GSS_THRSTATICLIB} ${GSS_THRLTLIB} \
        ${STATICLIB} ${LTLIB} ${THRSTATICLIB} ${THRLTLIB} \
-       all-libs-with-soap \
-       examples
+       all-libs-with-soap
 
 check: compile check.gss
 
@@ -168,14 +168,16 @@ test_coverage:
        cd coverage && for i in ${OBJS}; do gcov -o .libs/ $$i ; done
 
 
-examples: link-gsoap-default soap_gen wscalc_clt_ex wscalc_srv_ex wscalc_srv_ex2
+examples: wscalc_clt_ex wscalc_srv_ex wscalc_srv_ex2
 
 all-libs-with-soap:
        for v in ${gsoap_versions}; do  \
-               ${MAKE} gsoap_version=$$v libs-with-soap; \
+               dir=`echo $$v | tr -d .`; \
+               mkdir $$dir; \
+               ( cd $$dir && ${MAKE} -f ../Makefile gsoap_version=$$v top_srcdir=../.. libs-with-soap examples) ; \
        done
 
-libs-with-soap: clean-objs link-gsoap ${LTLIB_S} ${THRLTLIB_S} ${STATICLIB_S} ${THRSTATICLIB_S}
+libs-with-soap: ${LTLIB_S} ${THRLTLIB_S} ${STATICLIB_S} ${THRSTATICLIB_S}
 
 link-gsoap:
        if [ -f ${top_srcdir}/src/stdsoap2_${gsoap_version}.c ]; then \
@@ -188,60 +190,38 @@ link-gsoap:
        else false ; \
        fi
 
-link-gsoap-default:
-       ${MAKE} link-gsoap gsoap_version=${gsoap_default_version}
-
-clean-objs:
-       rm -f *.o *.lo soap_version.h
+stdsoap2.c stdsoap2.h: link-gsoap
 
 GSOAP_FPREFIX:= GSOAP_
 
-ifeq ($(GSPLUGIN_DEBUG),yes)
-       WSCALC_CLT_OBJS = wscalc_clt_ex.o ${GSOAP_FPREFIX}C.o ${GSOAP_FPREFIX}Client.o \
-                                         stdsoap2.o
-       WSCALC_SRV_OBJS = wscalc_srv_ex.o ${GSOAP_FPREFIX}C.o ${GSOAP_FPREFIX}Server.o \
-                                         stdsoap2.o
-       WSCALC_SRV2_OBJS = wscalc_srv_ex2.o ${GSOAP_FPREFIX}C.o ${GSOAP_FPREFIX}Server.o \
-                                         stdsoap2.o
-else
-       WSCALC_CLT_OBJS = wscalc_clt_ex.o ${GSOAP_FPREFIX}C.o ${GSOAP_FPREFIX}Client.o
-       WSCALC_SRV_OBJS = wscalc_srv_ex.o ${GSOAP_FPREFIX}C.o ${GSOAP_FPREFIX}Server.o
-       WSCALC_SRV2_OBJS = wscalc_srv_ex2.o ${GSOAP_FPREFIX}C.o ${GSOAP_FPREFIX}Server.o
-endif
-
+WSCALC_CLT_OBJS = wscalc_clt_ex.o ${GSOAP_FPREFIX}C.o ${GSOAP_FPREFIX}Client.o
+WSCALC_SRV_OBJS = wscalc_srv_ex.o ${GSOAP_FPREFIX}C.o ${GSOAP_FPREFIX}Server.o
+WSCALC_SRV2_OBJS = wscalc_srv_ex2.o ${GSOAP_FPREFIX}C.o ${GSOAP_FPREFIX}Server.o
 
-dotless_def_ver:=${shell echo ${gsoap_default_version} | tr -d .}
-EXALIB:=libglite_security_gsoap_plugin_${dotless_def_ver}_${nothrflavour}.la
+wscalc_clt_ex.o wscalc_srv_ex.o wscalc_srv_ex2.o: ${GSOAP_FPREFIX}H.h
 
-wscalc_clt_ex: ${WSCALC_CLT_OBJS} ${STATICLIB}
-       ${LINK} -o $@ ${WSCALC_CLT_OBJS} ${EXALIB}
+wscalc_clt_ex: ${WSCALC_CLT_OBJS} ${LTLIB_S}
+       ${LINK} -o $@ ${WSCALC_CLT_OBJS} ${LTLIB_S}
 
-wscalc_srv_ex: ${WSCALC_SRV_OBJS} ${STATICLIB}
-       ${LINK} -o $@ ${WSCALC_SRV_OBJS} ${EXALIB}
+wscalc_srv_ex: ${WSCALC_SRV_OBJS} ${LTLIB_S}
+       ${LINK} -o $@ ${WSCALC_SRV_OBJS} ${LTLIB_S}
 
-wscalc_srv_ex2: ${WSCALC_SRV2_OBJS} ${STATICLIB}
-       ${LINK} -o $@ ${WSCALC_SRV2_OBJS} ${EXALIB}
+wscalc_srv_ex2: ${WSCALC_SRV2_OBJS} ${LTLIB_S}
+       ${LINK} -o $@ ${WSCALC_SRV2_OBJS} ${LTLIB_S}
 
 
+gsoap_prefix:=${repository}/${gsoap_name}/${gsoap_version}/${gsoap_platform}
 soapcpp:=${shell if [ -x ${gsoap_prefix}/bin/soapcpp2 ]; then \
        echo ${gsoap_prefix}/bin/soapcpp2; \
        else echo ${gsoap_prefix}/soapcpp2; \
        fi}
 
-${GSOAP_FPREFIX}H.h ${GSOAP_FPREFIX}C.c ${GSOAP_FPREFIX}Server.c ${GSOAP_FPREFIX}Client.c ${GSOAP_FPREFIX}ServerLib.c ${GSOAP_FPREFIX}ClientLib.c soap_gen:  calc.h.S
+${GSOAP_FPREFIX}H.h ${GSOAP_FPREFIX}C.c ${GSOAP_FPREFIX}Server.c ${GSOAP_FPREFIX}Client.c ${GSOAP_FPREFIX}ServerLib.c ${GSOAP_FPREFIX}ClientLib.c:  calc.h.S
        ${soapcpp} -c -p ${GSOAP_FPREFIX} ${top_srcdir}/examples/calc.h.S
 
 wscalc_clt_ex.o: wscalc_clt_ex.c
        ${CC} -c ${CFLAGS} ${GLOBUS_INC} -o $@ $<
        
-#stdsoap2_2.6.2.o: stdsoap2_2.6.2.c stdsoap2_2.6.2.h
-#      ln -sf ${top_srcdir}/src/stdsoap2_2.6.2.h stdsoap2.h
-#      libtool --mode=compile ${CC} -c ${DEBUG} -I${top_srcdir}/src -I${top_srcdir}/interface -I. -o $@ $<
-#      rm -f stdsoap2.h
-#
-#stdsoap2.o: ${gsoap_prefix}/devel/stdsoap2.c
-#      ${CC} -c ${CFLAGS} -o $@ $<
-
 doc:
 
 stage:
@@ -271,7 +251,7 @@ install:
                install -m 644 ${GSS_STATICLIB} ${GSS_THRSTATICLIB} ${STATICLIB} ${THRSTATICLIB} ${PREFIX}/lib; \
        fi
        for v in ${gsoap_versions}; do \
-               ${MAKE} install-soaplib gsoap_version=$$v PREFIX=${PREFIX}; \
+               (cd `echo $$v | tr -d .` && ${MAKE} -f ../Makefile install-soaplib gsoap_version=$$v PREFIX=${PREFIX} ); \
        done
 
 install-soaplib:
@@ -288,7 +268,9 @@ clean:
 test_gss.o: %.o: %.cpp
        ${CXX} -c ${CFLAGS} ${GLOBUSINC} ${TEST_INC} $<
 
-soap_version.h:
+glite_gsplugin.o: soap_version.h
+
+soap_version.h: stdsoap2.h
        head stdsoap2.h | \
        perl -ne '/^stdsoap2.h\s+([0-9])\.([0-9])\.(\S+)\s.*/ && printf "#define GSOAP_VERSION %d%02d%02d\n#define GSOAP_MIN_VERSION \"$$3\"\n#ident \"soap_version.h $$1.$$2.$$3\"\n",$$1,$$2,$$3' >$@