1 XCOMM $TOG: Imakefile /main/21 1999/03/01 18:26:06 mgreess $
3 #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)'
5 SUBDIRS = config $(XDMSUBDIRS) $(BLSSUBDIRS) $(AFSSUBDIRS)
7 MakeSubdirs($(SUBDIRS))
8 DependSubdirs($(SUBDIRS))
11 XDMCONFIGDIR = XdmConfigurationSubdirectory
12 XDMSUBDIRS = $(XDMCONFIGDIR) bootxutil
15 /* please list any new dtlogin headers for use by krb and rgy */
16 HEADERS = dm.h vg.h vglogo.h vgmsg.h vgproto.h
19 DESDEFS = -DHASDES -DHASXDMAUTH -DSILLYEXPORTRULE
35 # define UsePamLibrary NO
48 #ifdef SunArchitecture
49 SOLARIS_SRCS = solaris.c
50 SOLARIS_OBJS = solaris.o
56 #if defined(SunArchitecture) && !UsePamLibrary
60 XDMDIR = $(CDE_LOGFILES_TOP)
62 /****************** DTLOGIN ARCHIVE SECTION *****************
63 A better long-term solution is a dtgreet subdirectory since dtgreet
64 is built with shared libraries.
65 dtlogin is always built archived in HP because of
66 its importance for user startup. DEPLIBS needs to be explicitly set
67 because default is null DEPLIBS for shared libraries.
68 Does this need to be ifdef'd hp? */
70 LOGINDEPXMULIB = $(DEPXMULIB)
71 LOGINXMULIB = $(XMULIB)
72 LOGINDEPXLIB = $(DEPXLIB)
76 # if (! defined(UseInstalled)) && (! defined(UseMitLibrariesFromSystemOnly))
78 LOGINDEPXMULIB = $(XMUSRC)/libXmu.a
79 LOGINXMULIB = $(LOGINDEPXMULIB)
80 LOGINDEPXLIB = $(XLIBSRC)/libX11.a
81 LOGINXLIB = $(LOGINDEPXLIB)
82 /* This is really a kludge !! */
83 LOGINLDOPTIONS = -Wl,-a archive
86 # if OSMajorVersion >= 10
91 #if defined(SunArchitecture)
92 /* note: libcmd.a is a Sun static private lib for login related work.
93 * It should come before $(PAM_LIB) in link line, at least when compiled
94 * on Solaris 2.4 and run on Solaris 2.5. In Solaris 2.4 some of
95 * libcmd.a functions are also in libauth.so. But on Solaris 2.5
96 * these Sun private functions have been removed from libauth.so. */
97 SYS_LIBRARIES = -lm -ldl -lgen -lresolv -lC -lbsm -lcmd -lauth $(PAM_LIB)
101 EXTRA_DEFINES = -DPAM
103 EXTRA_DEFINES = -DSUNAUTH
107 #if defined(USLArchitecture)
108 SYS_LIBRARIES = -lm -ldl -lgen -lresolv
111 #if defined(UXPArchitecture)
112 SYS_LIBRARIES = -lm -ldl -lgen -lresolv
115 #if defined(RsArchitecture)
119 #ifdef AlphaArchitecture
120 SYS_LIBRARIES = -lm -lXdmcp
123 #ifdef LinuxArchitecture
124 SYS_LIBRARIES = -lm -lcrypt
127 /**************************************************************************
129 * Source and object modules
131 * SRCS1 = Dtlogin sources
132 * OBJS1 = Dtlogin objects
134 * SRCS2 = Dtgreet sources
135 * OBJS2 = Dtgreet objects
137 * SRCS3 = Dtchooser sources
138 * OBJS3 - Dtchooser objects
140 **************************************************************************/
144 SRCS1 = access.c account.c auth.c genauth.c daemon.c dm.c \
145 dpylist.c error.c file.c mitauth.c protodpy.c policy.c \
146 reset.c resource.c server.c session.c socket.c util.c \
147 verify.c version.c apollo.c sysauth.c fontpath.c $(DESSRCS) \
148 qualify.c usl_ptty.c choose.c netaddr.c xdmcp.c \
149 $(PAM_SRCS) $(SOLARIS_SRCS)
151 OBJS1 = access.o account.o auth.o genauth.o daemon.o dm.o \
152 dpylist.o error.o file.o mitauth.o protodpy.o policy.o \
153 reset.o resource.o server.o session.o socket.o util.o \
154 verify.o version.o apollo.o sysauth.o fontpath.o $(DESOBJS) \
155 qualify.o usl_ptty.o choose.o netaddr.o xdmcp.o \
156 $(PAM_OBJS) $(SOLARIS_OBJS)
159 #ifdef AlphaArchitecture
160 SRCS2 = vgcallback.c vglogo.c vgmain.c vgutil.c \
161 vgversion.c vgapollo.c vglang.c vgsiaform.c
162 OBJS2 = vgcallback.o vglogo.o vgmain.o vgutil.o \
163 vgversion.o vgapollo.o vglang.o vgsiaform.o
165 SRCS2 = vgcallback.c vglogo.c vgmain.c vgutil.c \
166 vgversion.c vgapollo.c vglang.c
167 OBJS2 = vgcallback.o vglogo.o vgmain.o vgutil.o \
168 vgversion.o vgapollo.o vglang.o
172 SRCS3 = chooser.c dtchooser.c vglogo.c vgutil.c \
173 vgcallback.c vglang.c
174 OBJS3 = chooser.o dtchooser.o vglogo.o vgutil.o \
175 vgcallback.o vglang.o
177 PROGRAMS = $(PROG1) $(PROG2) $(PROG3)
179 /**************************************************************************
183 **************************************************************************/
185 #if defined (SunArchitecture)
186 NATIVEXBINDIR = /usr/openwin/bin
188 NATIVEXBINDIR = /usr/bin/X11
191 SIGDEFS = $(SIGNAL_DEFINES)
193 XBINDIR = $(XPROJECTROOT)/bin
194 OSMAJORVERSION = OSMajorVersion
195 OSMINORVERSION = OSMinorVersion
196 DTDEFINES = $(DESDEFS) ConnectionFlags \
197 -DBINDIR=\"$(XBINDIR)\" -DXDMDIR=\"$(XDMDIR)\" $(SIGDEFS) \
198 -DOSMAJORVERSION=$(OSMAJORVERSION) \
199 -DOSMINORVERSION=$(OSMINORVERSION) \
200 -DCDE_INSTALLATION_TOP=\"$(CDE_INSTALLATION_TOP)\" \
201 -DCDE_CONFIGURATION_TOP=\"$(CDE_CONFIGURATION_TOP)\"
203 #if defined (HPArchitecture)
204 DEFINES = $(DTDEFINES) -D_XPG2 -DAUDIT -DBYPASSLOGIN ServerExtraDefines
205 #elif defined (RsArchitecture)
206 DEFINES = $(DTDEFINES) -D_ILS_MACROS -DBSD44SOCKETS \
207 -D__NetBSD__ -DENABLE_DYNAMIC_LANGLIST
208 #elif defined (AlphaArchitecture)
209 DEFINES = $(DTDEFINES) -DXDMCP -DSIA
211 DEFINES = $(DTDEFINES) -D_NO_PROTO
215 XCOMM Special definitions for compiling default resources; these parameters
216 XCOMM should be set in util/imake.includes/site.def or the appropriate .macros
217 XCOMM file in that directory. The lack of initial spaces is to prevent imake
218 XCOMM from accidently turning the lines into rules by putting a leading tab.
220 XCOMM Do NOT change these lines!
222 DEF_SERVER = $(XBINDIR)/X
223 DEF_USER_PATH = DefaultUserPath:/usr/ccs/bin:$(NATIVEXBINDIR):$(XBINDIR)
224 DEF_SYSTEM_PATH = DefaultSystemPath:$(NATIVEXBINDIR):$(XBINDIR)
225 BOURNE_SHELL = DefaultSystemShell
227 DEF_BM_PATH = /etc/dt/appconfig/icons/%L/%B%M.bm:/etc/dt/appconfig/icons/%L/%B%M.pm:/etc/dt/appconfig/icons/%L/%B:/etc/dt/appconfig/icons/C/%B%M.bm:/etc/dt/appconfig/icons/C/%B%M.pm:/etc/dt/appconfig/icons/C/%B:/usr/dt/appconfig/icons/%L/%B%M.bm:/usr/dt/appconfig/icons/%L/%B%M.pm:/usr/dt/appconfig/icons/%L/%B:/usr/dt/appconfig/icons/C/%B%M.bm:/usr/dt/appconfig/icons/C/%B%M.pm:/usr/dt/appconfig/icons/C/%B
228 DEF_PM_PATH=/etc/dt/appconfig/icons/%L/%B%M.pm:/etc/dt/appconfig/icons/%L/%B%M.bm:/etc/dt/appconfig/icons/%L/%B:/etc/dt/appconfig/icons/C/%B%M.pm:/etc/dt/appconfig/icons/C/%B%M.bm:/etc/dt/appconfig/icons/C/%B:/usr/dt/appconfig/icons/%L/%B%M.pm:/usr/dt/appconfig/icons/%L/%B%M.bm:/usr/dt/appconfig/icons/%L/%B:/usr/dt/appconfig/icons/C/%B%M.pm:/usr/dt/appconfig/icons/C/%B%M.bm:/usr/dt/appconfig/icons/C/%B
230 RES_DEFINES = '-DDEF_SERVER_LINE=":0 Local local $(DEF_SERVER) :0"' \
231 '-DXRDB_PROGRAM="$(XBINDIR)/xrdb"' \
232 '-DDEF_USER_PATH="$(DEF_USER_PATH)"' \
233 '-DDEF_SYSTEM_PATH="$(DEF_SYSTEM_PATH)"' \
234 '-DDEF_FAILSAFE_CLIENT="$(XBINDIR)/xterm"' \
235 '-DDEF_AUTH_FILE="$(XDMDIR)/auth-server"' \
236 '-DDEF_AUTH_DIR="$(XDMDIR)"' \
237 '-DCPP_PROGRAM="$(CPP_PROGRAM)"' \
238 '-DDEF_PM_SEARCH_PATH="$(DEF_PM_PATH)"' \
239 '-DDEF_BM_SEARCH_PATH="$(DEF_BM_PATH)"'
242 XCOMM These -D flags had to be taken out of the RES_DEFINES macro in order
243 XCOMM to get around a buffer limitation in the Sun C compiler code generation
244 XCOMM phase. The code generation phase creates a temporary assembler file
245 XCOMM containing the command line to the compiler and all the .ident pragmas.
246 XCOMM With resent changes to the Imakefile, the command line had gotten so
247 XCOMM long that it exceeded an internal buffer length resulting in errors in
248 XCOMM the generated assembler code. The EXTRA_RES_DEFINES were extracted
249 XCOMM from the RES_DEFINES macro in order to shorten the command line on
250 XCOMM the Sun platform. These particular -D flags were chosen as the
251 XCOMM least likely to change or be system dependent.
253 #ifdef SunArchitecture
256 EXTRA_RES_DEFINES = \
257 '-DDEF_SESSION="$(CDE_INSTALLATION_TOP)/bin/Xsession"' \
258 '-DDEF_SYSTEM_SHELL="$(BOURNE_SHELL)"' \
259 '-DDEF_CHOOSER="$(CDE_INSTALLATION_TOP)/bin/dtchooser"' \
260 '-DDEF_XDM_CONFIG="Xconfig"'
265 /**************************************************************************
269 * BASE_LIBS1 = dtlogin base libraries
270 * BASE_LIBS2 = dtgreet base libraries
272 **************************************************************************/
275 DEPLIBS1 = $(DEPXAUTHLIB) $(DEPXDMCPLIB) $(LOGINDEPXMULIB) $(LOGINDEPXLIB)
276 DEPLIBS2 = $(DEPDTWIDGETLIB) $(DEPDTSVCLIB) $(DEPTTLIB) $(DEPXMLIB) \
277 $(DEPXTOOLLIB) $(DEPXPLIB) $(DEPXLIB)
278 DEPLIBS3 = $(DEPXDMCPLIB) $(DEPXMLIB) $(DEPXTOOLLIB) $(DEPXPLIB) $(DEPXLIB)
280 BASE_LIBS1 = $(XAUTHLIB) $(LOGINXMULIB) $(XDMCPLIB) $(LOGINXLIB)
281 BASE_LIBS2 = $(DTWIDGETLIB) $(DTSVCLIB) $(TTLIB) $(XMLIB) \
282 $(XTOOLLIB) $(XPLIB) $(XLIB)
283 BASE_LIBS3 = $(DTWIDGETLIB) $(DTSVCLIB) $(TTLIB) $(XDMCPLIB) $(XMLIB) \
284 $(XTOOLLIB) $(XPLIB) $(XLIB)
286 LOCAL_LIBRARIES1 = $(BASE_LIBS1) $(IAFSYSLIB)
287 LOCAL_LIBRARIES2 = $(BASE_LIBS2)
288 LOCAL_LIBRARIES3 = $(BASE_LIBS3)
291 /* USL needs to resolve all Xt symbols invoked by Xmu at shared
293 * Likewise for the BMS references from libDt for vuegreet.
295 #if defined(USLArchitecture)
296 # if HasSharedLibraries
297 BASE_LIBS1 = $(XAUTHLIB) $(LOGINXMULIB) $(XDMCPLIB) $(XTOOLLIB) \
299 BASE_LIBS2 = $(DTWIDGETLIB) $(DTSVCLIB) $(TTLIB) \
300 $(XMLIB) $(XTOOLLIB) $(XPLIB) $(XLIB)
304 #if defined(UXPArchitecture)
305 # if HasSharedLibraries
306 BASE_LIBS1 = $(XAUTHLIB) $(LOGINXMULIB) $(XDMCPLIB) $(XTOOLLIB) \
308 BASE_LIBS2 = $(DTWIDGETLIB) $(DTSVCLIB) $(TTLIB) \
309 $(XMLIB) $(XTOOLLIB) $(XPLIB) $(XLIB)
315 /**************************************************************************
317 * Extra things for the HP-UX BLS version
319 **************************************************************************/
322 # ifdef HPArchitecture
323 # if (OSMajorVersion == 8) && (OSMinorVersion == 8)
332 EXTRA_DEFINES = -UAUDIT -D_NO_PROTO
333 EXTRA_CFLAGS = -Wp,-H256000
334 EXTRA_LIBRARIES = $(BLSLIBSRC)/libbls.a -lsec ExtraLibraries
335 STD_CPP_DEFINES = -DSYSV -DBLS
340 /**************************************************************************
342 * Extra things for the Kerberos/AFS version (dtlogin.krb)
344 **************************************************************************/
350 KRBLIBSRC = $(LIBSRC)/krb
351 DEPKRBLIB = $(KRBLIBSRC)/libkrb.a
352 KRBLIB = $(DEPKRBLIB)
354 DESLIBSRC = $(LIBSRC)/des
355 DEPDESLIB = $(DESLIBSRC)/libdes.a
356 DESLIB = $(DEPDESLIB)
358 KRBINCLUDESRC = $(KRBLIBSRC)/include
360 AFSINCLUDESRC = $(AFSLIBSRC)
361 EXTRA_INCLUDES = -I$(KRBINCLUDESRC) -I$(AFSINCLUDESRC)
362 EXTRA_DEFINES = -D__KERBEROS -D__AFS
364 LOCAL_LIBRARIES1 = $(BASE_LIBS1) \
367 $(AFSLIBSRC)/libafsutil.a \
368 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libdes.a
370 LOCAL_LIBRARIES2 = $(BASE_LIBS2) \
372 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libkauth.a \
373 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libprot.a \
374 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libubik.a \
375 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libauth.a \
376 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/librxkad.a \
377 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libsys.a \
378 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libdes.a \
379 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/librx.a \
380 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/liblwp.a \
381 $(AFSLIBSRC)/$(VENDOR)/$(HARDWARE)/libcom_err.a \
382 $(AFSLIBSRC)/libafsutil.a \
388 /**************************************************************************
390 * Extra things for the Passwd Etc. version (dtlogin.rgy)
392 **************************************************************************/
395 EXTRA_INCLUDES = -I$(RGYINCLUDESRC)
396 EXTRA_DEFINES = -D__PASSWD_ETC +e
397 EXTRA_LIBRARIES = $(RGYLIB) $(NCKLIB) -lndbm -lBSD ExtraLibraries
402 /**************************************************************************
404 * Extra things for Dtge
406 * HIDDEN_SYMBOLS1 = dtlogin hidden symbols
407 * HIDDEN_SYMBOLS2 = dtgreet hidden symbols
409 **************************************************************************/
411 #ifdef HPArchitecture
414 HIDDEN_SYMBOLS1 = -h _main -h _BecomeDaemon -h _GetHourGlass \
416 HIDDEN_SYMBOLS2 = -h _main -h _LogError -h _PingServer
420 HIDDEN_SYMBOLS1 = -h main -h BecomeDaemon -h GetHourGlass \
422 HIDDEN_SYMBOLS2 = -h main -h LogError -h PingServer
429 /**************************************************************************
433 **************************************************************************/
435 #if defined(USE_KRB) || defined(USE_RGY)
437 @for i in $(SRCS1) $(SRCS2) $(HEADERS); do \
439 echo "linking $(DTLOGINSRC)/$$i to $$i";\
440 ln -f -s $(DTLOGINSRC)/$$i .; \
445 ComplexProgramTarget_1($(PROG1),$(LOCAL_LIBRARIES1), $(LOGINLDOPTIONS))
446 ComplexProgramTarget_2($(PROG2),$(LOCAL_LIBRARIES2), /**/)
447 ComplexProgramTarget_3($(PROG3),$(LOCAL_LIBRARIES3), /**/)
450 /* Problem with "-O" in dtgreet ... wrong size login widget. */
451 /* Override "-O" (xO2) with "-xO1". */
454 $(CC) -c $(CFLAGS) -xO1 $(_NOOP_) $*.c
457 SpecialObjectRule(resource.o, $(ICONFIGFILES), $(EXTRA_RES_DEFINES) $(RES_DEFINES) $(CCINLIBS))
458 #ifdef HPArchitecture
460 SpecialObjectRule(session.o,,+O1 $(CCINLIBS))
464 #if !defined(USE_KRB) && !defined(USE_RGY)
466 LOCAL_CPP_DEFINES = -DCDE_CONFIGURATION_TOP=$(CDE_CONFIGURATION_TOP) \
467 -DCDE_INSTALLATION_TOP=$(CDE_INSTALLATION_TOP) \
468 -DCDE_LOGFILES_TOP=$(CDE_LOGFILES_TOP)
470 #endif /* USE_KRB && USE_RGY */
473 MakeDirectories(install,$(XDMDIR))
477 * Don't install; let people read the instructions about putting in the
478 * abort-display() resource:
481 InstallProgramWithFlags(xdmshell,$(XBINDIR), /**/)
484 #if !defined(USE_KRB) && !defined(USE_RGY)
485 /***** For dtge make a client_OBJS.o using client_main.o ******/
486 /***** This implies the existence of client_main.c ******/
487 # ifdef BuildHugeObject
488 # if defined (HPArchitecture) && ! defined (BLS)
489 SpecialRelocatableTarget(dtlogin,$(HIDDEN_SYMBOLS1),$(OBJS1))
490 SpecialRelocatableTarget(dtgreet,$(HIDDEN_SYMBOLS2),$(OBJS2))