#*---------------------------------------------------------------------*/
#*    serrano/prgm/project/bigloo/recette/Makefile ...                 */
#*                                                                     */
#*    Author      :  Manuel Serrano                                    */
#*    Creation    :  Mon Nov  2 17:38:43 1992                          */
#*    Last change :  Thu Jun  2 11:57:20 1994 (serrano)                */
#*                                                                     */
#*    Le make pour construire la recette de `Bigloo' ...               */
#*---------------------------------------------------------------------*/

#*---------------------------------------------------------------------*/
#*     Les flags ...                                                   */
#*---------------------------------------------------------------------*/
MACH        	= `arch`
PWD         	= `pwd`
CC          	= gcc
BIGLOO          = ../bin/bigloo1.6
#* BIGLOO          = bigloo  */
INCLUDE     	= -I../lib
CFLAGS      	= $(INCLUDE) -O
C_FILES     	= $(PWD)/C-files

#*---------------------------------------------------------------------*/
#*  !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!!  WARNING !!!   */
#*    -------------------------------------------------------------    */
#*  The recette can't be compiled in `-unsafe' mode (due to try forms) */
#*---------------------------------------------------------------------*/
BG_FLAGS        = -O3 -cg -rm -g -cc $(CC) -q
BEEP            = ../tools/beep

#*---------------------------------------------------------------------*/
#*    Les objects destinations                                         */
#*---------------------------------------------------------------------*/
OBJECTS		= vital.o bool.o list.o vector.o struct.o print.o       \
                  string.o kwote.o case.o bexit.o vararity.o apply.o    \
                  globalis.o filtre.o rgc-trap.o rgc-jm.o port.o        \
                  read.o callcc.o fringe.o tail.o foreign.o big-file.o  \
                  sqic.o eval.o inline.o match.o letrec.o macro.o       \
                  flonum.o number.o char.o define.o error.o cse.o       \
                  kapture.o include.o 0cfa.o alias.o alias-aux.o main.o \
                  rgc-eval.o

OBJECT_C_FOREIGN= c-file.o

#*---------------------------------------------------------------------*/
#*    recette                                                          */
#*---------------------------------------------------------------------*/
recette: $(OBJECTS) $(OBJECT_C_FOREIGN) 
	@ $(BIGLOO) $(BG_FLAGS) -o recette $(OBJECT_C_FOREIGN) $(OBJECTS)
	@ echo "Recette Done..."
	@ $(BEEP)
	@ echo "-------------------------------"

#*---------------------------------------------------------------------*/
#*     Les suffixes ...                                                */
#*---------------------------------------------------------------------*/
.SUFFIXES:
.SUFFIXES: .o .scm .c

#*---------------------------------------------------------------------*/
#*    .bg.o                                                            */
#*---------------------------------------------------------------------*/
.scm.o:
	@ $(BIGLOO) $(BG_FLAGS) -A $*.scm

#*---------------------------------------------------------------------*/
#*    Certains fichiers doivent etre compiles avec des flags           */
#*    supplementaires. On les rajoute maintenant                       */
#*---------------------------------------------------------------------*/
callcc.o: callcc.scm
	@ $(BIGLOO) $(BG_FLAGS) -A -call/cc callcc.scm
	
fringe.o: fringe.scm
	@ $(BIGLOO) $(BG_FLAGS) -A -call/cc fringe.scm

#*---------------------------------------------------------------------*/
#*    .c.o                                                             */
#*---------------------------------------------------------------------*/
.c.o:
	@ echo $*.c ":"
	@ $(CC) $(CFLAGS) -c -o $*.o $*.c

#*---------------------------------------------------------------------*/
#*     touchall ...                                                    */
#*---------------------------------------------------------------------*/
touchall:
	@ touch *.scm c-file.c
	@ echo "touch done..."
	@ $(BEEP)
	@ echo "-------------------------------"

#*---------------------------------------------------------------------*/
#*    clean                                                            */
#*---------------------------------------------------------------------*/
clean:
	@- \rm -f *.o
	@- \rm -f recette
	@ echo "Clean up done..."
	@ $(BEEP)
	@ echo "-------------------------------"

#*---------------------------------------------------------------------*/
#*    wc                                                               */
#*---------------------------------------------------------------------*/
wc:
	@ wc *.scm
	@ echo "wc done..."
	@ $(BEEP)
	@ echo "-------------------------------"
	
