# Le Makefile de l'image initiale de CAML [SonyR3000]
###################################################################
SYSTEM= sonyR3000
COMMON=commonsonyR3000

####################################
# La racine de Le-Lisp (automatique)
####################################
DIR=/usr/local/caml/V2-6.1/camlisp

##################################
# Les noms des syste`mes standard
##################################
CAMLISP=camlisp

################################################
# Les tailles par de'faut des zones de donne'es
################################################

# caml
SIZEZ= -stack 32 -code 2048 -heap 1024 -number 0 \
        -vector 30 -string 40 -symbol 8 -cons 15 $(SIZEF)

# tailles des flottants pour les xxxxbin
#SIZEF=   -float 16
SIZEF=  -float 0

##########################################################
# Les entre'es classiques
##########################################################
# Standard

all:	camlisp

tout:	camlisp

clean:
	rm -f *bin 
	rm -f camlisp
	rm -f llcore/*.core
	rm -f o/*.o
	rm -f s/*.s

##########################################################
# Les points d'entre'e permettant de faire les syste`mes
##########################################################

$(CAMLISP): conf/camlispconf.ll camlispbin
	./config $(CAMLISP) camlispbin camlispconf.ll $(SIZEZ) $(SIZEF)


############################################################################
# Les options de'pendant du syste`me
############################################################################

#CFLAGS for PMAX (alias DS 3100) or M500/M800/M1000 (Umips/BSD)
#CFLAGS for SONY NEWS 3xxx
CFLAGS= -DNBSYST=38 -DBSD4x -DBSD42 -DTIMEUNIT=60. -DTABLGC \
	-DPAGESIZE=4096 -DINRIA -DVAXUNIX \
	-DFOREIGN -DMAXCHAR=1024 \
        -DFILEINI=\"$(DIR)/llib/startup.ll\" \
        -DLELISPBIN=\"$(DIR)/sonyR3000/camlispbin\" -G 0


LDFLAGS= -lm -lmld
#LDFLAGS= -x -lmld -lm

# HOSTIDS est une liste de numero de CPU machine separe's par des "," et
# terminee par 0.
# Un "0" seul signifie qu'il n'y a pas de test de CPU  [cf lltool/plombe.c]
# Ne pas oublier le "0x" si le numero est donne' en hexadecimal!
HOSTIDS=0

cobj=	o/llmips.o o/bm.o o/camlstdio.o o/llfloat.o

fobj=	o/llmain.o o/caml.o o/plombe.o o/icacheflush.o

################################################################
# camlispbin

camlispbin: $(fobj) lelispbin.o
	cc -G 4 $(fobj) lelispbin.o -o camlispbin $(LDFLAGS)

o/caml.o: ../$(COMMON)/caml.c
	cc $(CFLAGS) -c ../$(COMMON)/caml.c
	mv caml.o o/caml.o

o/camlstdio.o: ../$(COMMON)/llstdio.c
	cc $(CFLAGS) -signed -c ../$(COMMON)/llstdio.c
	mv llstdio.o o/camlstdio.o

o/llfloat.o: ../$(COMMON)/llfloat.c
	cc -g $(CFLAGS) -c ../$(COMMON)/llfloat.c
	mv llfloat.o o/llfloat.o

o/plombe.o: ../lltool/plombe.c
	cc -G 4 -DHOSTIDS="$(HOSTIDS),0" -c ../lltool/plombe.c
	mv plombe.o o/plombe.o

o/icacheflush.o: icacheflush.c
	cc -G 4 -DHOSTIDS="$(HOSTIDS),0" -c icacheflush.c
	mv icacheflush.o o/icacheflush.o

o/llmain.o: ../$(COMMON)/llmain.c
	cc $(CFLAGS) -c ../$(COMMON)/llmain.c
	mv llmain.o o/llmain.o
