/* Copyright (C) 1992, Digital Equipment Corporation                         */
/* All rights reserved.                                                      */
/* See the file COPYRIGHT for a full description.                            */

/* File: m3makefile                                                          */
/* Last modified on Thu Nov 12 11:25:34 PST 1992 by muller                   */
/*      modified on Tue Nov  3 15:30:30 PST 1992 by kalsow                   */

/* This m3makefile is a bit complicated because we want to use it for 
   three different purpose: to build from the sources, to build for the 
   export, and to build from C at the export sites. */

config.c: $(LIB_USE)/config
	@echo "building config.c ..."
	@/bin/rm -f config.c
	@echo 'static char *args [] = {'              >  config.c
	@echo '  "-Y0$(PASS0)",'                      >> config.c
	@echo '  "-Y1$(PASS1)",'                      >> config.c
	@echo '  "-Y2$(PASS2)",'                      >> config.c
	@echo '  "-Y3$(PASS3)",'                      >> config.c
	@echo '  "-Y4$(PASS4)",'                      >> config.c
	@echo '  "-Y5$(PASS5)",'                      >> config.c
	@echo '  "-D$(DEFPATH)",'                     >> config.c
	@echo '  "-L$(LIBPATH)",'                     >> config.c
	@echo '  "-z0$(CC_O)",'                       >> config.c
	@echo '  "-z1$(CC_G)",'                       >> config.c
	@echo '  "-z2$(LINKFILES)",'                  >> config.c
	@echo '  "-z3$(LINKCOVER)",'                  >> config.c
	@echo '  "-z4$(INCL)",'                       >> config.c
	@echo '  "-z5$(CC_WARNS_FOR_UNKNOWN_FILES)",' >> config.c
	@echo '  "-z6$(KEEP_LIBRARIES_RESOLVED)",'    >> config.c
	@echo '  "-z7$(BASE_ARGS)",'                  >> config.c
	@echo '  "-z8$(OVERLAY_0)",'                  >> config.c
	@echo '  "-z9$(OVERLAY_1)",'                  >> config.c
	@echo '  "-zA$(SERVER_LIMIT)",'               >> config.c
	@echo '  0 };'                                >> config.c
	@echo 'char **DriverConfig__args = args;'      >> config.c
	@chmod -w config.c

/*---------------------------------------------------------- build from C ---*/
#if defined (BOOT) 	/* build from C */

#include "m3makefile.objs"

all:: m3

m3::  $(OBJS)
	IFS=' $(SEP)'; $(PASS2) -o m3 $(OBJS) $(LINKBFILES)

clean::
	rm -f m3

.c.o:
	IFS=' $(SEP)'; $(PASS1) -c $(BOOTOPT) $<
.s.o:
	IFS=' $(SEP)'; $(PASS1) -c $(BOOTOPT) $<

BindExport (m3)
MandExport (m3,1)

/*---------------------------------------------------- build from Modula-3---*/
#else			

source_dir (../linker/src)
/* source_dir (../../linker/src) */

implementation (Main)
module (DriverConfig)
module (OS)
PGM_SOURCES ++= config.c

#if defined (BUILD_BOOT)
all::
	cp SOURCE_DIR##/m3.1 .
#else
all:: config.c
ManPage (m3,1)
#endif

Program (m3)

/*------------------------------------------------------------ exportable ---*/

#if defined (BUILD_BOOT)

M3FLAGS = -w1 -make -why -boot -times

source_dir (../../libm3/word/src)
source_dir (../../libm3/main/src)
source_dir (../../libm3/rw/src)
source_dir (../../libm3/text/src)
source_dir (../../libm3/time/src)
source_dir (../../libm3/filename/src)
source_dir (../../libm3/fmt/src)
source_dir (../../libm3/scan/src)
source_dir (../../libm3/convert/src)
source_dir (../../libm3/list/src)
source_dir (../../libm3/fingerprint/src)
source_dir (../../libm3/smallio/src)
source_dir (../../libm3/types/src)
source_dir (../../libm3/arith/src)
source_dir (../../libm3/table/src)
source_dir (../../libm3/perftool/src)
source_dir (../../libm3/etimer/src)
source_dir (../../libm3/thread/src)


source_dir (../../libm3/Csupport/src/generic)
source_dir (../../libm3/float/src/generic)
source_dir (../../libm3/runtime/src/generic)
source_dir (../../libm3/C/src/generic)

#if defined (TARGET_ADU)
source_dir (../../libm3/Csupport/src/ADU)
source_dir (../../libm3/float/src/ADU)
source_dir (../../libm3/runtime/src/ADU)
source_dir (../../libm3/unix/src/ultrix-3-1.generic)
source_dir (../../libm3/unix/src/ultrix-3-1.ADU)
source_dir (../../libm3/C/src/ADU)
#endif
#if defined (TARGET_AIX386)
source_dir (../../libm3/Csupport/src/AIX386)
source_dir (../../libm3/float/src/AIX386)
source_dir (../../libm3/runtime/src/AIX386)
source_dir (../../libm3/unix/src/aix-ps2-1-2)
source_dir (../../libm3/C/src/AIX386)
#endif
#if defined (TARGET_AP3000)
source_dir (../../libm3/Csupport/src/AP3000)
source_dir (../../libm3/float/src/AP3000)
source_dir (../../libm3/runtime/src/AP3000)
source_dir (../../libm3/unix/src/ultrix-3-1.generic)
source_dir (../../libm3/unix/src/ultrix-3-1.AP3000)
source_dir (../../libm3/C/src/AP3000)
#endif
#if defined (TARGET_ARM)
source_dir (../../libm3/Csupport/src/ARM)
source_dir (../../libm3/float/src/ARM)
source_dir (../../libm3/runtime/src/ARM)
source_dir (../../libm3/unix/src/ultrix-3-1.generic)
source_dir (../../libm3/unix/src/ultrix-3-1.ARM)
source_dir (../../libm3/C/src/ARM)
#endif
#if defined (TARGET_DS3100)
source_dir (../../libm3/Csupport/src/DS3100)
source_dir (../../libm3/float/src/DS3100)
source_dir (../../libm3/runtime/src/DS3100)
source_dir (../../libm3/unix/src/ultrix-3-1.generic)
source_dir (../../libm3/unix/src/ultrix-3-1.DS3100)
source_dir (../../libm3/C/src/DS3100)
#endif
#if defined (TARGET_DS3100_OSF)
source_dir (../../libm3/Csupport/src/DS3100)
source_dir (../../libm3/float/src/DS3100_OSF)
source_dir (../../libm3/runtime/src/DS3100)
source_dir (../../libm3/unix/src/osf-1.generic)
source_dir (../../libm3/unix/src/osf-1.DS3100)
source_dir (../../libm3/C/src/DS3100_OSF)
#endif
#if defined (TARGET_HP300)
source_dir (../../libm3/Csupport/src/HP300)
source_dir (../../libm3/float/src/HP300)
source_dir (../../libm3/runtime/src/HP300)
source_dir (../../libm3/unix/src/hpux-7-0)
source_dir (../../libm3/C/src/HP300)
#endif
#if defined (TARGET_HPPA)
source_dir (../../libm3/Csupport/src/HPPA)
source_dir (../../libm3/float/src/HPPA)
source_dir (../../libm3/runtime/src/HPPA)
source_dir (../../libm3/unix/src/hpux-7-0)
source_dir (../../libm3/C/src/HPPA)
#endif
#if defined (TARGET_IBMR2)
source_dir (../../libm3/Csupport/src/IBMR2)
source_dir (../../libm3/float/src/IBMR2)
source_dir (../../libm3/runtime/src/IBMR2)
source_dir (../../libm3/unix/src/aix-3-2)
source_dir (../../libm3/C/src/IBMR2)
#endif
#if defined (TARGET_IBMRT)
source_dir (../../libm3/Csupport/src/IBMRT)
source_dir (../../libm3/float/src/IBMRT)
source_dir (../../libm3/runtime/src/IBMRT)
source_dir (../../libm3/unix/src/ibm-4-3)
source_dir (../../libm3/C/src/IBMRT)
#endif
#if defined (TARGET_NEXT)
source_dir (../../libm3/Csupport/src/NEXT)
source_dir (../../libm3/float/src/NEXT)
source_dir (../../libm3/runtime/src/NEXT)
source_dir (../../libm3/unix/src/ultrix-3-1.generic)
source_dir (../../libm3/unix/src/ultrix-3-1.NEXT)
source_dir (../../libm3/C/src/NEXT)
#endif
#if defined (TARGET_SPARC)
source_dir (../../libm3/Csupport/src/SPARC)
source_dir (../../libm3/float/src/SPARC)
source_dir (../../libm3/runtime/src/SPARC)
source_dir (../../libm3/unix/src/ultrix-3-1.generic)
source_dir (../../libm3/unix/src/ultrix-3-1.SPARC)
source_dir (../../libm3/C/src/SPARC)
#endif
#if defined (TARGET_SUN3)
source_dir (../../libm3/Csupport/src/SUN3)
source_dir (../../libm3/float/src/SUN3)
source_dir (../../libm3/runtime/src/SUN3)
source_dir (../../libm3/unix/src/ultrix-3-1.generic)
source_dir (../../libm3/unix/src/ultrix-3-1.SUN3)
source_dir (../../libm3/C/src/SUN3)
#endif
#if defined (TARGET_SUN386)
source_dir (../../libm3/Csupport/src/SUN386)
source_dir (../../libm3/float/src/SUN386)
source_dir (../../libm3/runtime/src/SUN386)
source_dir (../../libm3/unix/src/ultrix-3-1.generic)
source_dir (../../libm3/unix/src/ultrix-3-1.SUN386)
source_dir (../../libm3/C/src/SUN386)
#endif
#if defined (TARGET_UMAX)
source_dir (../../libm3/Csupport/src/UMAX)
source_dir (../../libm3/float/src/UMAX)
source_dir (../../libm3/runtime/src/UMAX)
source_dir (../../libm3/unix/src/ultrix-3-1.generic)
source_dir (../../libm3/unix/src/ultrix-3-1.UMAX)
source_dir (../../libm3/C/src/UMAX)
#endif
#if defined (TARGET_VAX)
source_dir (../../libm3/Csupport/src/VAX)
source_dir (../../libm3/float/src/VAX)
source_dir (../../libm3/runtime/src/VAX)
source_dir (../../libm3/unix/src/ultrix-3-1.generic)
source_dir (../../libm3/unix/src/ultrix-3-1.VAX)
source_dir (../../libm3/C/src/VAX)
#endif

#endif /* BUILD_BOOT */
#endif /* BOOT */
