Patches for IDL stub generation

Thomas Lockhart <[email protected]> Fri, 28 Feb 2003 08:59:20 -0800
Newsgroups gmane.comp.corba.omniorb.devel
Organization Yes
Message-ID <[email protected]>
I figured I'd post the current state of my patches for generating all of 
the COS-defined IDL for python, in case I get hit by a bus or in case 
they are acceptable as-is ;)

I've included two files: patches for existing files and a tarball of a 
new directory python/COS which contains makefiles for the IDL stubs.

Note that the patch file mentions several files which are no longer 
needed afaict: python/CosNaming* (now generated automatically, but in a 
different style than before; is that OK Duncan?), and acinclude.m4 (is 
this needed by pre-2.53 autoconf??).

This *could* be a "final version" if using COS.pth to expose the IDL 
files to the top level namespace is acceptable. afaict this restricts 
the installation to be in python's main library area, which is the only 
place .pth files are respected.

btw, many of the "patches" are for files generated by ./configure but 
which are included in the distro anyway. The actual necessary patches 
are quite small.

                     - Tom
omniORBpy-COS.tar.gz (application/gzip, 1.6 KB) - not displayed
omniORBpy.patches (text/plain, 14.9 KB)
Only in omniORBpy-2.0.orig: acinclude.m4
diff -rc omniORBpy-2.0.orig/configure omniORBpy-2.0/configure
*** omniORBpy-2.0.orig/configure	2002-09-06 21:34:25.000000000 +0000
--- omniORBpy-2.0/configure	2003-02-28 06:29:47.000000000 +0000
***************
*** 2824,2829 ****
--- 2824,2914 ----
    pkgpyexecdir=\${pyexecdir}/$PACKAGE
  
  
+ # Extract the first word of "omkdepend", so it can be a program name with args.
+ set dummy omkdepend; ac_word=$2
+ echo "$as_me:$LINENO: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_OMKDEPEND+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   case $OMKDEPEND in
+   [\\/]* | ?:[\\/]*)
+   ac_cv_path_OMKDEPEND="$OMKDEPEND" # Let the user override the test with a path.
+   ;;
+   *)
+   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH:$OMNIORB_ROOT/bin:/usr/local/bin:/usr/bin
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_path_OMKDEPEND="$as_dir/$ac_word$ac_exec_ext"
+     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ 
+   test -z "$ac_cv_path_OMKDEPEND" && ac_cv_path_OMKDEPEND="omkdepend"
+   ;;
+ esac
+ fi
+ OMKDEPEND=$ac_cv_path_OMKDEPEND
+ 
+ if test -n "$OMKDEPEND"; then
+   echo "$as_me:$LINENO: result: $OMKDEPEND" >&5
+ echo "${ECHO_T}$OMKDEPEND" >&6
+ else
+   echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+ for ac_prog in omkdirhier mkdirhier
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ echo "$as_me:$LINENO: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_MKDIRHIER+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   case $MKDIRHIER in
+   [\\/]* | ?:[\\/]*)
+   ac_cv_path_MKDIRHIER="$MKDIRHIER" # Let the user override the test with a path.
+   ;;
+   *)
+   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in ./bin/scripts:$PATH:$OMNIORB_ROOT/bin:/usr/local/bin:/usr/bin
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_path_MKDIRHIER="$as_dir/$ac_word$ac_exec_ext"
+     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ 
+   ;;
+ esac
+ fi
+ MKDIRHIER=$ac_cv_path_MKDIRHIER
+ 
+ if test -n "$MKDIRHIER"; then
+   echo "$as_me:$LINENO: result: $MKDIRHIER" >&5
+ echo "${ECHO_T}$MKDIRHIER" >&6
+ else
+   echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+   test -n "$MKDIRHIER" && break
+ done
+ test -n "$MKDIRHIER" || MKDIRHIER="omkdirhier"
+ 
  
  ac_ext=cc
  ac_cpp='$CXXCPP $CPPFLAGS'
***************
*** 3011,3017 ****
  ac_config_files="$ac_config_files mk/beforeauto.mk mk/afterauto.mk"
  
  
! ac_config_files="$ac_config_files GNUmakefile examples/embed/GNUmakefile modules/GNUmakefile modules/codesets/GNUmakefile modules/sslTP/GNUmakefile omniidl_be/GNUmakefile python/CosNaming/GNUmakefile python/CosNaming__POA/GNUmakefile python/GNUmakefile python/omniORB/GNUmakefile include/GNUmakefile"
  
  
  cat >confcache <<\_ACEOF
--- 3096,3102 ----
  ac_config_files="$ac_config_files mk/beforeauto.mk mk/afterauto.mk"
  
  
! ac_config_files="$ac_config_files GNUmakefile examples/embed/GNUmakefile modules/GNUmakefile modules/codesets/GNUmakefile modules/sslTP/GNUmakefile omniidl_be/GNUmakefile python/GNUmakefile python/COS/GNUmakefile python/omniORB/GNUmakefile include/GNUmakefile"
  
  
  cat >confcache <<\_ACEOF
***************
*** 3519,3527 ****
    "modules/codesets/GNUmakefile" ) CONFIG_FILES="$CONFIG_FILES modules/codesets/GNUmakefile" ;;
    "modules/sslTP/GNUmakefile" ) CONFIG_FILES="$CONFIG_FILES modules/sslTP/GNUmakefile" ;;
    "omniidl_be/GNUmakefile" ) CONFIG_FILES="$CONFIG_FILES omniidl_be/GNUmakefile" ;;
-   "python/CosNaming/GNUmakefile" ) CONFIG_FILES="$CONFIG_FILES python/CosNaming/GNUmakefile" ;;
-   "python/CosNaming__POA/GNUmakefile" ) CONFIG_FILES="$CONFIG_FILES python/CosNaming__POA/GNUmakefile" ;;
    "python/GNUmakefile" ) CONFIG_FILES="$CONFIG_FILES python/GNUmakefile" ;;
    "python/omniORB/GNUmakefile" ) CONFIG_FILES="$CONFIG_FILES python/omniORB/GNUmakefile" ;;
    "include/GNUmakefile" ) CONFIG_FILES="$CONFIG_FILES include/GNUmakefile" ;;
    *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
--- 3604,3611 ----
    "modules/codesets/GNUmakefile" ) CONFIG_FILES="$CONFIG_FILES modules/codesets/GNUmakefile" ;;
    "modules/sslTP/GNUmakefile" ) CONFIG_FILES="$CONFIG_FILES modules/sslTP/GNUmakefile" ;;
    "omniidl_be/GNUmakefile" ) CONFIG_FILES="$CONFIG_FILES omniidl_be/GNUmakefile" ;;
    "python/GNUmakefile" ) CONFIG_FILES="$CONFIG_FILES python/GNUmakefile" ;;
+   "python/COS/GNUmakefile" ) CONFIG_FILES="$CONFIG_FILES python/COS/GNUmakefile" ;;
    "python/omniORB/GNUmakefile" ) CONFIG_FILES="$CONFIG_FILES python/omniORB/GNUmakefile" ;;
    "include/GNUmakefile" ) CONFIG_FILES="$CONFIG_FILES include/GNUmakefile" ;;
    *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
***************
*** 3638,3643 ****
--- 3722,3729 ----
  s,@pkgpythondir@,$pkgpythondir,;t t
  s,@pyexecdir@,$pyexecdir,;t t
  s,@pkgpyexecdir@,$pkgpyexecdir,;t t
+ s,@OMKDEPEND@,$OMKDEPEND,;t t
+ s,@MKDIRHIER@,$MKDIRHIER,;t t
  s,@OMNIORB_ROOT@,$OMNIORB_ROOT,;t t
  s,@OPEN_SSL_ROOT@,$OPEN_SSL_ROOT,;t t
  s,@COMPILER_NAME@,$COMPILER_NAME,;t t
diff -rc omniORBpy-2.0.orig/configure.ac omniORBpy-2.0/configure.ac
*** omniORBpy-2.0.orig/configure.ac	2002-09-06 21:34:25.000000000 +0000
--- omniORBpy-2.0/configure.ac	2003-02-28 06:29:29.000000000 +0000
***************
*** 19,24 ****
--- 19,28 ----
  AC_PROG_MAKE_SET
  
  AM_PATH_PYTHON
+ AC_PATH_PROG(OMKDEPEND, omkdepend, omkdepend,
+              $PATH:$OMNIORB_ROOT/bin:/usr/local/bin:/usr/bin)
+ AC_PATH_PROGS(MKDIRHIER, omkdirhier mkdirhier, omkdirhier,
+              ./bin/scripts:$PATH:$OMNIORB_ROOT/bin:/usr/local/bin:/usr/bin)
  
  AC_LANG(C++)
  
***************
*** 123,131 ****
                  modules/codesets/GNUmakefile
                  modules/sslTP/GNUmakefile
                  omniidl_be/GNUmakefile
-                 python/CosNaming/GNUmakefile
-                 python/CosNaming__POA/GNUmakefile
                  python/GNUmakefile
                  python/omniORB/GNUmakefile
  		include/GNUmakefile
                 )
--- 127,134 ----
                  modules/codesets/GNUmakefile
                  modules/sslTP/GNUmakefile
                  omniidl_be/GNUmakefile
                  python/GNUmakefile
+                 python/COS/GNUmakefile
                  python/omniORB/GNUmakefile
  		include/GNUmakefile
                 )
diff -rc omniORBpy-2.0.orig/examples/embed/GNUmakefile omniORBpy-2.0/examples/embed/GNUmakefile
*** omniORBpy-2.0.orig/examples/embed/GNUmakefile	2002-06-10 00:33:31.000000000 +0000
--- omniORBpy-2.0/examples/embed/GNUmakefile	2003-02-28 14:23:42.000000000 +0000
***************
*** 1,3 ****
! TOP=../../../../..
! CURRENT=src/lib/omniORBpy/examples/embed
! include $(TOP)/config/config.mk
--- 1,9 ----
! TOP=../..
! CURRENT=examples/embed
! BASE_OMNI_TREE=../..
! 
! INSTALL=/usr/bin/install -c
! 
! include $(TOP)/mk/beforeauto.mk
! include ./dir.mk
! include $(TOP)/mk/afterauto.mk
diff -rc omniORBpy-2.0.orig/GNUmakefile omniORBpy-2.0/GNUmakefile
*** omniORBpy-2.0.orig/GNUmakefile	1999-10-04 17:25:21.000000000 +0000
--- omniORBpy-2.0/GNUmakefile	2003-02-28 14:23:42.000000000 +0000
***************
*** 1,3 ****
! TOP=../../..
! CURRENT=src/lib/omniORBpy
! include $(TOP)/config/config.mk
--- 1,8 ----
! TOP=.
! CURRENT=.
! BASE_OMNI_TREE=.
! 
! 
! include $(TOP)/mk/beforeauto.mk
! include ./dir.mk
! include $(TOP)/mk/afterauto.mk
diff -rc omniORBpy-2.0.orig/include/GNUmakefile omniORBpy-2.0/include/GNUmakefile
*** omniORBpy-2.0.orig/include/GNUmakefile	2002-06-10 00:33:31.000000000 +0000
--- omniORBpy-2.0/include/GNUmakefile	2003-02-28 14:23:43.000000000 +0000
***************
*** 1,3 ****
! TOP=../../../..
! CURRENT=src/lib/omniORBpy/include
! include $(TOP)/config/config.mk
--- 1,19 ----
! TOP=..
! CURRENT=include
! BASE_OMNI_TREE=..
! 
! INSTALL=/usr/bin/install -c
! 
! INSTALLDIR = $(INSTALLINCDIR)
! 
! HEADERS = omniORBpy.h
! 
! include $(TOP)/mk/beforeauto.mk
! 
! install:: $(HEADERS)
! 	@(dir="$(INSTALLDIR)"; \
!           for file in $^; do \
!             $(ExportFileToDir) \
!           done )
! 
! include $(TOP)/mk/afterauto.mk
diff -rc omniORBpy-2.0.orig/mk/beforeauto.mk.in omniORBpy-2.0/mk/beforeauto.mk.in
*** omniORBpy-2.0.orig/mk/beforeauto.mk.in	2002-09-06 21:34:26.000000000 +0000
--- omniORBpy-2.0/mk/beforeauto.mk.in	2003-02-14 19:34:26.000000000 +0000
***************
*** 43,49 ****
  # Directories for installation
  #
  
! prefix        	 := @prefix@
  exec_prefix   	 := @exec_prefix@
  INSTALLTARGET 	 := 1
  INSTALLINCDIR 	 := @includedir@
--- 43,49 ----
  # Directories for installation
  #
  
! prefix        	 := $(DESTDIR)@prefix@
  exec_prefix   	 := @exec_prefix@
  INSTALLTARGET 	 := 1
  INSTALLINCDIR 	 := @includedir@
***************
*** 275,281 ****
  # files.
  
  vpath %.idl $(IMPORT_TREES:%=%/idl) \
!             $(OMNIORB_ROOT)/idl/omniORB $(DATADIR)/idl/omniORB
  
  IMPORT_IDLFLAGS += -I. $(patsubst %,-I%,$(VPATH)) \
  		       $(patsubst %,-I%/idl,$(IMPORT_TREES))
--- 275,281 ----
  # files.
  
  vpath %.idl $(IMPORT_TREES:%=%/idl) \
!             $(OMNIORB_ROOT)/share/idl/omniORB $(DATADIR)/idl/omniORB
  
  IMPORT_IDLFLAGS += -I. $(patsubst %,-I%,$(VPATH)) \
  		       $(patsubst %,-I%/idl,$(IMPORT_TREES))
***************
*** 336,342 ****
  define VeryCleanRule
  $(RM) *.d
  $(RM) *.pyc
! $(RM) $(CORBA_STUB_FILES)
  endef
  
  
--- 336,342 ----
  define VeryCleanRule
  $(RM) *.d
  $(RM) *.pyc
! $(RM) -r $(CORBA_STUB_FILES)
  endef
  
  
***************
*** 664,676 ****
  CC              = @CC@
  CXX             = @CXX@
  RANLIB		= @RANLIB@
! MKDIRHIER	= $(BASE_OMNI_TREE)/bin/scripts/omkdirhier
  INSTLIBFLAGS	= -m 0644
  INSTEXEFLAGS	= -m 0755
  CP		= cp
  MV		= mv -f
  CPP		= @CPP@
! OMKDEPEND	= $(INSTALLBINDIR)/omkdepend
  RMDIRHIER	= $(RM) -rf
  
  CXXMAKEDEPEND   = $(OMKDEPEND) -D__cplusplus
--- 664,676 ----
  CC              = @CC@
  CXX             = @CXX@
  RANLIB		= @RANLIB@
! MKDIRHIER	= @MKDIRHIER@
  INSTLIBFLAGS	= -m 0644
  INSTEXEFLAGS	= -m 0755
  CP		= cp
  MV		= mv -f
  CPP		= @CPP@
! OMKDEPEND	= @OMKDEPEND@
  RMDIRHIER	= $(RM) -rf
  
  CXXMAKEDEPEND   = $(OMKDEPEND) -D__cplusplus
diff -rc omniORBpy-2.0.orig/modules/codesets/GNUmakefile omniORBpy-2.0/modules/codesets/GNUmakefile
*** omniORBpy-2.0.orig/modules/codesets/GNUmakefile	2002-09-06 21:34:26.000000000 +0000
--- omniORBpy-2.0/modules/codesets/GNUmakefile	2003-02-28 14:23:42.000000000 +0000
***************
*** 1,3 ****
! TOP=../../../../..
! CURRENT=src/lib/omniORBpy/modules/codesets
! include $(TOP)/config/config.mk
--- 1,9 ----
! TOP=../..
! CURRENT=modules/codesets
! BASE_OMNI_TREE=../..
! 
! INSTALL=/usr/bin/install -c
! 
! include $(TOP)/mk/beforeauto.mk
! include ./dir.mk
! include $(TOP)/mk/afterauto.mk
diff -rc omniORBpy-2.0.orig/modules/GNUmakefile omniORBpy-2.0/modules/GNUmakefile
*** omniORBpy-2.0.orig/modules/GNUmakefile	1999-10-04 17:25:21.000000000 +0000
--- omniORBpy-2.0/modules/GNUmakefile	2003-02-28 14:23:42.000000000 +0000
***************
*** 1,3 ****
! TOP=../../../..
! CURRENT=src/lib/omniORBpy/modules
! include $(TOP)/config/config.mk
--- 1,9 ----
! TOP=..
! CURRENT=modules
! BASE_OMNI_TREE=..
! 
! INSTALL=/usr/bin/install -c
! 
! include $(TOP)/mk/beforeauto.mk
! include ./dir.mk
! include $(TOP)/mk/afterauto.mk
diff -rc omniORBpy-2.0.orig/modules/sslTP/GNUmakefile omniORBpy-2.0/modules/sslTP/GNUmakefile
*** omniORBpy-2.0.orig/modules/sslTP/GNUmakefile	2002-09-06 21:34:26.000000000 +0000
--- omniORBpy-2.0/modules/sslTP/GNUmakefile	2003-02-28 14:23:42.000000000 +0000
***************
*** 1,3 ****
! TOP=../../../../..
! CURRENT=src/lib/omniORBpy/modules/sslTP
! include $(TOP)/config/config.mk
--- 1,9 ----
! TOP=../..
! CURRENT=modules/sslTP
! BASE_OMNI_TREE=../..
! 
! INSTALL=/usr/bin/install -c
! 
! include $(TOP)/mk/beforeauto.mk
! include ./dir.mk
! include $(TOP)/mk/afterauto.mk
diff -rc omniORBpy-2.0.orig/omniidl_be/GNUmakefile omniORBpy-2.0/omniidl_be/GNUmakefile
*** omniORBpy-2.0.orig/omniidl_be/GNUmakefile	2000-03-03 17:41:44.000000000 +0000
--- omniORBpy-2.0/omniidl_be/GNUmakefile	2003-02-28 14:23:42.000000000 +0000
***************
*** 1,3 ****
! TOP=../../../..
! CURRENT=src/lib/omniORBpy/omniidl_be
! include $(TOP)/config/config.mk
--- 1,9 ----
! TOP=..
! CURRENT=omniidl_be
! BASE_OMNI_TREE=..
! 
! INSTALL=/usr/bin/install -c
! 
! include $(TOP)/mk/beforeauto.mk
! include ./dir.mk
! include $(TOP)/mk/afterauto.mk
Only in omniORBpy-2.0/python: COS
Only in omniORBpy-2.0.orig/python: CosNaming
Only in omniORBpy-2.0.orig/python: CosNaming__POA
diff -rc omniORBpy-2.0.orig/python/dir.mk omniORBpy-2.0/python/dir.mk
*** omniORBpy-2.0.orig/python/dir.mk	2002-02-18 18:48:14.000000000 +0000
--- omniORBpy-2.0/python/dir.mk	2003-02-28 14:21:34.000000000 +0000
***************
*** 2,18 ****
  PYLIBDIR = $(PYLIBROOT)
  INSTALLPYLIBDIR = $(INSTALLPYTHONDIR)
  
! SUBDIRS = omniORB CosNaming CosNaming__POA
  
- ifeq ($(PYTHON),)
- PYTHON = python
- endif
- 
- 
- Naming_idl.py: Naming.idl
- 	$(OMNIIDL) -v -p$(BASE_OMNI_TREE)/omniidl_be -bpython $^
- 
- all:: Naming_idl.py
  
  all::
  	@$(MakeSubdirs)
--- 2,9 ----
  PYLIBDIR = $(PYLIBROOT)
  INSTALLPYLIBDIR = $(INSTALLPYTHONDIR)
  
! SUBDIRS = omniORB COS
  
  
  all::
  	@$(MakeSubdirs)
***************
*** 25,31 ****
  	@$(MakeSubdirs)
  endif
  
! FILES = CORBA.py PortableServer.py PortableServer__POA.py Naming_idl.py
  
  export:: $(FILES)
  	@(dir="$(PYLIBDIR)"; \
--- 16,22 ----
  	@$(MakeSubdirs)
  endif
  
! FILES = CORBA.py PortableServer.py PortableServer__POA.py
  
  export:: $(FILES)
  	@(dir="$(PYLIBDIR)"; \
diff -rc omniORBpy-2.0.orig/python/GNUmakefile omniORBpy-2.0/python/GNUmakefile
*** omniORBpy-2.0.orig/python/GNUmakefile	1999-10-04 17:25:20.000000000 +0000
--- omniORBpy-2.0/python/GNUmakefile	2003-02-28 14:23:42.000000000 +0000
***************
*** 1,3 ****
! TOP=../../../..
! CURRENT=src/lib/omniORBpy/python
! include $(TOP)/config/config.mk
--- 1,9 ----
! TOP=..
! CURRENT=python
! BASE_OMNI_TREE=..
! 
! INSTALL=/usr/bin/install -c
! 
! include $(TOP)/mk/beforeauto.mk
! include ./dir.mk
! include $(TOP)/mk/afterauto.mk
diff -rc omniORBpy-2.0.orig/python/omniORB/GNUmakefile omniORBpy-2.0/python/omniORB/GNUmakefile
*** omniORBpy-2.0.orig/python/omniORB/GNUmakefile	1999-10-04 17:25:19.000000000 +0000
--- omniORBpy-2.0/python/omniORB/GNUmakefile	2003-02-28 14:23:43.000000000 +0000
***************
*** 1,3 ****
! TOP=../../../../..
! CURRENT=src/lib/omniORBpy/python/omniORB
! include $(TOP)/config/config.mk
--- 1,9 ----
! TOP=../..
! CURRENT=python/omniORB
! BASE_OMNI_TREE=../..
! 
! INSTALL=/usr/bin/install -c
! 
! include $(TOP)/mk/beforeauto.mk
! include ./dir.mk
! include $(TOP)/mk/afterauto.mk