#*=====================================================================*/
#*    serrano/prgm/project/bigloo/examples/Embedded/Makefile           */
#*    -------------------------------------------------------------    */
#*    Author      :  Manuel Serrano                                    */
#*    Creation    :  Tue Jan 30 15:19:19 1996                          */
#*    Last change :  Mon Aug  8 11:15:17 2005 (serrano)                */
#*    Copyright   :  1996-2005 Manuel Serrano, see LICENSE file        */
#*    -------------------------------------------------------------    */
#*    An example of embedded bigloo program.                           */
#*=====================================================================*/

#*---------------------------------------------------------------------*/
#*    The default configuration                                        */
#*---------------------------------------------------------------------*/
include ../../Makefile.config

#*---------------------------------------------------------------------*/
#*    flags                                                            */
#*---------------------------------------------------------------------*/
BIGLOO          = $(BOOTBINDIR)/bigloo
BGLOPTFLAGS	= -O +rm
BGLFLAGS	= $(BGLOPTFLAGS)                                        \
                  -copt "-DBIGLOO_MAIN=bigloo_initialize -DBIGLOO_EXIT='BUNSPEC,'"

CFLAGS 		= -g
LNFLAGS		= 
LBIGLOO		= `$(BIGLOO) -eval '(begin (print *default-lib-dir*) (exit 0))'`
LIBFLAGS	= -L$(LIBDIR) -lbigloogc-$(RELEASE) -lbigloo_s-$(RELEASE) $(EXTRALIBS) -lm 

DEST		= embedded

#*---------------------------------------------------------------------*/
#*    Objects and sources                                              */
#*---------------------------------------------------------------------*/
#*--- c ---------------------------------------------------------------*/
C_FILE		= c-main

C_OBJ		= $(C_FILE:%=%.o)
C_SRC 		= $(C_OBJ:%.o=%.c)

#*--- scm -------------------------------------------------------------*/
SCM_FILE	= scm-main fib

SCM_OBJ		= $(SCM_FILE:%=%.o)
SCM_SRC		= $(SCM_OBJ:%.o=%.scm)

#*---------------------------------------------------------------------*/
#*    All objects and sources                                          */
#*---------------------------------------------------------------------*/
OBJ		= $(C_OBJ) $(SCM_OBJ)
SRC		= $(C_SRC) $(SCM_SRC)

POPULATION      = $(SRC:%=examples/Embedded/%) examples/Embedded/Makefile

#*---------------------------------------------------------------------*/
#*    the goals.                                                       */
#*---------------------------------------------------------------------*/
$(DEST): $(OBJ) 
	$(CC) $(LNFLAGS) $(OBJ) $(CFLAGS) -o $(DEST) $(LIBFLAGS)

test: $(DEST)
	./$(DEST) 20

pop:
	@ echo $(POPULATION)

#*---------------------------------------------------------------------*/
#*    Cleaning                                                         */
#*---------------------------------------------------------------------*/
.PHONY: clean

clean:
	@ find . \( -name '*[~%]' \
                       -o -name '.??*[~%]' \
                       -o -name '#*#' \
                       -o -name '?*#' \
                       -o -name \*core \) \
                     -type f -exec $(RM) {} \;   
	@- $(RM) -f $(OBJ)
	@- $(RM) -f $(DEST) 

#*---------------------------------------------------------------------*/
#*    Suffixes                                                         */
#*---------------------------------------------------------------------*/
.SUFFIXES:
.SUFFIXES: .scm .c .o

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

#*---------------------------------------------------------------------*/
#*    .scm.o                                                           */
#*---------------------------------------------------------------------*/
.scm.o:
	@ $(BIGLOO) -c $(BGLFLAGS) $*.scm -o $*.o

