14c61c93dSmrgXCOMM platform:  $XdotOrg: xc/config/cf/ibm.cf,v 1.2 2004/04/23 18:41:58 eich Exp $
211d341caSmrgXCOMM platform:  $Xorg: ibm.cf,v 1.3 2000/08/17 19:41:47 cpqbld Exp $
311d341caSmrg
411d341caSmrg#ifndef OSName
511d341caSmrg# define OSName		DefaultOSName
611d341caSmrg#endif
711d341caSmrg#ifndef OSMajorVersion
811d341caSmrg# define OSMajorVersion	DefaultOSMajorVersion
911d341caSmrg#endif
1011d341caSmrg#ifndef OSMinorVersion
1111d341caSmrg# define OSMinorVersion	DefaultOSMinorVersion
1211d341caSmrg#endif
1311d341caSmrg#ifndef OSTeenyVersion
1411d341caSmrg# ifdef DefaultOSTeenyVersion
1511d341caSmrg#  define OSTeenyVersion	DefaultOSTeenyVersion
1611d341caSmrg# elif (OSMajorVersion == 4) && (OSMinorVersion == 1)
1711d341caSmrg#  define OSTeenyVersion	3
1811d341caSmrg# else
1911d341caSmrg#  define OSTeenyVersion	0
2011d341caSmrg# endif
2111d341caSmrg#endif
2211d341caSmrgXCOMM operating system:  OSName (OSMajorVersion.OSMinorVersion.OSTeenyVersion)
2311d341caSmrg
2411d341caSmrg#define RemoveFiles(files) for f in files; do RemoveFile($$f); done
2511d341caSmrg
2611d341caSmrg#if (OSMajorVersion > 4)
2711d341caSmrg#  define HasSnprintf YES
2811d341caSmrg#  define HasStrcasecmp	YES
2911d341caSmrg#endif
3011d341caSmrg#if OSMajorVersion > 3 || (OSMajorVersion == 3 && OSMinorVersion >= 2)
3111d341caSmrg#define HasBSD44Sockets		YES
3211d341caSmrg#define HasPutenv		YES
3311d341caSmrg#define HasPlugin		YES
3411d341caSmrg/*
3511d341caSmrg * If you do not have threads support installed, put
3611d341caSmrg * #define HasPosixThreads	NO
3711d341caSmrg * in the BeforeVendorCF section of your site.def.
3811d341caSmrg */
3911d341caSmrg#if !defined(HasPosixThreads) && ((OSMajorVersion == 3 && (OSMinorVersion > 2 || (OSMinorVersion == 2 && OSTeenyVersion > 4))) || (OSMajorVersion == 4 && (OSMinorVersion > 1 || (OSMinorVersion == 1 && OSTeenyVersion > 1))) || (OSMajorVersion >= 5))
4011d341caSmrg#define HasPosixThreads		YES
4111d341caSmrg#endif
4211d341caSmrg#if HasPosixThreads
4311d341caSmrg#ifndef ThreadedX
4411d341caSmrg#define ThreadedX		YES
4511d341caSmrg#define MTSafeAPIDefines	-DXUSE_MTSAFE_API -DXUSE_NETDB_R_API
4611d341caSmrg#endif
4711d341caSmrg#endif
4811d341caSmrg#endif /* OS > 3.2 */
4911d341caSmrg
5011d341caSmrg#define NeedConstPrototypes	YES
5111d341caSmrg#define NeedFunctionPrototypes	YES
5211d341caSmrg#define NeedNestedPrototypes	YES
5311d341caSmrg#define NeedVarargsPrototypes	YES
5411d341caSmrg
5511d341caSmrg#ifndef XVirtualFramebufferServer
5611d341caSmrg#define XVirtualFramebufferServer YES
5711d341caSmrg#endif
5811d341caSmrg
5911d341caSmrg#if !defined(TermcapLibrary)
6011d341caSmrg#define TermcapLibrary		-lcurses
6111d341caSmrg#endif
6211d341caSmrg
6311d341caSmrg#if !defined(HasPam) && ((OSMajorVersion == 5) && (OSMinorVersion >= 2) || OSMajorVersion > 5)
6411d341caSmrg#define HasPam			YES
6511d341caSmrg#ifndef PamLibraries
6611d341caSmrg#define PamLibraries		-lpam
6711d341caSmrg#endif
6811d341caSmrg#endif
6911d341caSmrg
7011d341caSmrg/*
7111d341caSmrg * For IBM platforms, we must define both the location of the compiler
7211d341caSmrg * and the location of its standard C++ library.  The library location
7311d341caSmrg * is needed to resolve dependent library symbols if we build our own
7411d341caSmrg * C++ shared libraries.
7511d341caSmrg */
7611d341caSmrg
7711d341caSmrg#if !HasGcc2ForCplusplus
7811d341caSmrg# ifndef CplusplusCmd
7911d341caSmrg#  if ThreadedX
8011d341caSmrg#   define CplusplusCmd		xlC_r
8111d341caSmrg#  else
8211d341caSmrg#   define CplusplusCmd		xlC
8311d341caSmrg#  endif
8411d341caSmrg# endif
8511d341caSmrg#endif
8611d341caSmrg
8711d341caSmrg#ifndef CplusplusFilt
8811d341caSmrg# define CplusplusFilt		/usr/lpp/xlC/bin/c++filt
8911d341caSmrg#endif
9011d341caSmrg#ifndef CplusplusLibC
9111d341caSmrg# if ThreadedX
9211d341caSmrg#  define CplusplusLibC		/usr/lpp/xlC/lib/libC.a
9311d341caSmrg# else
9411d341caSmrg#  define CplusplusLibC		/usr/lpp/xlC/lib/libC_r.a
9511d341caSmrg# endif
9611d341caSmrg#endif
9711d341caSmrg#if !HasGcc2ForCplusplus
9811d341caSmrg# ifndef CplusplusDependIncludes
9911d341caSmrg#  define CplusplusDependIncludes -I/usr/lpp/xlC/include
10011d341caSmrg# endif
10111d341caSmrg#endif
10211d341caSmrg
10311d341caSmrg/*
10411d341caSmrg * IBM's xlC refuses to compile files unless their names end in ".C".
10511d341caSmrg * As an alternative to this fix, one could edit /etc/xlC.cfg
1061c80d5b0Smrg * to change the suffix accepted by the compiler, but we prefer not
10711d341caSmrg * requiring users to reconfigure their C++ compilers to make them work.
10811d341caSmrg * We also have to override the default SUFFIXES to defeat the use of
10911d341caSmrg * the builtin .C -> .o file, which doesn't use the right flags.
11011d341caSmrg */
11111d341caSmrg
11211d341caSmrg.SUFFIXES:
11311d341caSmrg.SUFFIXES: .o .c .y .l .s .sh .h .f .Y .L .cxx
11411d341caSmrg
11511d341caSmrg#define NormalLibObjCplusplusCompile(options) test -r $*.C || $(LN) $*.CCsuf $*.C @@\
11611d341caSmrg	$(CXX) -c $(CXXFLAGS) options $*.C
11711d341caSmrg
11811d341caSmrg#define SpecialCplusplusObjectRule(baseobj,basedep,options)		@@\
11911d341caSmrgbaseobj.Osuf:	basedep.CCsuf						@@\
12011d341caSmrg	test -r basedep.C || $(LN) basedep.CCsuf basedep.C		@@\
12111d341caSmrg	$(CXX) -c $(CXXFLAGS) options basedep.C
12211d341caSmrg
12311d341caSmrg
12411d341caSmrg#define BuildLibPathVar		LIBPATH
12511d341caSmrg#define SystemV			YES
12611d341caSmrg#define LdCombineFlags		-r
12711d341caSmrg#define ExecableScripts		YES
12811d341caSmrg#define Malloc0ReturnsNull	YES
12911d341caSmrg#define CppCmd			/usr/ccs/lib/cpp
13011d341caSmrg#define ExpandManNames		YES
13111d341caSmrg#define ExtensionOSDefines	-DXTESTEXT1
13211d341caSmrg
13311d341caSmrg/* IBM cpp has slightly non-standard line directives, but supports -P */
13411d341caSmrg#define CppNoLineInfoOption	-P
13511d341caSmrg
13611d341caSmrg#if OSMajorVersion > 3
13711d341caSmrg#if OSMajorVersion > 4
13811d341caSmrg#define StandardDefines		-DSYSV -DAIXV3 -DAIXV4 -DAIXV5 -D_ALL_SOURCE
13911d341caSmrg#else
14011d341caSmrg#define StandardDefines		-DSYSV -DAIXV3 -DAIXV4 -D_ALL_SOURCE
14111d341caSmrg#endif
14211d341caSmrg#define XawI18nDefines		-DHAS_WCHAR_H -DHAS_ISW_FUNCS
14311d341caSmrg#define ServerExtraDefines	-D_IBM_LFT
14411d341caSmrg#if ThreadedX
14511d341caSmrg#define CcCmd			xlc_r
14611d341caSmrg#else
14711d341caSmrg#define CcCmd			xlc
14811d341caSmrg#endif
14911d341caSmrg#define SystemMTDefines		/* xlc_r defines -D_THREAD_SAFE */
15011d341caSmrg#define ThreadsLibraries	-lpthreads /* xlc_r does -lc_r */
15111d341caSmrg#define ThreadsCplusplusLibraries	-lpthreads
15211d341caSmrg#define AvoidNullMakeCommand	YES
15311d341caSmrg#define NullMakeCommand		@ echo
15411d341caSmrg/* AIX 4 appends all MAKEFLAGS (even dups), so cannot pass on command line. */
15511d341caSmrg#define ConstructMFLAGS		NO
15611d341caSmrg#define LdPreLib		_Use(-L$(USRLIBDIR),-L$(BUILDLIBDIR))
15711d341caSmrg#define ExtraFilesToClean	*.inp
15811d341caSmrg#else 	/* OSMajorVersion < 4 */
15911d341caSmrg#define StandardDefines         -DSYSV -DAIXV3 -D_ALL_SOURCE
16011d341caSmrg#define ServerExtraDefines	-D_IBM_HFT
16111d341caSmrg#define CcCmd			xlc
16211d341caSmrg#define ThreadPreStdAPIDefines	-DXPRE_STANDARD_API
16311d341caSmrg#define SystemMTDefines		-D_THREAD_SAFE
16411d341caSmrg#define ThreadsLibraries	-lpthreads -lc_r
16511d341caSmrg#endif	/* OSMajorVersion */
16611d341caSmrg
16711d341caSmrg#define OPERATING_SYSTEM 	AIX /* directory name under server/ddx/ibm/ */
16811d341caSmrg#define InstallCmd              /usr/ucb/install
16911d341caSmrg#include <ibmLib.rules>
17011d341caSmrg
17111d341caSmrg#ifndef ManKeywordsTarget
17211d341caSmrg#define ManKeywordsTarget(manpath)					@@\
17311d341caSmrgman_keywords::								@@\
17411d341caSmrg	/usr/lib/makewhatis $(DESTDIR)manpath
17511d341caSmrg#endif
17611d341caSmrg
17711d341caSmrg#define DtMailDefines		\
17811d341caSmrg  -DI_HAVE_NO_BOOL -DI_HAVE_SELECT_H \
17911d341caSmrg  -DBIG_ENDIAN -DSTRCASECMP_NOT_DEFINED -DDO_ANONYMOUS_MAP -DSENDMAIL_LOCKS \
18011d341caSmrg  -DMAILGROUP_REQUIRED -DMAIL_SPOOL_PATH=\"/var/spool/mail/%s\"
18111d341caSmrg
18211d341caSmrg#define ArchitectureDefines	-DIBM_ARCHITECTURE
18311d341caSmrg
18411d341caSmrg#define ExportListGenSource	elistgen.ibm
18511d341caSmrg
18611d341caSmrg#define CdeProjectDefines \
18711d341caSmrg	-D_AIX -D__AIX -D__aix -D_aix -Daix -DMULTIBYTE -DNLS16 -DMESSAGE_CAT \
18811d341caSmrg	-DOSMAJORVERSION=OSMajorVersion -DOSMINORVERSION=OSMinorVersion -DAIX
18911d341caSmrg
19011d341caSmrg/*
19111d341caSmrg * -D__STR31__ disables inlining of memcpy to work around optimization bug
19211d341caSmrg * in XLC v1.2.0.7. Bug report filed as PMR 8X196, branch 060.
19311d341caSmrg */
19411d341caSmrg#ifndef OptimizedCDebugFlags
19511d341caSmrg#define OptimizedCDebugFlags	-O -D__STR31__ -DNDEBUG
19611d341caSmrg#endif
19711d341caSmrg
19811d341caSmrg#define CdeTicDefines	-DHAS_KNL -DHAS_KTAB
199