[omniORB] AIX/egcs Partial Functionality

Gary D. Duzan gdd0@gte.com
Fri, 30 Jul 1999 13:21:33 -0400


------- =_aaaaaaaaaa0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <6722.933355253.1@lion.gte.com>

   I recently managed to get OmniORB 2.8.0pre1 working on AIX 4.2.1
with gcc version 2.95 19990718 (prerelease), or basically the latest
egcs snapshot, but only with staticly linked libraries. It may work
with egcs 1.1.2, but I haven't tested it. egcs/gcc must be built with
--enable-threads, and OmniORB must be built using the enclosed platform
file. I haven't tested it extensively, but it seems to work for eg1,
eg2, omniNames, and nameclt. I won't be able to test it with our
application because of the IDL scoping problems in 2.8.0pre1. If I get
a chance I'll try the same setup with 2.7.1 and see if that works.
Shared libraries just won't work until gcc/egcs fixes the problem.
   Hope this is of some use to someone.

					Gary Duzan
					GTE Laboratories



------- =_aaaaaaaaaa0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <6722.933355253.2@lion.gte.com>
Content-Description: powerpc_aix_4.2_egcs.mk

#
# powerpc_aix_4.2.mk - make variables and rules specific to AIX 4.2 on 
#                      PowerPC.
#

AIX = 1
PowerPCProcessor = 1

#
# Include general unix things
#

include $(THIS_IMPORT_TREE)/mk/unix.mk

#
# C preprocessor macro definitions for this architecture
#

IMPORT_CPPFLAGS = -D__aix__ -D__powerpc__ -D__OSVERSION__=4

#
# Standard programs
#

AR              = ar cq
RANLIB		= ranlib
MKDIRHIER	= /usr/bin/X11/mkdirhier
# INSTALL         = cp         # AIX does not have -p
# or use installbsd
INSTALL_USER  = `id -un`
INSTALL_GROUP = `id -gn`
INSTALL       = installbsd -c -o $(INSTALL_USER) -g $(INSTALL_GROUP)

CMAKEDEPEND     = $(TOP)/$(BINDIR)/omkdepend -D_AIX
CXXMAKEDEPEND   = $(TOP)/$(BINDIR)/omkdepend -D__cplusplus -D_AIX

############################################################################
# Using xlC_r                                                              #
############################################################################

CXX             = g++
CXXDEBUGFLAGS   = -g -mthreads
CXXLINK		= g++

# Use GCC 2.95 (egcs) to compile your C source.
#
CC               = gcc
CLINK           = gcc


# Name all static libraries with -ar.a suffix.
LibPattern = lib%-ar.a
LibSuffixPattern = %-ar.a
LibSearchPattern = -l%-ar

# Name all shared libraries with .a suffix
LibSharedPattern = lib%.a
LibSharedSuffixPattern = %.a
LibSharedSearchPattern = -l%
#
# CORBA stuff
#

# For the moment, gatekeeper feature is disabled with shared library.
# Override the defaults set in unix.mk
#
omniORB2GatekeeperImplementation = OMNIORB2_TCPWRAPGK
#omniORB2GatekeeperImplementation = NO_IMPL

#
# Notice that the version number 2.8 is hardwired in OMNIORB2_LIB.
#
OMNIORB2_LIB = $(patsubst %,$(LibSearchPattern),omniORB2) \
               $(patsubst %,$(LibSearchPattern),omniDynamic2) \
               $(patsubst %,$(LibSearchPattern),omniGK_stub) \
               $(OMNITHREAD_STATIC_LIB) $(SOCKET_LIB)
#OMNIORB2_LIB = $(patsubst %,$(LibSharedSearchPattern),omniORB28) \
#               $(patsubst %,$(LibSharedSearchPattern),omniDynamic28) \
#               $(OMNITHREAD_LIB) $(SOCKET_LIB)
lib_depend := $(patsubst %,$(LibPattern),omniORB2-ar) \
              $(patsubst %,$(LibPattern),omniDynamic2-ar)
#lib_depend := $(patsubst %,$(LibSharedPattern),omniORB28) \
#              $(patsubst %,$(LibSharedPattern),omniDynamic28)
OMNIORB2_LIB_DEPEND1 := $(GENERATE_LIB_DEPEND)
OMNIORB2_LIB_DEPEND = $(OMNIORB2_LIB_DEPEND1) $(OMNITHREAD_LIB_DEPEND)

OMNIORB2_LC_LIB = $(patsubst %,$(LibSearchPattern),omniLC)
#OMNIORB2_LC_LIB = $(patsubst %,$(LibSharedSearchPattern),omniLC3)

CorbaImplementation = OMNIORB2

#
# OMNI thread stuff
#
ThreadSystem = Posix

OMNITHREAD_POSIX_CPPFLAGS = -DNoNanoSleep -DPthreadDraftVersion=8
OMNITHREAD_CPPFLAGS = -I$(TOP)/include -D_REENTRANT -D_THREAD_SAFE
OMNITHREAD_LIB = -lomnithread2
OMNITHREAD_STATIC_LIB = -lomnithread-ar


define CXXExecutable
(set -x; \
 $(RM) $@; \
 $(CXXLINK) -o $@ $(CXXDEBUGFLAGS) $(CXXLINKOPTIONS) $(IMPORT_LIBRARY_FLAGS) \
    $(filter-out $(LibSharedSuffixPattern), $(filter-out $(LibSuffixPattern),$^)) $$libs; \
)
endef

define CExecutable
(set -x; \
 $(RM) $@; \
 $(CLINK) -o $@ $(CLINKOPTIONS) $(IMPORT_LIBRARY_FLAGS) \
    $(filter-out $(LibSharedSuffixPattern), $(filter-out $(LibSuffixPattern),$^)) $$libs; \
)
endef

# Default location of the omniORB2 configuration file [falls back to this if
# the environment variable OMNIORB_CONFIG is not set] :

OMNIORB_CONFIG_DEFAULT_LOCATION = /etc/omniORB.cfg

# Default directory for the omniNames log files.
OMNINAMES_LOG_DEFAULT_LOCATION = /var/omninames

------- =_aaaaaaaaaa0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <6722.933355253.3@lion.gte.com>
Content-Description: config.mk

# Coming into this file, the make variables TOP, CURRENT should have been
# defined.


# Uncomment one of the following platform line to build for the target
# platform
#
#  sun4_sosV_5.5             Solaris 2.5, Sunpro C++/gcc-2.7.2
#  sun4_sosV_5.6             Solaris 2.6, Sunpro C++/gcc-2.7.2
#  sun4_sosV_5.7             Solaris 7, Sunpro C++/gcc-2.7.2
#  i586_linux_2.0            x86 Redhat linux 4.2, gcc-2.7.2
#  alpha_osf1_3.2            Digital Unix 3.2, DEC C++ v5.5
#  alpha_osf1_4.0            Digital Unix 4.0, DEC C++ v6.0
#  powerpc_aix_4.2           IBM AIX 4.2, IBM C Set++
#  hppa_hpux_10.20           HPUX 10.20, aC++ B3910B A.01.04
#  hppa_hpux_11.00           HPUX 11.00, aC++ B3910B A.01.04
#  x86_nt_3.5                x86 Windows NT 3.5, MS VC++ 5.0
#  x86_nt_4.0                x86 Windows NT 4.0, MS VC++ 5.0
#  x86_win95                 Windows 95, MS VC++ 5.0
#  alpha_nt_4.0              Alpha Windows NT 4.0, MS VC++ 5.0
#  i586_linux_2.0_glibc      x86 Redhat linux 5.1,egcs-980302 or later snapshot
#  alpha_linux_2.0           alpha Redhat linux 5.1, egcs-1.1 (when released)
#  powerpc_aix_4.2_egcs      power PC AIX 4.2, egcs-1.0+eh_path
#  m68k_nextstep_3.3         NextStep 3.3, gcc-2.7.2
#  mips_sinux_5.43           Reliant UNIX from Siemens-Nixdorf (SNI)
#  mips_irix_6.2_n32         SGI Irix 6.2 - 32bit mode
#  mips_irix_6.4_n32         SGI Irix 6.4 - 32bit mode
#  mips_irix_6.5_n32         SGI Irix 6.5 - 32bit mode
#  mips_irix_6.5_n64         SGI Irix 6.5 - 64bit mode
#  x86_ets                   Phar Lap Realtime ETS-kernel
#  x86_sco5                  SCO OpenServer 5
#  i386_freebsd_3.2          x86 FreeBSD 3.2, egcs 1.1.2

#platform = sun4_sosV_5.5
#platform = sun4_sosV_5.6
#platform = sun4_sosV_5.7
#platform = i586_linux_2.0
#platform = alpha_osf1_3.2
#platform = alpha_osf1_4.0
#platform = powerpc_aix_4.2
platform = powerpc_aix_4.2_egcs
#platform = hppa_hpux_10.20
#platform = hppa_hpux_11.00
#platform = x86_nt_3.5
#platform = x86_nt_4.0
#platform = x86_win95
#platform = alpha_nt_4.0
#platform = i586_linux_2.0_glibc
#platform = alpha_linux_2.0
#platform = powerpc_aix_4.2_egcs
#platform = m68k_nextstep_3.3
#platform = mips_sinux_5.43
#platform = mips_irix_6.2_n32
#platform = mips_irix_6.4_n32
#platform = mips_irix_6.5_n32
#platform = mips_irix_6.5_n64
#platform = x86_ets
#platform = x86_sco5
#platform = i386_freebsd_3.2

# On Win32 platforms, uncomment the following line to build all the binaries
# with debugging information. Useful if you want to debug the binaries under
# MSVC developer's studio
#
#BuildDebugBinary = 1
#

EXPORT_TREE =  $(TOP)

IMPORT_TREES = $(TOP)

override VPATH := $(subst :, ,$(VPATH))

THIS_IMPORT_TREE := $(TOP)
ifneq ($(wildcard $(THIS_IMPORT_TREE)/mk/beforedir.mk),)
include $(THIS_IMPORT_TREE)/mk/beforedir.mk
endif

ifndef EmbeddedSystem
OMNIORB2_IDL_FPATH = $(TOP)/$(BINDIR)/$(OMNIORB2_IDL)
else
OMNIORB2_IDL_FPATH = $(TOP)/$(HOSTBINDIR)/$(OMNIORB2_IDL)
endif

include dir.mk

THIS_IMPORT_TREE := $(TOP)
ifneq ($(wildcard $(THIS_IMPORT_TREE)/mk/afterdir.mk),)
include $(THIS_IMPORT_TREE)/mk/afterdir.mk
endif


------- =_aaaaaaaaaa0--