1XCOMM platform:  $Xorg: Amoeba.cf,v 1.3 2000/08/17 19:41:45 cpqbld Exp $
2XCOMM platform:  $XFree86: xc/config/cf/Amoeba.cf,v 3.10tsi Exp $
3
4/*  The presence of this configuration file in the X distribution
5 *  does not imply full support for the system it describes.
6 *  Additional patches from The XFree86 Project, Inc. will be required to
7 *  compile the X distribution on Amoeba.  According to them, these patches
8 *  will also be made available at the regular Amoeba ftp site
9 *  ftp.am.cs.vu.nl.
10 */
11
12/*
13 * Configuration file for Amoeba 5.2
14 */
15
16#ifndef OSName
17#define OSName                  Amoeba 5.2
18#endif
19XCOMM operating system:  OSName
20#ifndef OSMajorVersion
21#define OSMajorVersion          5
22#endif
23#ifndef OSMinorVersion
24#define OSMinorVersion          2
25#endif
26#ifndef OSTeenyVersion
27#define OSTeenyVersion          0
28#endif
29#ifndef OSVendor
30#define OSVendor                Vrije Universiteit
31#endif
32
33#define AmoebaArchitecture	YES
34
35/* Configuration defaults */
36#ifndef AmoebaTop
37#define AmoebaTop		__AM_TOP__
38#endif
39#ifndef AmoebaBin
40#define AmoebaBin		$(ATOP)/bin.sun4
41#endif
42#ifndef AmoebaConf
43#define AmoebaConf		__AM_CONF__
44#endif
45
46#define HasNdbm			YES
47#define NeedSdbm		YES
48#define HasShm			NO
49#define HasSecureRPC		NO
50#define SetTtyGroup		NO
51#define HasPutenv		YES
52#define HasSockets              NO
53#define HasStreams              NO
54
55#if defined(Sun3Architecture) || defined(SparcArchitecture)
56#define XsunAmoebaServer	YES
57#define XsunAmoebaMonoServer	YES
58#endif
59
60#define BuildFonts              NO
61#define BuildFontServer         NO
62#define BuildXIE		NO
63
64#define YaccCmd                 byacc
65#define TermcapLibrary          /* in libajax */
66#define LexLib			/* not needed */
67
68#define ServerOSDefines		XFree86ServerOSDefines
69
70#define UsrLibDir               $(DESTDIR)/profile/module/x11/lib
71#define LibDir                  $(DESTDIR)/profile/module/x11/lib
72#define ManDirectoryRoot        $(DESTDIR)/profile/module/x11/man
73#define BinDir                  $(DESTDIR)/profile/module/x11/bin
74#define IncRoot                 $(DESTDIR)/profile/module/x11/include
75#define FontDir                 $(DESTDIR)/profile/module/x11/fonts/$(ARCH)
76#define DefaultRGBDatabase      $(DESTDIR)/profile/module/x11/lib/rgb/$(ARCH)/rgb
77
78#define ManSuffix               1
79#define ManPath                 ManDirectoryRoot
80#define XmanLocalSearchPath     ManDirectoryRoot
81
82#define DefaultUserPath         :/bin:$(BINDIR)
83#define DefaultSystemPath       /bin:$(BINDIR):
84
85#define StandardIncludes        -I$(ATOP)/src/h \
86				-I$(ATOP)/src/h/posix \
87				-I$(ATOP)/src/h/posix/machdep/$(ARCH) \
88				-I$(ATOP)/src/h/machdep/arch/$(ARCH) \
89				-I$(ATOP)/src/h/toolset/$(TOOLSET)
90
91#define Malloc0ReturnsNull      YES
92#define ServerInstallFlags      -s 32
93#define FontDefines             -DFONT_SNF
94#define ConnectionFlags         -DAMTCPCONN -DAMRPCCONN
95#define ServerXdmcpDefines	/* no -DXDMCP */
96#define UseRgbTxt		YES
97#define NdbmDefines		-DSDBM -DNDBM -I$(XINCLUDESRC)
98#define DBMLibrary		/* $(LIBSRC)/sdbm/libsdbm.a */
99
100#if defined(i386Architecture)
101#ifndef AckToolset
102#define AckToolset              YES
103#define ExtraFPLoadFlags	-fp
104#endif
105#define XF86MonoServer		YES
106#endif
107
108#if defined(Sun3Architecture)
109#ifndef AckToolset
110#define AckToolset              YES
111#endif
112#endif
113
114#if AckToolset
115#define CcCmd                   ack
116#define ServerCcCmd             ack
117#define LdCmd                   ack
118#define AckArchOption		-mam_$(ARCH)
119#define DefaultCCOptions        AckArchOption
120#define LibraryCCOptions        AckArchOption
121#define LdCombineFlags          -Rled-r -c.out
122#define ArCmd 			aal clrv
123#define RanlibCmd		/bin/true
124#define AsCmd			AmoebaConf/$(ARCH).$(TOOLSET)/toolset/do_as AckArchOption
125#define AsIncl			-I$(ATOP)/src/h/machdep/arch/$(ARCH)
126#define AsmDefines		-DACK_ASSEMBLER
127#define LdPreLib		/**/
128#define LdPostLib		/**/
129#endif
130
131#if defined(SparcArchitecture)
132#define AllocateLocalDefines	-DINCLUDE_ALLOCA_H
133
134#define CcCmd                   cc
135#define ServerCcCmd             cc
136#define LdCmd                   AmoebaConf/$(ARCH).$(TOOLSET)/toolset/do_gld
137#define DefaultCCOptions        -sun4
138#define LibraryCCOptions        -sun4
139#define AmoebaCompilerDefs	-Usun
140#define ServerExtraDefines	AllocateLocalDefines
141#define LdPostLib		/**/
142#endif
143
144#ifndef AmoebaCompilerDefs
145#define AmoebaCompilerDefs	/**/
146#endif
147
148#define CommonAmoebaDefines     -DAMOEBA -D$(ARCH) AmoebaCompilerDefs
149#define StandardDefines         CommonAmoebaDefines
150#define StandardCppDefines      StandardDefines
151
152#ifndef ExtraFPLoadFlags
153#define ExtraFPLoadFlags
154#endif
155#define MathLibrary		$(ALIB)/math/libmath.a
156#define OSLibraries             $(ALIB)/ajax/libajax.a \
157				$(ALIB)/amoeba/libamoeba.a \
158				MathLibrary \
159				ExtraFPLoadFlags
160#define ServerExtraSysLibs	$(CBRT) OSLibraries
161#define ExtraLoadFlags		OSLibraries
162
163ATOP            = AmoebaTop
164ALIB            = AmoebaConf/$(ARCH).$(TOOLSET)/lib
165#if AckToolset
166/* The ACK toolset already links in the appropriate head.o by default */
167HEAD            =
168#else
169HEAD            = $(ALIB)/head/head.o
170#endif
171
172ABIN            = AmoebaBin
173AINSTALL        = /bin/sh $(CONFIGSRC)/util/aminstall.sh $(ABIN)
174AINSTALLFLAGS   =
175TOB             = /bin/sh $(CONFIGSRC)/util/aminstall.sh $(ABIN)
176MKXDIRHIER      = /bin/sh $(CONFIGSRC)/util/ammkdirhier.sh $(ABIN)
177
178/* Make wizardry: */
179COMPILE.c=$(CC) $(CFLAGS) $(CPPFLAGS) -c
180LINK.c=$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
181
182#if defined(i386Architecture)
183ARCH            = i80386
184TOOLSET         = ack
185ALDFLAGS        = /* -mam_i80386 now in CCopts */ -.c -Rcv-s32
186
187#include <xorg.cf>
188#endif
189
190#if defined(Sun3Architecture)
191ARCH            = mc68000
192TOOLSET         = ack
193ALDFLAGS        =  -.c -Rcv-s32
194#endif
195
196#if defined(SparcArchitecture)
197ARCH            = sparc
198TOOLSET         = sun
199SPARCLIBDIR     = AmoebaBin/gnu/sparc
200ALDFLAGS        = -mam_sparc -n -Ttext 40000 -Bstatic -e start -L$(SPARCLIBDIR)
201#endif
202
203#define BootstrapCFlags		-DAMOEBA -DCROSS_$(ARCH) -DCROSS_COMPILE
204
205/*
206 * The rest of this files consists of rules to allow cross-compilation
207 * and installation of binaries and data files from the Unix host to
208 * the Amoeba file system.
209 */
210
211/* #ifdef CROSS_COMPILING */
212#define CrossCompiling          YES
213
214#define HostLinkRule(target, flags, src, libs)  cc -o target src
215
216#define LinkRule(program,options,objects,libraries) \
217$(LD) $(ALDFLAGS) $(HEAD) -o program options objects libraries $(EXTRA_LOAD_FLAGS)
218
219/* ComplexHostProgramTarget - Compile a program such that we can run
220 * it on this host, i.e., don't use the default cross compiler.
221 */
222#ifndef ComplexHostProgramTarget
223#define	ComplexHostProgramTarget(program)				@@\
224              CC=cc							@@\
225    STD_INCLUDES=							@@\
226          CFLAGS=$(TOP_INCLUDES) $(INCLUDES) $(BOOTSTRAPCFLAGS)		@@\
227EXTRA_LOAD_FLAGS=							@@\
228        PROGRAM = program						@@\
229									@@\
230AllTarget(program)							@@\
231									@@\
232program: $(OBJS) $(DEPLIBS)						@@\
233	RemoveTargetProgram($@)						@@\
234	HostLinkRule($@,$(_NOOP_),$(OBJS),$(DEPLIBS) $(LOCAL_LIBRARIES)) @@\
235									@@\
236DependTarget()								@@\
237									@@\
238LintTarget()								@@\
239									@@\
240clean::									@@\
241	RemoveFile(ProgramTargetName(program))
242#endif /* ComplexHostProgramTarget */
243
244#ifndef SimpleHostProgramTarget
245#define SimpleHostProgramTarget(program)				@@\
246           OBJS = program.o						@@\
247           SRCS = program.c						@@\
248									@@\
249ComplexHostProgramTarget(program)
250#endif /* SimpleHostProgramTarget */
251
252
253#ifndef Concat
254#if (defined(__STDC__) && !defined(UnixCpp)) || defined(AnsiCpp)
255#define Concat(a,b)a##b
256#else
257#define Concat(a,b)a/**/b
258#endif
259#endif
260
261/*
262 * LintLibReferences - variables for lint libraries
263 */
264#ifndef LintLibReferences
265#define LintLibReferences(varname,libname,libsource)			@@\
266Concat(LINT,varname) = Concat(libsource/llib-,libname.ln)
267#endif
268
269/*
270 * UnsharedLibReferences - variables for unshared libraries
271 */
272#ifndef UnsharedLibReferences
273#define UnsharedLibReferences(varname,libname,libsource)		@@\
274Concat3(DEP,varname,LIB) = Concat($(BUILDLIBDIR)/lib,libname.a)		@@\
275     Concat(varname,LIB) = Concat($(BUILDLIBDIR)/lib,libname.a)		@@\
276LintLibReferences(varname,libname,libsource)
277#endif
278
279#ifndef InstallLibrary
280#define	InstallLibrary(libname,dest)					@@\
281install:: Concat(lib,libname.a)						@@\
282	@echo '** TODO: Install Library ' Concat(lib,libname.a)
283#endif /* InstallLibrary */
284
285#ifndef MergeIntoInstalledLibrary
286#define MergeIntoInstalledLibrary(tolib,fromlib)			@@\
287install::  fromlib							@@\
288	@echo '** TODO: merge ' fromlib into tolib
289#endif /* MergeIntoInstalledLibrary */
290
291#ifndef InstallLibraryAlias
292#define	InstallLibraryAlias(libname,alias,dest)				@@\
293install::								@@\
294	@echo '** TODO: Install lib alias ' libname alias dest
295#endif /* InstallLibraryAlias */
296
297#ifndef InstallLintLibrary
298#define	InstallLintLibrary(libname,dest)				@@\
299install.ln:: Concat(llib-l,libname.ln)					@@\
300	@echo '** TODO: Install lintlib ' Concat(llib-l,libname.ln)
301#endif /* InstallLintLibrary */
302
303#ifndef InstallManPageLong
304#define	InstallManPageLong(file,destdir,dest)				@@\
305install.man:: file.man							@@\
306	@echo '** TODO: Install man page ' file.man
307#endif /* InstallManPageLong */
308
309#ifndef InstallGenManPageLong
310#define	InstallGenManPageLong(file,destdir,dest,suffix)			@@\
311install.man:: file.man							@@\
312	@echo '** TODO: Install man page ' file.man
313#endif /* InstallGenManPageLong */
314
315#ifndef InstallManPageAliases
316#define	InstallManPageAliases(file,destdir,aliases)			@@\
317install.man::								@@\
318	@(TMP=/tmp/tmp.$$$$; \						@@\
319	$(RM) $${TMP}; \						@@\
320	echo .so `basename destdir`/file.$(MANSUFFIX) > $${TMP}; \	@@\
321	for i in aliases; do (set -x; \					@@\
322	$(TOB) $${TMP} $(DESTDIR)destdir/$$i.$(MANSUFFIX)); \ 		@@\
323	done; \								@@\
324	$(RM) $${TMP})
325#endif /* InstallManPageAliases */
326
327#ifndef InstallGenManPageAliases
328#define	InstallGenManPageAliases(file,destdir,suffix,aliases)		@@\
329install.man::								@@\
330	@(TMP=/tmp/tmp.$$$$; \						@@\
331	$(RM) $${TMP}; \						@@\
332	echo .so `basename destdir`/file.suffix > $${TMP}; \		@@\
333	for i in aliases; do (set -x; \					@@\
334	$(TOB) $${TMP} $(DESTDIR)destdir/$$i.suffix); \ 		@@\
335	done; \								@@\
336	$(RM) $${TMP})
337#endif /* InstallGenManPageAliases */
338
339#ifndef InstallNamedNonExec
340#define	InstallNamedNonExec(srcname,dstname,dest)			@@\
341install:: srcname							@@\
342	$(MKXDIRHIER) $(DESTDIR)dest					@@\
343	$(TOB) srcname $(DESTDIR)dest/dstname
344#endif /* InstallNamedNonExec */
345
346#ifndef InstallNonExecFile
347#define	InstallNonExecFile(file,dest)					@@\
348install:: file								@@\
349	$(MKXDIRHIER) dest						@@\
350	$(TOB) file dest/file
351#endif /* InstallNonExecFile */
352
353#ifndef InstallNonExec
354#define	InstallNonExec(file,dest)					@@\
355install:: file								@@\
356	$(TOB) file dest/file
357#endif /* InstallNonExec */
358
359#ifndef InstallProgramWithFlags
360#define InstallProgramWithFlags(program,dest,flags)			@@\
361install:: program							@@\
362	$(MKXDIRHIER) dest/program					@@\
363	$(AINSTALL) $(AINSTALLFLAGS) program dest/program/pd.$(ARCH)
364#endif /* InstallProgramWithFlags */
365
366#ifndef InstallScript
367#define	InstallScript(program,dest)					@@\
368install:: program.script						@@\
369	$(TOB) program.script dest/program
370#endif /* InstallScript */
371
372#ifndef InstallNamedScript
373#define	InstallNamedScript(srcname,dstname,dest)			@@\
374install:: srcname							@@\
375	$(TOB) srcname dest/dstname
376#endif /* InstallNamedScript */
377
378#ifndef InstallNamedProg
379#define	InstallNamedProg(srcname,dstname,dest)				@@\
380install:: srcname							@@\
381	$(MKXDIRHIER) $(DESTDIR)dest/dstname				@@\
382	$(AINSTALL) $(AINSTALLFLAGS) srcname $(DESTDIR)dest/dstname/pd.$(ARCH)
383#endif /* InstallNamedProg */
384
385#ifndef InstallMultipleDestFlags
386#define InstallMultipleDestFlags(step,list,dest,flags)			@@\
387step:: list								@@\
388	$(MKXDIRHIER) $(DESTDIR)dest					@@\
389	@case '${MFLAGS}' in *[i]*) set +e;; esac; \			@@\
390	for i in list; do \						@@\
391		(set -x; $(TOB) $$i dest/$$i); \			@@\
392	done
393#endif /* InstallMultipleDestFlags */
394
395#ifndef InstallMultipleProg
396#define InstallMultipleProg(list,dest)					@@\
397install:: list								@@\
398	@case '${MFLAGS}' in *[i]*) set +e;; esac; \			@@\
399	for i in list; do \						@@\
400	    (set -x; \ 							@@\
401	  	$(MKXDIRHIER) $(DESTDIR)dest/$$i; \			@@\
402		$(AINSTALL) $(AINSTALLFLAGS) $$i dest/$$i/pd.$(ARCH));\	@@\
403	done
404#endif /* InstallMultipleProg */
405
406#ifndef InstallAppDefaults
407#if InstallAppDefFiles
408#define	InstallAppDefaults(class)					@@\
409install:: class.ad							@@\
410	$(MKXDIRHIER) $(XAPPLOADDIR)					@@\
411	$(TOB) class.ad $(DESTDIR)$(XAPPLOADDIR)/class
412#else
413#define	InstallAppDefaults(class)
414#endif /* InstallAppDefFiles */
415#endif /* InstallAppDefaults */
416
417#ifndef InstallAppDefaultsLong
418#if InstallAppDefFiles
419#define	InstallAppDefaultsLong(file,class)				@@\
420install:: file.ad							@@\
421	$(MKXDIRHIER) $(DESTDIR)$(XAPPLOADDIR)				@@\
422	$(TOB) file.ad $(DESTDIR)$(XAPPLOADDIR)/class
423#else
424#define	InstallAppDefaultsLong(file,class)
425#endif /* InstallAppDefFiles */
426#endif /* InstallAppDefaultsLong */
427
428/* #endif CROSS_COMPILE */
429