XCOMM $TOG: Imakefile /main/21 1999/03/01 18:26:06 mgreess $ #define IHaveSubdirs #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' SUBDIRS = config $(XDMSUBDIRS) $(BLSSUBDIRS) $(AFSSUBDIRS) #if CDE_USEXINERAMA XINOPT = -DUSE_XINERAMA XINLIB = -lDtXinerama -lXinerama #endif MakeSubdirs($(SUBDIRS)) DependSubdirs($(SUBDIRS)) #if InstallXdmConfig XDMCONFIGDIR = XdmConfigurationSubdirectory XDMSUBDIRS = $(XDMCONFIGDIR) bootxutil #endif /* please list any new dtlogin headers for use by krb and rgy */ HEADERS = dm.h vg.h vglogo.h vgmsg.h vgproto.h #if HasXdmAuth DESDEFS = -DHASDES -DHASXDMAUTH -DSILLYEXPORTRULE DESOBJS = xdmauth.o DESSRCS = xdmauth.c #else #if HasDESLibrary DESDEFS = -DHASDES DESOBJS = xdmauth.o DESSRCS = xdmauth.c #else DESDEFS = DESOBJS = DESSRCS = #endif #endif #ifndef UsePamLibrary # define UsePamLibrary NO #endif #if UsePamLibrary PAM_SRCS = pam_svc.c PAM_OBJS = pam_svc.o PAM_LIB = -lpam #else PAM_SRCS = PAM_OBJS = PAM_LIB = #endif #ifdef SunArchitecture SOLARIS_SRCS = solaris.c SOLARIS_OBJS = solaris.o #else SOLARIS_SRCS = SOLARIS_OBJS = #endif #if defined(SunArchitecture) && !UsePamLibrary /* Unsure when libauth went away */ # if (OSMajorVersion == 5) && (OSMinorVersion < 5) PAM_LIB = -lauth # else PAM_SRCS = pam_svc.c PAM_OBJS = pam_svc.o PAM_LIB = -lpam # endif #endif XDMDIR = $(CDE_LOGFILES_TOP) /****************** DTLOGIN ARCHIVE SECTION ***************** A better long-term solution is a dtgreet subdirectory since dtgreet is built with shared libraries. dtlogin is always built archived in HP because of its importance for user startup. DEPLIBS needs to be explicitly set because default is null DEPLIBS for shared libraries. Does this need to be ifdef'd hp? */ /* Defaults */ LOGINDEPXMULIB = $(DEPXMULIB) LOGINXMULIB = $(XMULIB) LOGINDEPXLIB = $(DEPXLIB) LOGINXLIB = $(XLIB) #ifdef HPArchitecture # if (! defined(UseInstalled)) && (! defined(UseMitLibrariesFromSystemOnly)) # ifdef SHLIB LOGINDEPXMULIB = $(XMUSRC)/libXmu.a LOGINXMULIB = $(LOGINDEPXMULIB) LOGINDEPXLIB = $(XLIBSRC)/libX11.a LOGINXLIB = $(LOGINDEPXLIB) /* This is really a kludge !! */ LOGINLDOPTIONS = -Wl,-a archive # endif # endif # if OSMajorVersion >= 10 SYS_LIBRARIES = -lsec # endif #endif #if defined(SunArchitecture) /* note: libcmd.a is a Sun static private lib for login related work. * It should come before $(PAM_LIB) in link line, at least when compiled * on Solaris 2.4 and run on Solaris 2.5. In Solaris 2.4 some of * libcmd.a functions are also in libauth.so. But on Solaris 2.5 * these Sun private functions have been removed from libauth.so. */ SYS_LIBRARIES = -lm -ldl -lgen -lresolv -lbsm -lcmd $(PAM_LIB) EXTRA_DEFINES = -DPAM # if UsePamLibrary EXTRA_DEFINES = -DPAM # endif #endif #if defined(RsArchitecture) SYS_LIBRARIES = -ls #endif #ifdef AlphaArchitecture SYS_LIBRARIES = -lm -lXdmcp #endif #if defined(LinuxArchitecture) || \ defined(FreeBSDArchitecture) || defined(NetBSDArchitecture) SYS_LIBRARIES = -lm -lcrypt EXTRA_DEFINES = $(XINOPT) LOGINXLIB = $(XLIB) $(XINLIB) /* just use the system provided Xau and Xdmcp*/ DEPXAUTHLIB = DEPXDMCPLIB = #endif /* Add in freetype header locations, required for modern Motif libs */ #ifdef LinuxArchitecture INCLUDES = -I/usr/include/freetype2 #endif #if defined(BSDArchitecture) INCLUDES = -I$(XPROJECTROOT)/include/freetype2 #endif /************************************************************************** * * Source and object modules * * SRCS1 = Dtlogin sources * OBJS1 = Dtlogin objects * * SRCS2 = Dtgreet sources * OBJS2 = Dtgreet objects * * SRCS3 = Dtchooser sources * OBJS3 - Dtchooser objects * **************************************************************************/ PROG1 = dtlogin SRCS1 = access.c account.c auth.c genauth.c daemon.c dm.c \ dpylist.c error.c file.c mitauth.c protodpy.c policy.c \ reset.c resource.c server.c session.c socket.c util.c \ verify.c version.c sysauth.c fontpath.c $(DESSRCS) \ qualify.c choose.c netaddr.c xdmcp.c \ $(PAM_SRCS) $(SOLARIS_SRCS) OBJS1 = access.o account.o auth.o genauth.o daemon.o dm.o \ dpylist.o error.o file.o mitauth.o protodpy.o policy.o \ reset.o resource.o server.o session.o socket.o util.o \ verify.o version.o sysauth.o fontpath.o $(DESOBJS) \ qualify.o choose.o netaddr.o xdmcp.o \ $(PAM_OBJS) $(SOLARIS_OBJS) PROG2 = dtgreet #ifdef AlphaArchitecture SRCS2 = vgcallback.c vglogo.c vgmain.c vgutil.c \ vgversion.c vglang.c vgsiaform.c OBJS2 = vgcallback.o vglogo.o vgmain.o vgutil.o \ vgversion.o vglang.o vgsiaform.o #else SRCS2 = vgcallback.c vglogo.c vgmain.c vgutil.c \ vgversion.c vglang.c OBJS2 = vgcallback.o vglogo.o vgmain.o vgutil.o \ vgversion.o vglang.o #endif PROG3 = dtchooser SRCS3 = chooser.c dtchooser.c vglogo.c vgutil.c \ vgcallback.c vglang.c OBJS3 = chooser.o dtchooser.o vglogo.o vgutil.o \ vgcallback.o vglang.o PROGRAMS = $(PROG1) $(PROG2) $(PROG3) /************************************************************************** * * Defines * **************************************************************************/ #if defined (SunArchitecture) NATIVEXBINDIR = /usr/openwin/bin #elif defined(FreeBSDArchitecture) NATIVEXBINDIR = /usr/local/bin #elif defined(OpenBSDArchitecture) NATIVEXBINDIR = /usr/X11R6/bin #elif defined(NetBSDArchitecture) NATIVEXBINDIR = /usr/X11R7/bin #else NATIVEXBINDIR = /usr/bin/X11 #endif SIGDEFS = $(SIGNAL_DEFINES) XBINDIR = $(XPROJECTROOT)/bin OSMAJORVERSION = OSMajorVersion OSMINORVERSION = OSMinorVersion DTDEFINES = $(DESDEFS) ConnectionFlags \ -DBINDIR=\"$(XBINDIR)\" -DXDMDIR=\"$(XDMDIR)\" $(SIGDEFS) \ -DOSMAJORVERSION=$(OSMAJORVERSION) \ -DOSMINORVERSION=$(OSMINORVERSION) \ -DCDE_INSTALLATION_TOP=\"$(CDE_INSTALLATION_TOP)\" \ -DCDE_CONFIGURATION_TOP=\"$(CDE_CONFIGURATION_TOP)\" DEPEND_DEFINES = $(DEPENDDEFINES) #if defined (HPArchitecture) DEFINES = $(DTDEFINES) -D_XPG2 -DAUDIT -DBYPASSLOGIN ServerExtraDefines #elif defined (RsArchitecture) DEFINES = $(DTDEFINES) -D_ILS_MACROS -DBSD44SOCKETS \ -D__NetBSD__ -DENABLE_DYNAMIC_LANGLIST #elif defined (AlphaArchitecture) DEFINES = $(DTDEFINES) -DXDMCP -DSIA #elif defined (LinuxArchitecture) DEFINES = $(DTDEFINES) -DXDMCP #elif defined (OpenBSDArchitecture) DEFINES = $(DTDEFINES) -DXDMCP #elif defined (FreeBSDArchitecture) DEFINES = $(DTDEFINES) -DXDMCP #else DEFINES = $(DTDEFINES) -D_NO_PROTO #endif XCOMM XCOMM Special definitions for compiling default resources; these parameters XCOMM should be set in util/imake.includes/site.def or the appropriate .macros XCOMM file in that directory. The lack of initial spaces is to prevent imake XCOMM from accidently turning the lines into rules by putting a leading tab. XCOMM XCOMM Do NOT change these lines! XCOMM DEF_SERVER = $(XBINDIR)/X DEF_USER_PATH = DefaultUserPath:/usr/ccs/bin:$(NATIVEXBINDIR):$(XBINDIR) DEF_SYSTEM_PATH = DefaultSystemPath:$(NATIVEXBINDIR):$(XBINDIR) BOURNE_SHELL = DefaultSystemShell CPP_PROGRAM = CppCmd DEF_BM_PATH = $(CDE_CONFIGURATION_TOP)/appconfig/icons/%L/%B%M.bm:$(CDE_CONFIGURATION_TOP)/appconfig/icons/%L/%B%M.pm:$(CDE_CONFIGURATION_TOP)/appconfig/icons/%L/%B:$(CDE_CONFIGURATION_TOP)/appconfig/icons/C/%B%M.bm:$(CDE_CONFIGURATION_TOP)/appconfig/icons/C/%B%M.pm:$(CDE_CONFIGURATION_TOP)/appconfig/icons/C/%B:$(CDE_INSTALLATION_TOP)/appconfig/icons/%L/%B%M.bm:$(CDE_INSTALLATION_TOP)/appconfig/icons/%L/%B%M.pm:$(CDE_INSTALLATION_TOP)/appconfig/icons/%L/%B:$(CDE_INSTALLATION_TOP)/appconfig/icons/C/%B%M.bm:$(CDE_INSTALLATION_TOP)/appconfig/icons/C/%B%M.pm:$(CDE_INSTALLATION_TOP)/appconfig/icons/C/%B DEF_PM_PATH=$(CDE_CONFIGURATION_TOP)/appconfig/icons/%L/%B%M.pm:$(CDE_CONFIGURATION_TOP)/appconfig/icons/%L/%B%M.bm:$(CDE_CONFIGURATION_TOP)/appconfig/icons/%L/%B:$(CDE_CONFIGURATION_TOP)/appconfig/icons/C/%B%M.pm:$(CDE_CONFIGURATION_TOP)/appconfig/icons/C/%B%M.bm:$(CDE_CONFIGURATION_TOP)/appconfig/icons/C/%B:$(CDE_INSTALLATION_TOP)/appconfig/icons/%L/%B%M.pm:$(CDE_INSTALLATION_TOP)/appconfig/icons/%L/%B%M.bm:$(CDE_INSTALLATION_TOP)/appconfig/icons/%L/%B:$(CDE_INSTALLATION_TOP)/appconfig/icons/C/%B%M.pm:$(CDE_INSTALLATION_TOP)/appconfig/icons/C/%B%M.bm:$(CDE_INSTALLATION_TOP)/appconfig/icons/C/%B RES_DEFINES = '-DDEF_SERVER_LINE=":0 Local local $(DEF_SERVER) :0"' \ '-DXRDB_PROGRAM="$(XBINDIR)/xrdb"' \ '-DDEF_USER_PATH="$(DEF_USER_PATH)"' \ '-DDEF_SYSTEM_PATH="$(DEF_SYSTEM_PATH)"' \ '-DDEF_FAILSAFE_CLIENT="$(XBINDIR)/xterm"' \ '-DDEF_AUTH_FILE="$(XDMDIR)/auth-server"' \ '-DDEF_AUTH_DIR="$(XDMDIR)"' \ '-DCPP_PROGRAM="$(CPP_PROGRAM)"' \ '-DDEF_PM_SEARCH_PATH="$(DEF_PM_PATH)"' \ '-DDEF_BM_SEARCH_PATH="$(DEF_BM_PATH)"' XCOMM XCOMM These -D flags had to be taken out of the RES_DEFINES macro in order XCOMM to get around a buffer limitation in the Sun C compiler code generation XCOMM phase. The code generation phase creates a temporary assembler file XCOMM containing the command line to the compiler and all the .ident pragmas. XCOMM With resent changes to the Imakefile, the command line had gotten so XCOMM long that it exceeded an internal buffer length resulting in errors in XCOMM the generated assembler code. The EXTRA_RES_DEFINES were extracted XCOMM from the RES_DEFINES macro in order to shorten the command line on XCOMM the Sun platform. These particular -D flags were chosen as the XCOMM least likely to change or be system dependent. XCOMM #ifdef SunArchitecture EXTRA_RES_DEFINES = #else EXTRA_RES_DEFINES = \ '-DDEF_SESSION="$(CDE_INSTALLATION_TOP)/bin/Xsession"' \ '-DDEF_SYSTEM_SHELL="$(BOURNE_SHELL)"' \ '-DDEF_CHOOSER="$(CDE_INSTALLATION_TOP)/bin/dtchooser"' \ '-DDEF_XDM_CONFIG="Xconfig"' #endif /************************************************************************** * * Libraries * * BASE_LIBS1 = dtlogin base libraries * BASE_LIBS2 = dtgreet base libraries * **************************************************************************/ DEPLIBS1 = $(DEPXAUTHLIB) $(DEPXDMCPLIB) $(LOGINDEPXMULIB) $(LOGINDEPXLIB) DEPLIBS2 = $(DEPDTWIDGETLIB) $(DEPDTSVCLIB) $(DEPTTLIB) $(DEPXMLIB) \ $(DEPXTOOLLIB) $(DEPXLIB) DEPLIBS3 = $(DEPXDMCPLIB) $(DEPXMLIB) $(DEPXTOOLLIB) $(DEPXLIB) BASE_LIBS1 = $(XAUTHLIB) $(LOGINXMULIB) $(XDMCPLIB) $(LOGINXLIB) BASE_LIBS2 = $(DTWIDGETLIB) $(DTSVCLIB) $(TTLIB) $(XMLIB) \ $(XTOOLLIB) $(XLIB) $(XINLIB) BASE_LIBS3 = $(DTWIDGETLIB) $(DTSVCLIB) $(TTLIB) $(XDMCPLIB) $(XMLIB) \ $(XTOOLLIB) $(XLIB) $(XINLIB) LOCAL_LIBRARIES1 = $(BASE_LIBS1) $(IAFSYSLIB) LOCAL_LIBRARIES2 = $(BASE_LIBS2) LOCAL_LIBRARIES3 = $(BASE_LIBS3) /************************************************************************** * * Extra things for the HP-UX BLS version * **************************************************************************/ #ifndef BLS # ifdef HPArchitecture # if (OSMajorVersion == 8) && (OSMinorVersion == 8) # define BLS # endif # endif #endif #ifdef BLS BLSSUBDIRS = bls BLSLIBSRC = ./bls EXTRA_DEFINES = -UAUDIT -D_NO_PROTO EXTRA_CFLAGS = -Wp,-H256000 EXTRA_LIBRARIES = $(BLSLIBSRC)/libbls.a -lsec ExtraLibraries STD_CPP_DEFINES = -DSYSV -DBLS #endif /************************************************************************** * * Extra things for the Kerberos/AFS version (dtlogin.krb) * **************************************************************************/ #ifdef USE_KRB AFSSUBDIRS = afs KRBLIBSRC = $(LIBSRC)/krb DEPKRBLIB = $(KRBLIBSRC)/libkrb.a KRBLIB = $(DEPKRBLIB) DESLIBSRC = $(LIBSRC)/des DEPDESLIB = $(DESLIBSRC)/libdes.a DESLIB = $(DEPDESLIB) KRBINCLUDESRC = $(KRBLIBSRC)/include AFSLIBSRC = ./afs AFSINCLUDESRC = $(AFSLIBSRC) EXTRA_INCLUDES = -I$(KRBINCLUDESRC) -I$(AFSINCLUDESRC) EXTRA_DEFINES = -D__KERBEROS -D__AFS LOCAL_LIBRARIES1 = $(BASE_LIBS1) \ $(KRBLIB) \ $(IAFSYSLIB) \ $(AFSLIBSRC)/libafsutil.a \ $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libdes.a LOCAL_LIBRARIES2 = $(BASE_LIBS2) \ $(KRBLIB) \ $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libkauth.a \ $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libprot.a \ $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libubik.a \ $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libauth.a \ $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/librxkad.a \ $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libsys.a \ $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libdes.a \ $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/librx.a \ $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/liblwp.a \ $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libcom_err.a \ $(AFSLIBSRC)/libafsutil.a \ -lBSD #endif /************************************************************************** * * Extra things for the Passwd Etc. version (dtlogin.rgy) * **************************************************************************/ #ifdef USE_RGY EXTRA_INCLUDES = -I$(RGYINCLUDESRC) EXTRA_DEFINES = -D__PASSWD_ETC +e EXTRA_LIBRARIES = $(RGYLIB) $(NCKLIB) -lndbm -lBSD ExtraLibraries #endif /************************************************************************** * * Extra things for Dtge * * HIDDEN_SYMBOLS1 = dtlogin hidden symbols * HIDDEN_SYMBOLS2 = dtgreet hidden symbols * **************************************************************************/ #ifdef HPArchitecture # ifdef __hp9000s300 HIDDEN_SYMBOLS1 = -h _main -h _BecomeDaemon -h _GetHourGlass \ -h _Verify HIDDEN_SYMBOLS2 = -h _main -h _LogError -h _PingServer # else HIDDEN_SYMBOLS1 = -h main -h BecomeDaemon -h GetHourGlass \ -h Verify HIDDEN_SYMBOLS2 = -h main -h LogError -h PingServer # endif #endif /************************************************************************** * * Rules * **************************************************************************/ #if defined(USE_KRB) || defined(USE_RGY) includes:: @for i in $(SRCS1) $(SRCS2) $(HEADERS); do \ $(RM) $$i; \ echo "linking $(DTLOGINSRC)/$$i to $$i";\ ln -f -s $(DTLOGINSRC)/$$i .; \ done #endif ComplexProgramTarget_1($(PROG1),$(LOCAL_LIBRARIES1), $(LOGINLDOPTIONS)) ComplexProgramTarget_2($(PROG2),$(LOCAL_LIBRARIES2), /**/) ComplexProgramTarget_3($(PROG3),$(LOCAL_LIBRARIES3), /**/) #ifdef __ppc /* Problem with "-O" in dtgreet ... wrong size login widget. */ /* Override "-O" (xO2) with "-xO1". */ vgutil.o: $(RM) $@ $(CC) -c $(CFLAGS) -xO1 $(_NOOP_) $*.c #endif SpecialObjectRule(resource.o, $(ICONFIGFILES), $(EXTRA_RES_DEFINES) $(RES_DEFINES) $(CCINLIBS)) #ifdef HPArchitecture #ifndef DEBUGTREE SpecialObjectRule(session.o,,+O1 $(CCINLIBS)) #endif #endif #if !defined(USE_KRB) && !defined(USE_RGY) LOCAL_CPP_DEFINES = -DCDE_CONFIGURATION_TOP=$(CDE_CONFIGURATION_TOP) \ -DCDE_INSTALLATION_TOP=$(CDE_INSTALLATION_TOP) \ -DCDE_LOGFILES_TOP=$(CDE_LOGFILES_TOP) #endif /* USE_KRB && USE_RGY */ #if InstallXdmConfig MakeDirectories(install,$(XDMDIR)) #endif /* * Don't install; let people read the instructions about putting in the * abort-display() resource: */ #ifdef comment InstallProgramWithFlags(xdmshell,$(XBINDIR), /**/) #endif #if !defined(USE_KRB) && !defined(USE_RGY) /***** For dtge make a client_OBJS.o using client_main.o ******/ /***** This implies the existence of client_main.c ******/ # ifdef BuildHugeObject # if defined (HPArchitecture) && ! defined (BLS) SpecialRelocatableTarget(dtlogin,$(HIDDEN_SYMBOLS1),$(OBJS1)) SpecialRelocatableTarget(dtgreet,$(HIDDEN_SYMBOLS2),$(OBJS2)) # endif # endif #endif