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