Ruslan,

I think you will find that automake's depcomp in C preprocessor mode
already handles IDL dependencies (I'm using the CVS version now :).

Regards,
Alex.

Ruslan Shevchenko writes:
 > 1. I think it's also must be somewhere near my CORBA macroses. (hmm,
 > may be really create separate page for autoconf CORBA support ?).#!/bin/sh
 > #
 > # idl_depend.
 > # Tool for generating dependences from idl
 > # (C) Ruslan Shevchenko <[EMAIL PROTECTED]>, 1998
 > # $Id: idl_depend,v 1.1 2000/07/13 15:48:56 rssh Exp $
 > #
 > ###########################################################
 > # Redistribution and use in source and binary forms, with or without
 > # modification, are permitted provided that the following conditions
 > # are met:
 > # 1. Redistributions of source code must retain the above copyright
 > #   notice, this list of conditions and the following disclaimer.
 > # 2. Redistributions in binary form must reproduce the above copyright
 > #   notice, this list of conditions and the following disclaimer in the
 > #   documentation and/or other materials provided with the distribution.
 > # 3. All advertising materials mentioning features or use of this software
 > #   must display the following acknowledgement:
 > #      This product includes software developed by Ruslan Shevchenko, 
 > #      Ukraine, Kiev and his contributors.
 > # 4. Neither the name of the original author nor the names of his contributors
 > #    may be used to endorse or promote products derived from this software
 > #    without specific prior written permission.
 > #
 > # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 > # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 > # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 > # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 > # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 > # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 > # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 > # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 > # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 > # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 > # SUCH DAMAGE.
 > ###########################################################
 > 
 > usage()
 > {
 >  echo "idl_depend, "
 >  echo "Usage: idl_depend [options]"
 >  echo " where options:"
 >  echo "     --idl_dir directory_where_you_store_idl_files"
 >  echo "     --idl_file file_to_process"
 >  echo "     --extra_idl_flag flags_which_you_want_pass_to_idl "
 >  echo "     --var_prefix prefix_of_make_varibales"
 >  echo "     --h_dir directory_where_generated_header_files_must_be"
 >  echo "     --cpp_dir directory_where_generated_cpp_files_must_be"
 >  echo "     --obj_dir directory_where_generated_object_files_must_be"
 >  echo "     --cln_h_suffix suffix for generated client headers (default: .h)"
 >  echo "     --cln_h1_suffix suffix for second generated client headers "
 >  echo "                                                     (default: no)"
 >  echo "     --cln_cpp_suffix suffix for generated client cpp (default: .cpp)"
 >  echo "     --cln_obj_suffix suffix for generated client objs (default: .o)"
 >  echo "     --srv_h_suffix suffix for generated skeleton headers (default: _skel.h)"
 >  echo "     --srv_h1_suffix suffix for second generated skeleton headers "
 >  echo "                                                (default: no.h)"
 >  echo "     --srv_cpp_suffix suffix for generated skeleton cxx sources "
 >  echo "                                               (default: _skel.cpp)"
 >  echo "     --srv_cpp_suffix suffix for generated skeleton object files  "
 >  echo "                                               (default: _skel.o)"
 >  echo "     --tie_h_suffix suffix for generated tie skeleton headers   "
 >  echo "                                               (default: _skel_tie.h)"
 >  echo "     --tie_h1_suffix second suffix for generated tie skeleton headers   "
 >  echo "                                               (default: no)"
 >  echo "     --tie_cpp_suffix suffix for generated tie skeleton sources  "
 >  echo "                                               (default: no)"
 >  echo "     --absolute-path : use absolute patch names"
 >  echo "     --additive-vars : do not set make variables to empty initial variable"
 >  echo "     --version : show version"
 >  echo "     --verbose : show debug information in stderr"
 >  echo "     --cxxcompile : use \$(CXXCOMPILE) instead \$(CXX) \$(CXXFLAGS)"
 >  echo "     --sgi-make : do not use += in generated Makefile "
 > }
 > 
 > IDL_DIR=
 > IDLS=
 > VAR_PREFIX=
 > H_DIR=
 > EXTRA_IDLFLAGS=
 > CLN_H_SUFFIX=.h
 > CLN_H1_SUFFIX=.h
 > CLN_CPP_SUFFIX=.cpp
 > CLN_OBJ_SUFFIX=.o
 > SRV_H_SUFFIX=_skel.h
 > SRV_H1_SUFFIX=_skel.h
 > SRV_CPP_SUFFIX=_skel.cpp
 > SRV_OBJ_SUFFIX=_skel.o
 > TIE_H_SUFFIX=_skel_tie.h
 > TIE_H1_SUFFIX=no
 > TIE_CPP_SUFFIX=no
 > 
 > while [ "x$*" != "x" ]
 > do
 >    case $1 in
 >      --idl_dir|--idl-dir)
 >              IDL_DIR=$2
 >              shift
 >              ;;
 >      --extra-idl-flags|--extra_idl_flags|--extra-idl-flag|--extra_idl_flag)
 >                 EXTRA_IDLFLAGS="$EXTRA_IDLFLAGS $2"
 >                 shift
 >                 ;;
 >      --idl_file|--idl-file)
 >                 IDLS="$IDLS $2"
 >              shift
 >                 ;;
 >      --var_prefix|--var-prefix)
 >              VAR_PREFIX=$2
 >                 shift
 >                 ;;
 >      --h_dir|--h-dir)
 >                 H_DIR=$2;
 >                 shift
 >                 ;;
 >      --cpp_dir|--cpp-dir)
 >                 CPP_DIR=$2;
 >                 shift
 >                 ;;
 >      --obj_dir|--obj-dir)
 >                 OBJ_DIR=$2;
 >                 shift
 >                 ;;
 >      --cln_h_suffix|--cln-h-suffix)
 >                 CLN_H_SUFFIX=$2
 >                 shift
 >                 ;;
 >      --cln_h1_suffix|--cln-h1-suffix)
 >                 CLN_H1_SUFFIX=$2
 >                 shift
 >                 ;;
 >      --cln_cpp_suffix|--cln-cpp-suffix)
 >                 CLN_CPP_SUFFIX=$2
 >                 shift
 >                 ;;
 >      --cln_obj_suffix|--cln-obj-suffix)
 >                 CLN_OBJ_SUFFIX=$2
 >                 shift
 >                 ;;
 >      --srv_h_suffix|--srv-h-suffix)
 >                 SRV_H_SUFFIX=$2
 >                 shift
 >                 ;;
 >      --srv_h1_suffix|--srv-h1-suffix)
 >                 SRV_H1_SUFFIX=$2
 >                 shift
 >                 ;;
 >      --srv_cpp_suffix|--srv-cpp-suffix)
 >                 SRV_CPP_SUFFIX=$2
 >                 shift
 >                 ;;
 >      --srv_obj_suffix|--srv-obj-suffix)
 >                 SRV_OBJ_SUFFIX=$2
 >                 shift
 >                 ;;
 >      --tie_h_suffix|--tie-h-suffix)
 >                 TIE_H_SUFFIX=$2
 >                 shift
 >                 ;;
 >      --tie_h1_suffix|--tie-h1-suffix)
 >                 TIE_H1_SUFFIX=$2
 >                 shift
 >                 ;;
 >      --tie_cpp_suffix|--tie-cpp-suffix)
 >                 TIE_CPP_SUFFIX=$2
 >                 shift
 >                 ;;
 >      --absolute_path|--absolute-path)
 >                 ABSOLUTE=1
 >                 ;;
 >      --additive_vars|--additive-vars)
 >                 ADDITIVE_VARS=1
 >                 ;;
 >      --cxxcompile)
 >              CXXCOMPILE=1
 >              ;;
 >      --sgi-make|--sgi_make)
 >              SGI_MAKE=1
 >              ;;
 >      --verbose)
 >              VERBOSE=yes
 >                 ;;
 >      --version)
 >      echo "idl_depend: makefile generator for idl -> C++ transformation"
 >      echo "(C) Ruslan Shevchenko <[EMAIL PROTECTED]>, 1998,1999,2000"
 >         echo $Id: idl_depend,v 1.1 2000/07/13 15:48:56 rssh Exp $x
 >              exit
 >              ;;
 >      --*)
 >                 usage
 >                 exit
 >                 ;;
 >    esac
 >    shift
 > done
 > 
 > 
 > if [ "x$IDLS" = "x" ]
 > then
 >   if [ "x$IDL_DIR" = "x" ]
 >   then
 >     IDLS="*.idl"
 >   else
 >     IDLS="$IDL_DIR/*.idl"
 >   fi
 > fi
 > 
 > 
 > if [ "x$SGI_MAKE" = "x" ]
 > then
 >   if [ "x$ADDITIVE_VARS" = "x" ]
 >   then
 >     echo IDL_${VAR_PREFIX}ALL=
 >   fi
 > else
 >   if [ "x$ADDITIVE_VARS" = "x" ]
 >   then
 >     idl_all_var= 
 >     idl_cl_all_objs_var=
 >     idl_skel_all_objs_var= 
 >     idl_srv_all_objs_var=
 >   else
 >     echo "options --additive-vars and --sgi-make are incompatible" 1>&2 
 >     exit 1 
 >   fi
 > fi
 > 
 > if test "x$VERBOSE" = "xyes"; then
 >  echo IDL_DIR=$IDL_DIR                >& 2
 >  echo IDLS=$IDLS                      >& 2
 >  echo VAR_PREFIX=$VAR_PREFIX          >& 2
 >  echo H_DIR=$H_DIR                    >& 2
 >  echo EXTRA_IDLFLAGS=$EXTRA_IDLFLAGS  >& 2
 >  echo CLN_H_SUFFIX=$CLN_H_SUFFIX      >& 2
 >  echo CLN_H1_SUFFIX=$CLN_H1_SUFFIX    >& 2
 >  echo CLN_CPP_SUFFIX=$CLN_CPP_SUFFIX  >& 2
 >  echo CLN_OBJ_SUFFIX=$CLN_OBJ_SUFFIX  >& 2
 >  echo SRV_H_SUFFIX=$SRV_H_SUFFIX      >& 2
 >  echo SRV_H1_SUFFIX=$SRV_H1_SUFFIX    >& 2
 >  echo SRV_CPP_SUFFIX=$SRV_CPP_SUFFIX  >& 2
 >  echo SRV_OBJ_SUFFIX=$SRV_OBJ_SUFFIX  >& 2
 >  echo TIE_H_SUFFIX=$TIE_H_SUFFIX      >& 2
 >  echo TIE_H1_SUFFIX=$TIE_H1_SUFFIX    >& 2
 >  echo TIE_CPP_SUFFIX=$TIE_CPP_SUFFIX  >& 2
 > fi
 > 
 > 
 > for i in $IDLS
 > do
 >   TESTEMPTY=`echo $i | sed '/\*/d'`
 >   if [ "x$TESTEMPTY" = "x" ]
 >   then
 >     echo no idl files found.
 >     exit
 >   fi
 > 
 > 
 >   j=`basename $i .idl`
 >   if [ "x$H_DIR" = "x" ]
 >   then
 >     CL_H=${j}${CLN_H_SUFFIX}
 >     CL_H1=${j}${CLN_H1_SUFFIX}
 >     SKEL_H=${j}${SRV_H_SUFFIX}
 >     SKEL_H1=${j}${SRV_H1_SUFFIX}
 >     TIE_H=${j}${TIE_H_SUFFIX}
 >     TIE_H1=${j}${TIE_H1_SUFFIX}
 >   else
 >     CL_H="${H_DIR}/${j}${CLN_H_SUFFIX}"
 >     CL_H1="${H_DIR}/${j}${CLN_H1_SUFFIX}"
 >     SKEL_H="${H_DIR}/${j}${SRV_H_SUFFIX}"
 >     SKEL_H1="${H_DIR}/${j}${SRV_H1_SUFFIX}"
 >     TIE_H="${H_DIR}/${j}${TIE_H_SUFFIX}"
 >     TIE_H1="${H_DIR}/${j}${TIE_H1_SUFFIX}"
 >   fi
 > 
 > 
 >   if [ "x$CPP_DIR" = "x" ]
 >   then
 >     CL_CPP=$j${CLN_CPP_SUFFIX}
 >     SKEL_CPP=${j}${SRV_CPP_SUFFIX}
 >     TIE_CPP=${j}${TIE_CPP_SUFFIX}
 >   else
 >     CL_CPP=${CPP_DIR}/$j${CLN_CPP_SUFFIX}
 >     SKEL_CPP=${CPP_DIR}/${j}${SRV_CPP_SUFFIX}
 >     TIE_CPP=${CPP_DIR}/${j}${TIE_CPP_SUFFIX}
 >   fi
 > 
 > 
 >   if [ "x$OBJ_DIR" = "x" ]
 >   then
 >     CL_OBJ=$j${CLN_OBJ_SUFFIX}
 >     SKEL_OBJ=${j}${SRV_OBJ_SUFFIX}
 >   else
 >     CL_OBJ=${OBJ_DIR}/$j$CLN_OBJ_SUFFIX
 >     SKEL_OBJ=${OBJ_DIR}/${j}${SRV_OBJ_SUFFIX}
 >   fi
 > 
 > 
 >   CUR_IDL=$i
 > 
 >   if [ "x$ABSOLUTE" != "x" ]
 >   then
 >    case $CL_H in
 >      /*)
 >         ;;
 >       *)
 >         CL_H=`pwd`/$CL_H
 >         CL_H1=`pwd`/$CL_H1
 >         SKEL_H=`pwd`/$SKEL_H
 >         SKEL_H1=`pwd`/$SKE_H1
 >         TIE_H=`pwd`/$TIE_H
 >         TIE_H1=`pwd`/$TIE_H
 >         ;;
 >    esac
 >    case $CL_CPP in
 >      /*)
 >         ;;
 >       *)
 >         CL_CPP=`pwd`/$CL_CPP
 >         SKEL_CPP=`pwd`/$SKEL_CPP
 >         TIE_CPP=`pwd`/$TIE_CPP
 >         ;;
 >     esac
 >     case $CL_OBJ in
 >       /*)
 >          ;;
 >        *)
 >          CL_OBJ=`pwd`/$CL_OBJ
 >          SKEL_OBJ=`pwd`/$SKEL_OBJ
 >          ;;
 >     esac 
 >     case $CUR_IDL in
 >       /*)
 >          ;;
 >        *)
 >          CUR_IDL=`pwd`/$CUR_IDL
 >          ;;
 >     esac
 >   fi
 > 
 >   if test "x$CL_H" = "x$SKEL_H" ; then
 >     TARGET="$CL_H"
 >   else
 >     TARGET="$CL_H $SKEL_H"
 >   fi
 > 
 > 
 >   if test "x$CL_CPP" = "x$SKEL_CPP" ; then
 >     TARGET="$TARGET $CL_CPP"
 >   else
 >     TARGET="$TARGET $CL_CPP $SKEL_CPP"
 >   fi
 > 
 >   echo "$TARGET: $CUR_IDL"
 >   echo "     \$(IDL2CXX) \$(IDLFLAGS) $EXTRA_IDLFLAGS   $CUR_IDL"
 > 
 > 
 >   if [ "x$H_DIR" != "x" ]
 >   then
 >     LOC_CLN_H=$j${CLN_H_SUFFIX}
 >     LOC_CLN_H1=$j${CLN_H1_SUFFIX}
 >     LOC_SRV_H=$j${SRV_H_SUFFIX}
 >     LOC_SRV_H1=$j${SRV_H1_SUFFIX}
 >     LOC_TIE_H=$j${TIE_H_SUFFIX}
 >     LOC_TIE_H1=$j${TIE_H1_SUFFIX}
 >     echo "   mv $LOC_CLN_H  $CL_H"
 >     if test "x$CLN_H1_SUFFIX" != "xno" ; then
 >        echo "CLN_H1_SUFFIX:  mv $LOC_CLN_H1  $CL_H1" >& 2
 >        echo "        mv $LOC_CLN_H1  $CL_H1"
 >     fi
 >     if test  "x$SRV_H_SUFFIX" != "xno" ; then
 >      if test ! "x$SRV_H_SUFFIX" = "x$CLN_H_SUFFIX" ; then
 >        echo "        mv ${j}${SRV_H_SUFFIX} $SKEL_H"
 >      fi
 >     fi
 >     if test  "x$SRV_H1_SUFFIX" != "xno" ; then
 >        echo "SRV_H1_SUFFIX   mv $LOC_SRV_H1 $SKEL_H1" >& 2
 >        echo "        mv $LOC_SRV_H1 $SKEL_H1"
 >     fi
 >     if test  "x$TIE_H_SUFFIX" != "xno" ; then
 >       echo " if [ -f ${LOC_TIE_H} ]; then mv ${LOC_TIE_H} $TIE_H; fi"
 >     fi
 >     if test  "x$TIE_H1_SUFFIX" != "xno" ; then
 >       echo " if [ -f ${LOC_TIE_H1} ]; then mv ${LOC_TIE_H1} $TIE_H1; fi"
 >     fi
 >   fi
 >   if [ "x$CPP_DIR" != "x" ]
 >   then
 >     LOC_CLN_CPP=$j${CLN_CPP_SUFFIX}
 >     LOC_SRV_CPP=$j${SRV_CPP_SUFFIX}
 >     LOC_TIE_CPP=$j${TIE_CPP_SUFFIX}
 >     echo "   mv $LOC_CLN_CPP $CL_CPP"
 >     if test  "x$SRV_CPP_SUFFIX" != "xno"; then
 >      if test  "x$SRV_CPP_SUFFIX" != "x$CLN_CPP_SUFFIX"; then
 >       echo " mv ${j}${SRV_CPP_SUFFIX} $SKEL_CPP"
 >      fi
 >     fi
 >     if test ! "x$TIE_CPP_SUFFIX" = "xno"; then
 >       echo " if [ -f ${LOC_TIE_CPP} ]; then mv ${LOC_TIE_CPP} $TIE_CPP; fi"
 >     fi
 >   fi
 >   echo
 >   if [ "x$SGI_MAKE" != "x" ]
 >   then
 >     idl_all_var="$idl_all_var $CL_H"
 >     idl_cl_all_objs_var="$idl_cl_all_objs_var $CL_OBJ"
 >     idl_skel_all_objs_var="$idl_skel_all_objs_var $SKEL_OBJ"
 >     if test "x$SKEL_OBJ" = "x$CL_OBJ"
 >     then
 >        idl_srv_all_objs_var="$idl_srv_all_objs_var $SKEL_OBJ"
 >     else
 >        idl_srv_all_objs_var="$idl_srv_all_objs_var $SKEL_OBJ $CL_OBJ"
 >     fi
 >   else
 >     echo IDL_${VAR_PREFIX}ALL += $CL_H 
 >     echo IDL_CL_${VAR_PREFIX}ALL_OBJS += $CL_OBJ
 >     echo IDL_SKEL_${VAR_PREFIX}ALL_OBJS += $SKEL_OBJ
 >     if test "x$SKEL_OBJ" = "x$CL_OBJ"
 >     then
 >       echo IDL_SRV_${VAR_PREFIX}ALL_OBJS += $SKEL_OBJ 
 >     else
 >       echo IDL_SRV_${VAR_PREFIX}ALL_OBJS += $SKEL_OBJ $CL_OBJ
 >     fi
 >   fi
 >   echo
 >   echo  IDL_${VAR_PREFIX}`echo $j | tr [:lower:] [:upper:]`_CL_OBJS=$CL_OBJ
 >   echo  IDL_${VAR_PREFIX}`echo $j | tr [:lower:] [:upper:]`_SKEL_OBJS=$SKEL_OBJ
 >   echo  IDL_${VAR_PREFIX}`echo $j | tr [:lower:] [:upper:]`_SRV_OBJS=$CL_OBJ 
 >$SKEL_OBJ
 >   echo
 >   echo  "$CL_OBJ: $CL_CPP"
 >   if test "x$CXXCOMPILE" = x
 >   then
 >     echo  "  \$(CXX) -c \$(CXXFLAGS) -o $CL_OBJ $CL_CPP"
 >   else
 >     echo  "  \$(CXXCOMPILE) -c -o $CL_OBJ $CL_CPP"
 >   fi
 >   if test ! "x$SKEL_OBJ" = "x$CL_OBJ"; then
 >     echo  "$SKEL_OBJ: $SKEL_CPP"
 >     if test "x$CXXCOMPILE" = "x"
 >     then
 >       echo  "        \$(CXX) -c \$(CXXFLAGS) -o $SKEL_OBJ $SKEL_CPP"
 >     else
 >       echo  "        \$(CXXCOMPILE) -c -o $SKEL_OBJ $SKEL_CPP"
 >     fi
 >   fi
 >   echo
 > done
 > 
 > if [ "x$SGI_MAKE" != "x" ]
 > then
 >   echo IDL_${VAR_PREFIX}ALL = $idl_all_var 
 >   echo IDL_CL_${VAR_PREFIX}ALL_OBJS = $idl_cl_all_objs_var
 >   echo IDL_SKEL_${VAR_PREFIX}ALL_OBJS = $idl_skel_all_objs_var 
 >   echo IDL_SRV_${VAR_PREFIX}ALL_OBJS = $idl_srv_all_objs_var
 > fi
 > 
 > 

Reply via email to