1 XCOMM $TOG: Imakefile /main/21 1999/03/01 18:26:06 mgreess $
3 #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)'
5 SUBDIRS = config $(XDMSUBDIRS) $(BLSSUBDIRS) $(AFSSUBDIRS)
8 XINOPT = -DUSE_XINERAMA
9 XINLIB = -lDtXinerama -lXinerama
12 MakeSubdirs($(SUBDIRS))
13 DependSubdirs($(SUBDIRS))
16 XDMCONFIGDIR = XdmConfigurationSubdirectory
17 XDMSUBDIRS = $(XDMCONFIGDIR) bootxutil
20 /* please list any new dtlogin headers for use by krb and rgy */
21 HEADERS = dm.h vg.h vglogo.h vgmsg.h vgproto.h
24 DESDEFS = -DHASDES -DHASXDMAUTH -DSILLYEXPORTRULE
40 # define UsePamLibrary NO
53 #ifdef SunArchitecture
54 SOLARIS_SRCS = solaris.c
55 SOLARIS_OBJS = solaris.o
61 #if defined(SunArchitecture) && !UsePamLibrary
62 /* Unsure when libauth went away */
63 # if (OSMajorVersion == 5) && (OSMinorVersion < 5)
72 XDMDIR = $(CDE_LOGFILES_TOP)
74 /****************** DTLOGIN ARCHIVE SECTION *****************
75 A better long-term solution is a dtgreet subdirectory since dtgreet
76 is built with shared libraries.
77 dtlogin is always built archived in HP because of
78 its importance for user startup. DEPLIBS needs to be explicitly set
79 because default is null DEPLIBS for shared libraries.
80 Does this need to be ifdef'd hp? */
82 LOGINDEPXMULIB = $(DEPXMULIB)
83 LOGINXMULIB = $(XMULIB)
84 LOGINDEPXLIB = $(DEPXLIB)
88 # if (! defined(UseInstalled)) && (! defined(UseMitLibrariesFromSystemOnly))
90 LOGINDEPXMULIB = $(XMUSRC)/libXmu.a
91 LOGINXMULIB = $(LOGINDEPXMULIB)
92 LOGINDEPXLIB = $(XLIBSRC)/libX11.a
93 LOGINXLIB = $(LOGINDEPXLIB)
94 /* This is really a kludge !! */
95 LOGINLDOPTIONS = -Wl,-a archive
98 # if OSMajorVersion >= 10
103 #if defined(SunArchitecture)
104 /* note: libcmd.a is a Sun static private lib for login related work.
105 * It should come before $(PAM_LIB) in link line, at least when compiled
106 * on Solaris 2.4 and run on Solaris 2.5. In Solaris 2.4 some of
107 * libcmd.a functions are also in libauth.so. But on Solaris 2.5
108 * these Sun private functions have been removed from libauth.so. */
109 SYS_LIBRARIES = -lm -ldl -lgen -lresolv -lC -lbsm -lcmd $(PAM_LIB)
110 EXTRA_DEFINES = -DPAM
114 EXTRA_DEFINES = -DPAM
118 #if defined(USLArchitecture)
119 SYS_LIBRARIES = -lm -ldl -lgen -lresolv
122 #if defined(UXPArchitecture)
123 SYS_LIBRARIES = -lm -ldl -lgen -lresolv
126 #if defined(RsArchitecture)
130 #ifdef AlphaArchitecture
131 SYS_LIBRARIES = -lm -lXdmcp
134 #if defined(LinuxArchitecture) || \
135 defined(FreeBSDArchitecture) || defined(NetBSDArchitecture)
136 SYS_LIBRARIES = -lm -lcrypt
137 EXTRA_DEFINES = $(XINOPT)
138 LOGINXLIB = $(XLIB) $(XINLIB)
139 /* just use the system provided Xau and Xdmcp*/
144 /* Add in freetype header locations, required for modern Motif libs */
145 #ifdef LinuxArchitecture
146 INCLUDES = -I/usr/include/freetype2
149 #if defined(BSDArchitecture)
150 INCLUDES = -I$(XPROJECTROOT)/include/freetype2
153 /**************************************************************************
155 * Source and object modules
157 * SRCS1 = Dtlogin sources
158 * OBJS1 = Dtlogin objects
160 * SRCS2 = Dtgreet sources
161 * OBJS2 = Dtgreet objects
163 * SRCS3 = Dtchooser sources
164 * OBJS3 - Dtchooser objects
166 **************************************************************************/
170 SRCS1 = access.c account.c auth.c genauth.c daemon.c dm.c \
171 dpylist.c error.c file.c mitauth.c protodpy.c policy.c \
172 reset.c resource.c server.c session.c socket.c util.c \
173 verify.c version.c apollo.c sysauth.c fontpath.c $(DESSRCS) \
174 qualify.c usl_ptty.c choose.c netaddr.c xdmcp.c \
175 $(PAM_SRCS) $(SOLARIS_SRCS)
177 OBJS1 = access.o account.o auth.o genauth.o daemon.o dm.o \
178 dpylist.o error.o file.o mitauth.o protodpy.o policy.o \
179 reset.o resource.o server.o session.o socket.o util.o \
180 verify.o version.o apollo.o sysauth.o fontpath.o $(DESOBJS) \
181 qualify.o usl_ptty.o choose.o netaddr.o xdmcp.o \
182 $(PAM_OBJS) $(SOLARIS_OBJS)
185 #ifdef AlphaArchitecture
186 SRCS2 = vgcallback.c vglogo.c vgmain.c vgutil.c \
187 vgversion.c vgapollo.c vglang.c vgsiaform.c
188 OBJS2 = vgcallback.o vglogo.o vgmain.o vgutil.o \
189 vgversion.o vgapollo.o vglang.o vgsiaform.o
191 SRCS2 = vgcallback.c vglogo.c vgmain.c vgutil.c \
192 vgversion.c vgapollo.c vglang.c
193 OBJS2 = vgcallback.o vglogo.o vgmain.o vgutil.o \
194 vgversion.o vgapollo.o vglang.o
198 SRCS3 = chooser.c dtchooser.c vglogo.c vgutil.c \
199 vgcallback.c vglang.c
200 OBJS3 = chooser.o dtchooser.o vglogo.o vgutil.o \
201 vgcallback.o vglang.o
203 PROGRAMS = $(PROG1) $(PROG2) $(PROG3)
205 /**************************************************************************
209 **************************************************************************/
211 #if defined (SunArchitecture)
212 NATIVEXBINDIR = /usr/openwin/bin
213 #elif defined(FreeBSDArchitecture)
214 NATIVEXBINDIR = /usr/local/bin
215 #elif defined(OpenBSDArchitecture)
216 NATIVEXBINDIR = /usr/X11R6/bin
217 #elif defined(NetBSDArchitecture)
218 NATIVEXBINDIR = /usr/X11R7/bin
220 NATIVEXBINDIR = /usr/bin/X11
223 SIGDEFS = $(SIGNAL_DEFINES)
225 XBINDIR = $(XPROJECTROOT)/bin
226 OSMAJORVERSION = OSMajorVersion
227 OSMINORVERSION = OSMinorVersion
228 DTDEFINES = $(DESDEFS) ConnectionFlags \
229 -DBINDIR=\"$(XBINDIR)\" -DXDMDIR=\"$(XDMDIR)\" $(SIGDEFS) \
230 -DOSMAJORVERSION=$(OSMAJORVERSION) \
231 -DOSMINORVERSION=$(OSMINORVERSION) \
232 -DCDE_INSTALLATION_TOP=\"$(CDE_INSTALLATION_TOP)\" \
233 -DCDE_CONFIGURATION_TOP=\"$(CDE_CONFIGURATION_TOP)\"
235 #if defined (HPArchitecture)
236 DEFINES = $(DTDEFINES) -D_XPG2 -DAUDIT -DBYPASSLOGIN ServerExtraDefines
237 #elif defined (RsArchitecture)
238 DEFINES = $(DTDEFINES) -D_ILS_MACROS -DBSD44SOCKETS \
239 -D__NetBSD__ -DENABLE_DYNAMIC_LANGLIST
240 #elif defined (AlphaArchitecture)
241 DEFINES = $(DTDEFINES) -DXDMCP -DSIA
243 DEFINES = $(DTDEFINES) -D_NO_PROTO
247 XCOMM Special definitions for compiling default resources; these parameters
248 XCOMM should be set in util/imake.includes/site.def or the appropriate .macros
249 XCOMM file in that directory. The lack of initial spaces is to prevent imake
250 XCOMM from accidently turning the lines into rules by putting a leading tab.
252 XCOMM Do NOT change these lines!
254 DEF_SERVER = $(XBINDIR)/X
255 DEF_USER_PATH = DefaultUserPath:/usr/ccs/bin:$(NATIVEXBINDIR):$(XBINDIR)
256 DEF_SYSTEM_PATH = DefaultSystemPath:$(NATIVEXBINDIR):$(XBINDIR)
257 BOURNE_SHELL = DefaultSystemShell
259 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
260 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
262 RES_DEFINES = '-DDEF_SERVER_LINE=":0 Local local $(DEF_SERVER) :0"' \
263 '-DXRDB_PROGRAM="$(XBINDIR)/xrdb"' \
264 '-DDEF_USER_PATH="$(DEF_USER_PATH)"' \
265 '-DDEF_SYSTEM_PATH="$(DEF_SYSTEM_PATH)"' \
266 '-DDEF_FAILSAFE_CLIENT="$(XBINDIR)/xterm"' \
267 '-DDEF_AUTH_FILE="$(XDMDIR)/auth-server"' \
268 '-DDEF_AUTH_DIR="$(XDMDIR)"' \
269 '-DCPP_PROGRAM="$(CPP_PROGRAM)"' \
270 '-DDEF_PM_SEARCH_PATH="$(DEF_PM_PATH)"' \
271 '-DDEF_BM_SEARCH_PATH="$(DEF_BM_PATH)"'
274 XCOMM These -D flags had to be taken out of the RES_DEFINES macro in order
275 XCOMM to get around a buffer limitation in the Sun C compiler code generation
276 XCOMM phase. The code generation phase creates a temporary assembler file
277 XCOMM containing the command line to the compiler and all the .ident pragmas.
278 XCOMM With resent changes to the Imakefile, the command line had gotten so
279 XCOMM long that it exceeded an internal buffer length resulting in errors in
280 XCOMM the generated assembler code. The EXTRA_RES_DEFINES were extracted
281 XCOMM from the RES_DEFINES macro in order to shorten the command line on
282 XCOMM the Sun platform. These particular -D flags were chosen as the
283 XCOMM least likely to change or be system dependent.
285 #ifdef SunArchitecture
288 EXTRA_RES_DEFINES = \
289 '-DDEF_SESSION="$(CDE_INSTALLATION_TOP)/bin/Xsession"' \
290 '-DDEF_SYSTEM_SHELL="$(BOURNE_SHELL)"' \
291 '-DDEF_CHOOSER="$(CDE_INSTALLATION_TOP)/bin/dtchooser"' \
292 '-DDEF_XDM_CONFIG="Xconfig"'
297 /**************************************************************************
301 * BASE_LIBS1 = dtlogin base libraries
302 * BASE_LIBS2 = dtgreet base libraries
304 **************************************************************************/
307 DEPLIBS1 = $(DEPXAUTHLIB) $(DEPXDMCPLIB) $(LOGINDEPXMULIB) $(LOGINDEPXLIB)
308 DEPLIBS2 = $(DEPDTWIDGETLIB) $(DEPDTSVCLIB) $(DEPTTLIB) $(DEPXMLIB) \
309 $(DEPXTOOLLIB) $(DEPXPLIB) $(DEPXLIB)
310 DEPLIBS3 = $(DEPXDMCPLIB) $(DEPXMLIB) $(DEPXTOOLLIB) $(DEPXPLIB) $(DEPXLIB)
312 BASE_LIBS1 = $(XAUTHLIB) $(LOGINXMULIB) $(XDMCPLIB) $(LOGINXLIB)
313 BASE_LIBS2 = $(DTWIDGETLIB) $(DTSVCLIB) $(TTLIB) $(XMLIB) \
314 $(XTOOLLIB) $(XPLIB) $(XLIB) $(XINLIB)
315 BASE_LIBS3 = $(DTWIDGETLIB) $(DTSVCLIB) $(TTLIB) $(XDMCPLIB) $(XMLIB) \
316 $(XTOOLLIB) $(XPLIB) $(XLIB) $(XINLIB)
318 LOCAL_LIBRARIES1 = $(BASE_LIBS1) $(IAFSYSLIB)
319 LOCAL_LIBRARIES2 = $(BASE_LIBS2)
320 LOCAL_LIBRARIES3 = $(BASE_LIBS3)
323 /* USL needs to resolve all Xt symbols invoked by Xmu at shared
325 * Likewise for the BMS references from libDt for vuegreet.
327 #if defined(USLArchitecture)
328 # if HasSharedLibraries
329 BASE_LIBS1 = $(XAUTHLIB) $(LOGINXMULIB) $(XDMCPLIB) $(XTOOLLIB) \
331 BASE_LIBS2 = $(DTWIDGETLIB) $(DTSVCLIB) $(TTLIB) \
332 $(XMLIB) $(XTOOLLIB) $(XPLIB) $(XLIB)
336 #if defined(UXPArchitecture)
337 # if HasSharedLibraries
338 BASE_LIBS1 = $(XAUTHLIB) $(LOGINXMULIB) $(XDMCPLIB) $(XTOOLLIB) \
340 BASE_LIBS2 = $(DTWIDGETLIB) $(DTSVCLIB) $(TTLIB) \
341 $(XMLIB) $(XTOOLLIB) $(XPLIB) $(XLIB)
347 /**************************************************************************
349 * Extra things for the HP-UX BLS version
351 **************************************************************************/
354 # ifdef HPArchitecture
355 # if (OSMajorVersion == 8) && (OSMinorVersion == 8)
364 EXTRA_DEFINES = -UAUDIT -D_NO_PROTO
365 EXTRA_CFLAGS = -Wp,-H256000
366 EXTRA_LIBRARIES = $(BLSLIBSRC)/libbls.a -lsec ExtraLibraries
367 STD_CPP_DEFINES = -DSYSV -DBLS
372 /**************************************************************************
374 * Extra things for the Kerberos/AFS version (dtlogin.krb)
376 **************************************************************************/
382 KRBLIBSRC = $(LIBSRC)/krb
383 DEPKRBLIB = $(KRBLIBSRC)/libkrb.a
384 KRBLIB = $(DEPKRBLIB)
386 DESLIBSRC = $(LIBSRC)/des
387 DEPDESLIB = $(DESLIBSRC)/libdes.a
388 DESLIB = $(DEPDESLIB)
390 KRBINCLUDESRC = $(KRBLIBSRC)/include
392 AFSINCLUDESRC = $(AFSLIBSRC)
393 EXTRA_INCLUDES = -I$(KRBINCLUDESRC) -I$(AFSINCLUDESRC)
394 EXTRA_DEFINES = -D__KERBEROS -D__AFS
396 LOCAL_LIBRARIES1 = $(BASE_LIBS1) \
399 $(AFSLIBSRC)/libafsutil.a \
400 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libdes.a
402 LOCAL_LIBRARIES2 = $(BASE_LIBS2) \
404 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libkauth.a \
405 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libprot.a \
406 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libubik.a \
407 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libauth.a \
408 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/librxkad.a \
409 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libsys.a \
410 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libdes.a \
411 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/librx.a \
412 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/liblwp.a \
413 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libcom_err.a \
414 $(AFSLIBSRC)/libafsutil.a \
420 /**************************************************************************
422 * Extra things for the Passwd Etc. version (dtlogin.rgy)
424 **************************************************************************/
427 EXTRA_INCLUDES = -I$(RGYINCLUDESRC)
428 EXTRA_DEFINES = -D__PASSWD_ETC +e
429 EXTRA_LIBRARIES = $(RGYLIB) $(NCKLIB) -lndbm -lBSD ExtraLibraries
434 /**************************************************************************
436 * Extra things for Dtge
438 * HIDDEN_SYMBOLS1 = dtlogin hidden symbols
439 * HIDDEN_SYMBOLS2 = dtgreet hidden symbols
441 **************************************************************************/
443 #ifdef HPArchitecture
446 HIDDEN_SYMBOLS1 = -h _main -h _BecomeDaemon -h _GetHourGlass \
448 HIDDEN_SYMBOLS2 = -h _main -h _LogError -h _PingServer
452 HIDDEN_SYMBOLS1 = -h main -h BecomeDaemon -h GetHourGlass \
454 HIDDEN_SYMBOLS2 = -h main -h LogError -h PingServer
461 /**************************************************************************
465 **************************************************************************/
467 #if defined(USE_KRB) || defined(USE_RGY)
469 @for i in $(SRCS1) $(SRCS2) $(HEADERS); do \
471 echo "linking $(DTLOGINSRC)/$$i to $$i";\
472 ln -f -s $(DTLOGINSRC)/$$i .; \
477 ComplexProgramTarget_1($(PROG1),$(LOCAL_LIBRARIES1), $(LOGINLDOPTIONS))
478 ComplexProgramTarget_2($(PROG2),$(LOCAL_LIBRARIES2), /**/)
479 ComplexProgramTarget_3($(PROG3),$(LOCAL_LIBRARIES3), /**/)
482 /* Problem with "-O" in dtgreet ... wrong size login widget. */
483 /* Override "-O" (xO2) with "-xO1". */
486 $(CC) -c $(CFLAGS) -xO1 $(_NOOP_) $*.c
489 SpecialObjectRule(resource.o, $(ICONFIGFILES), $(EXTRA_RES_DEFINES) $(RES_DEFINES) $(CCINLIBS))
490 #ifdef HPArchitecture
492 SpecialObjectRule(session.o,,+O1 $(CCINLIBS))
496 #if !defined(USE_KRB) && !defined(USE_RGY)
498 LOCAL_CPP_DEFINES = -DCDE_CONFIGURATION_TOP=$(CDE_CONFIGURATION_TOP) \
499 -DCDE_INSTALLATION_TOP=$(CDE_INSTALLATION_TOP) \
500 -DCDE_LOGFILES_TOP=$(CDE_LOGFILES_TOP)
502 #endif /* USE_KRB && USE_RGY */
505 MakeDirectories(install,$(XDMDIR))
509 * Don't install; let people read the instructions about putting in the
510 * abort-display() resource:
513 InstallProgramWithFlags(xdmshell,$(XBINDIR), /**/)
516 #if !defined(USE_KRB) && !defined(USE_RGY)
517 /***** For dtge make a client_OBJS.o using client_main.o ******/
518 /***** This implies the existence of client_main.c ******/
519 # ifdef BuildHugeObject
520 # if defined (HPArchitecture) && ! defined (BLS)
521 SpecialRelocatableTarget(dtlogin,$(HIDDEN_SYMBOLS1),$(OBJS1))
522 SpecialRelocatableTarget(dtgreet,$(HIDDEN_SYMBOLS2),$(OBJS2))