XCOMM $TOG: DtInfo.tmpl /main/37 1997/09/05 11:31:26 samborn $ XCOMM OLIAS project common makefile /* Chain project template files. */ #include #define CdeDesktop XCOMM #define BuildOutsideCde #ifdef BuildOutsideCde XCOMM These are set by default when building outside of the CDE source XCOMM tree. Some use-installed support needs to be implemented for all XCOMM cases, however, once CDE build integration and revamped CDE Imake XCOMM config based on X11R6 is complete. # ifndef UseInstalledCde XCOMM build using installed Motif and CDE libs and headers # define UseInstalledCde # endif # ifndef UseInstalled XCOMM build using installed X11 libs and headers # define UseInstalled # endif # ifndef BuildLocalInfolibs XCOMM infolib(s) built from local subtree # define BuildLocalInfolibs # endif # ifndef BuildStandalonePackaging XCOMM provide for independent (non-cde) packaging # define BuildStandalonePackaging # endif # ifndef InstallMultiPlatform XCOMM have multiple platforms run out of the same install tree, XCOMM sharing everything except binary parts # define InstallMultiPlatform # endif #endif #ifdef CdeDesktop XCOMM Provide flags for CDE desktop facilities explicitly if CDE context. XCOMM (Note, these will assume a post-CDE 1.0 functional revision level.) # define DtinfoClient # define UseMotifXpm # define UseTooltalk XCOMM X11 R6 session management # define UseSessionMgmt #endif #ifdef DtinfoClient XCOMM Turn off all flags not applicable to CDE dtinfo client, XCOMM and turn on those that are: XCOMM -- search engine # define UseDtSearch # ifdef UseQSearch # undef UseQSearch # endif # ifdef UseFulcrum # undef UseFulcrum # endif XCOMM -- canvas and/or rendering engine # define UseDtCanvas # ifdef UseTmlRenderer # undef UseTmlRenderer # endif XCOMM -- remote connections # ifdef UsePython # undef UsePython # endif XCOMM -- specific license managers # ifdef DoLicenseManagement # undef DoLicenseManagement # endif XCOMM -- special libraries # ifdef UseRWClasses # undef UseRWClasses # endif #endif #define WideCharSupport #define UseWideChars #define Internationalize #define JapaneseLocal #ifdef DtinfoClient DTINFO_DEFINES=-DDtinfoClient -DUseMotifXpm -DUseTooltalk -DUseSessionMgmt #elif defined(CdeDesktop) DTINFO_DEFINES=-DUseMotifXpm -DUseTooltalk -DUseSessionMgmt #else DTINFO_DEFINES= #endif #ifdef UseWideChars WIDEC_DEFINES=-DUseWideChars #else WIDEC_DEFINES= #endif #ifdef Internationalize I18N_DEFINES=-DInternationalize #else I18N_DEFINES= #endif #ifdef UseQSearch XCOMM The QSearch Japanese-language search engine is available only on XCOMM Solaris, so only enable it there. SEARCH_DEFINES=-DUseQSearch #elif defined(UseDtSearch) SEARCH_DEFINES=-DDTSEARCH #else SEARCH_DEFINES=-DFULCRUM #endif #ifdef UseDlOpen DLOPEN_DEFINES=-DUseDlOpen #else DLOPEN_DEFINES= #endif #ifdef DoLicenseManagement LM_DEFINES= LM_INCLUDES= #else LM_DEFINES= LM_INCLUDES= #endif #ifdef Purify XCOMM if Purify is defined then set the variable PURIFY - cso 941215 PURIFY=PurifyCmd #endif #ifdef SunArchitecture STATIC=-Bstatic DYNAMIC=-Bdynamic # if (OSMajorVersion == 5) EXTRA_LIBRARIES=$(DYNAMIC) ExtraLibraries -lresolv # endif # if (OSMajorVersion == 4) # define BuildPython # endif #endif #ifdef UXPArchitecture STATIC=-Bstatic DYNAMIC=-Bdynamic EXTRA_LIBRARIES=$(DYNAMIC) ExtraLibraries -lgen #endif #ifdef HPArchitecture STATIC=-Wl,-a,archive DYNAMIC=-Wl,-a,shared # define NeedLocalAlloca #endif XCOMM set platform subdir finder #ifdef HAL32V7Architecture PLATFORM=halos # define DoLicenseManagement #elif defined(HPArchitecture) PLATFORM=hpux #elif defined(AIXArchitecture) PLATFORM=aix #elif defined(UXPArchitecture) PLATFORM=uxpds #elif defined(AlphaArchitecture) PLATFORM=digital #elif defined(USLArchitecture) PLATFORM=usl #elif defined(SVR4Architecture) && defined(i386Architecture) PLATFORM=usl #elif defined(SystemV4) && defined(i386) PLATFORM=solaris-386 #elif defined(SystemV4) PLATFORM=solaris #else PLATFORM=sunos #endif XCOMM end set platform subdir finder OLIAS = $(PROGRAMSRC)/dtinfo CONTROL=$(OLIAS)/control LIBRARY = $(OLIAS)/library #ifdef UseTmlRenderer TML = $(OLIAS)/tml #endif WWL = $(OLIAS)/dtinfo/wwl MMDB = $(CDELIBSRC)/DtMmdb EXCEPTIONS = $(MMDB)/dti_excs TOOLS = $(OLIAS)/tools UAS = $(OLIAS)/dtinfo/src/UAS LIBCHECK = $(SHELL) $(CURRENT_DIR)/libcheck $(PLATFORM) #ifdef UsePython XCOMM XCOMM Python-related definitions XCOMM PYTHON_ROOT = $(LIBRARY)/python/unix PYTHON = $(PYTHON_ROOT)/python PYTHON_INCLUDES = -I$(PYTHON_ROOT) -I$(PYTHON_ROOT)/Include PYTHON_LIB_PATH = -L$(PYTHON_ROOT)/Modules -L$(PYTHON_ROOT)/Python -L$(PYTHON_ROOT)/Objects \ -L$(PYTHON_ROOT)/Parser -L$(PYTHON_ROOT)/readline PYTHON_LIBS = $(PYTHON_ROOT)/Modules/config.nomain.o -lModules -lPython -lObjects -lParser -lreadline PYTHON_SYS_LIBS =$(DYNAMIC) -ltermcap -lm #endif #ifdef UseTmlRenderer TML_INCLUDES = -I$(TML)/include TML_LIBS=-L$(TML)/src -ltml #endif WWL_INCLUDES = -I$(WWL)/include WWL_LIBS=$(STATIC) -L$(WWL)/src -lWWL EXCEPTIONS_INCLUDES = -I$(EXCEPTIONS) MMDB_INCLUDES = -I$(MMDB) UAS_INCLUDES = -I$(UAS)/Base #ifdef UseFulcrum FULCRUM_INCLUDES = FulcrumIncludes FULCRUM_DEFINES = FulcrumDefines FULCRUM_LIBDIR = FulcrumLibDir #endif #ifdef UseQSearch QSEARCH_LIBDIR = QSearchLibDir #endif #ifdef UseDtSearch # ifdef UseInstalledCde DTSEARCH_INCLUDES = $(CDEINCLUDES) DTSEARCH_LIBDIR = /usr/dt/lib # elif defined(BuildOutsideCde) DTSEARCH_INCLUDES = -I$(OLIAS)/../../lib/DtSearch DTSEARCH_LIBDIR = $(OLIAS)/../../lib/DtSearch # else DTSEARCH_INCLUDES = -I$(TOP)/exports/include/Dt DTSEARCH_LIBDIR = $(TOP)/exports/lib # endif #endif XCOMM BuildTools Include macros GLOBAL_INCLUDES=-I$(OLIAS)/dtinfogen/global/ #ifdef UseFulcrum # if defined(AIXArchitecture) || defined(RsArchitecture) XCOMM -- Need to add something here to circumvent lack of XCOMM -- LD_LIBRARY_PATH on aix - SWM FULCRUMLIBS=$(LIBRARY)/fulcrum/aix/lib/libftft.010.1.o # else FULCRUMLIBS=$(DYNAMIC) -L$(FULCRUM_LIBDIR) -lftfT # endif #else # ifdef UseQSearch QSEARCHLIBS=$(DYNAMIC) -L$(QSEARCH_LIBDIR) -lftxcall # elif defined(UseDtSearch) DTSEARCHLIBS=$(DYNAMIC) -L$(DTSEARCH_LIBDIR) -lDtSearch # endif #endif MISC_INCLUDES = -I$(MMDB)/misc DTSVC_LIBRARY=$(DYNAMIC) $(CDE_LIBS) -lDtSvc DTSVCLIB=$(DYNAMIC) $(CDE_LIBS) -lDtSvc #ifdef BuildOutsideCde DTHELP_LIBRARY=$(DYNAMIC) -L$(OLIAS)/../../exports/lib -lDtHelp DTHELP_INCLUDES=$(OLIAS)/../../exports/include TREE_INCLUDES=-I$(OLIAS)/../../exports/include -I$(OLIAS)/../../exports/include/Misc #else DTHELP_LIBRARY=$(DYNAMIC) $(CDE_LIBS) -lDtHelp DTHELP_INCLUDES=$(TOP)/exports/include DTPRINTLIB=$(DYNAMIC) $(CDE_LIBS) -lDtPrint TREE_INCLUDES=$(CDEINCLUDES) $(CDEINCLUDES)/Misc #endif #ifdef UseInstalledCde CDEINCLUDES = -I/usr/dt/include CDE_LIBS = -L/usr/dt/lib #else CDEINCLUDES = -I$(TOP)/exports/include CDE_LIBS = -L$(TOP)/exports/lib #endif MTFLIBDIR = $(TOP)/imports/motif/lib BROWSER_INCLUDES=-I.. $(UAS_INCLUDES) $(EXCEPTIONS_INCLUDES) $(WWL_INCLUDES) $(TREE_INCLUDES) $(CDEINCLUDES) #ifdef UseRWClasses RW_LIBDIR=-L$(LIBRARY)/rogue/$(PLATFORM) RW_LIB=-lrwtool RW_INCLUDES=-I$(LIBRARY)/rogue/$(PLATFORM) #endif COMMON_CLASS_LIBDIR=$(STATIC) -L$(MMDB)/dti_cc COMMON_CLASS_LIB=-lcommon_class COMMON_CLASS_INCLUDES=-I$(MMDB)/dti_cc -I$(MMDB) DBUG_INCLUDES= DBUG_LIBS= STYLE_SHEET_INCLUDES=-I$(MMDB)/StyleSheet $(COMMON_CLASS_INCLUDES) TREERES=$(TOOLS)/misc/treeres XCOMM exceptions library EXCLIB =$(STATIC) -L$(EXCEPTIONS) -lexc EXCLIB_C_API =$(STATIC) -L$(EXCEPTIONS) -lC_APIexc MMDB_LIBS=$(STATIC) -L$(OLIAS)/mmdb -lMMDB MMDB_LIBS_C_API=$(DYNAMIC) -L$(MMDB)/lib -lDtMmdb #ifdef UseFulcrum UAS_LIBS = \ $(UAS)/Base/libBase.a \ $(UAS)/MMDB/libMMDB.a \ $(UAS)/Fulcrum/libFulcrum.a #endif MATH_LIB=$(DYNAMIC) -lm MISC_LIB=$(STATIC) -L$(TOOLS)/src -lmisc #ifdef DoLicenseManagement XCOMM Licensing libraries and Include macros XCOMM LICENSE_LROOT is the root of local libraries XCOMM LICENSE_FROOT is the root of the FlexLM (foreign) libraries LICENSE_LROOT=LicenseLocalLibDir LICENSE_FROOT=LicenseForeignLibDir XCOMM Force-load the Mech*.o files so their static initializers get called, XCOMM tying the mechanisms into the licensing system LICENSE_Mechanisms=$(LICENSE_LROOT)/cryptlib/MechFLEXlm.o LICENSE_L_LIBS=$(LICENSE_Mechanisms) -L$(LICENSE_LROOT)/cryptlib -loliascrypt \ -L$(LICENSE_LROOT)/libdes -loliasdes LICENSE_L_INCLUDES=-I$(LICENSE_LROOT) LICENSE_F_INCLUDES=-I$(LICENSE_FROOT)/h #endif XCOMM XCOMM project specific includes go into EXTRA_INCLUDES XCOMM CEXT = c XCOMM XCOMM Installation stuff XCOMM XCOMM PLATFORM_BIN_DIR=$(PLATFORM) PLATFORM_TOOLS_DIR=$(TOOLS)/$(PLATFORM_BIN_DIR) INSTALL_BIN_DIR=$(INSTALL_ROOT)/bin XCOMM the browser binary uses the following, and must not install to XCOMM same place as script by same name, which goes to INSTALL_BIN_DIR. INSTALL_PLATFORM_BIN_DIR=$(INSTALL_BIN_DIR)/$(PLATFORM_BIN_DIR) INSTALL_LIB_DIR=$(INSTALL_ROOT)/lib INSTALL_APPCONFIG_DIR=$(INSTALL_ROOT)/appconfig INSTALL_ETC_DIR=$(INSTALL_INFOLIB_DIR)/etc INSTALL_GPL_LIB_DIR=$(INSTALL_ETC_DIR)/gpl/$(GPL_PRODUCT)/lib #ifdef InstallMultiPlatform INSTALL_PLATFORM_ETC_DIR=$(INSTALL_ETC_DIR)/$(PLATFORM) INSTALL_PLATFORM_LIB_DIR=$(INSTALL_LIB_DIR)/$(PLATFORM) INSTALL_GPL_PLATFORM_BIN_DIR=$(INSTALL_ETC_DIR)/gpl/$(GPL_PRODUCT)/bin/$(PLATFORM) #else INSTALL_PLATFORM_ETC_DIR=$(INSTALL_INFOLIB_DIR)/etc INSTALL_PLATFORM_LIB_DIR=$(INSTALL_LIB_DIR) INSTALL_GPL_PLATFORM_BIN_DIR=$(INSTALL_ETC_DIR)/gpl/$(GPL_PRODUCT)/bin #endif INSTALL_FONTS_DIR=$(INSTALL_ETC_DIR)/fonts INSTALL_STYLES_DIR=$(INSTALL_LIB_DIR)/Styles. XCOMM When installing into the following, the lang value must be inserted XCOMM as the next directory level, due to language-specific content. INSTALL_INFOLIB_DIR=$(INSTALL_ROOT)/infolib INSTALL_BITMAPS_DIR=$(INSTALL_APPCONFIG_DIR)/icons INSTALL_HELP_DIR=$(INSTALL_APPCONFIG_DIR)/help INSTALL_XRESOURCES_DIR=$(INSTALL_ROOT)/app-defaults #ifdef InstallMultiPlatform XCOMM message catalogs as binaries INSTALL_MSG_CAT_DIR=$(INSTALL_LIB_DIR)/nls/msg/$(PLATFORM) #else INSTALL_MSG_CAT_DIR=$(INSTALL_LIB_DIR)/nls/msg #endif #define BigEndianDefines -DOLIAS_BIG_ENDIAN #define LittleEndianDefines -DOLIAS_LITTLE_ENDIAN #define DefaultEndianDefines -DOLIAS_DEFAULT_ENDIAN #ifndef TemplateDB #define TemplateDB Templates.DB #endif XCOMM Following X11 and Mtf defines should be replaced w/ std config #ifndef X11Includes # define X11Includes -I$(TOP)/imports/x11/include #endif #ifndef MtfIncludes # define MtfIncludes -I$(TOP)/imports/motif/include #endif #ifndef MtfLibraries # define MtfLibraries $(DYNAMIC) $(XMLIB) #endif #ifndef X11Libraries # define X11Libraries $(DYNAMIC) $(XTOOLLIB) $(XMULIB) $(XLIB) #endif X11_INCLUDES=X11Includes X11_LIBRARIES=X11Libraries MTF_INCLUDES=MtfIncludes MTF_LIBRARIES=MtfLibraries XMLIB = -L$(MTFLIBDIR) -lXm XTOOLLIB = -L$(TOP)/imports/x11/lib $(XTOOLONLYLIB) $(SMLIB) $(ICELIB) #if defined(SunArchitecture) && CplusplusCompilerMajorVersion > 3 NO_EXC=-noex TEMPLATE_OBJS=*.o.ptrep/TemplateDB//**/*.o TEMPLATE_DB=*.o.ptrep #elif defined(SunArchitecture) && CplusplusCompilerMajorVersion > 2 NO_EXC=-noex TEMPLATE_DB=TemplateDB TEMPLATE_OBJS=TemplateDB//**/*.o #endif #define TemplateObjs $(TEMPLATE_OBJS) #if defined(i386Architecture) || defined(AMD64Architecture) || defined(AlphaArchitecture) || defined(ARMArchitecture) # define ByteOrderDefines LittleEndianDefines #elif defined(HAL32V7Architecture) || defined(SunArchitecture) || defined(AIXArchitecture) || defined(HPArchitecture) || defined(UXPArchitecture) # define ByteOrderDefines BigEndianDefines #else # define ByteOrderDefines DefaultEndianDefines #endif BYTE_ORDER_DEFINES=ByteOrderDefines /* * The following stuffs are default rules required by build_tools * */ install_buildtools::