#*=====================================================================*/
#*    Makefile                                                         */
#*    -------------------------------------------------------------    */
#*    Author      :  bloch                                             */
#*    Creation    :  Wed Mar 17 15:38:22 1999                          */
#*    Last change :                                                    */
#*    -------------------------------------------------------------    */
#*    Automatically generated file:                                    */
#*       bmake                                                         */
#*          -fapplication                                              */
#*          -main                                                      */
#*          Src/html-query-grammar.scm                                 */
#*          -o                                                         */
#*          Makefile                                                   */
#*=====================================================================*/
SHELL           = /bin/sh
#*---------------------------------------------------------------------*/
#*    Target and Project                                               */
#*---------------------------------------------------------------------*/
PROJECT		= HtmlQueryGrammar
VERSION		= 0
LIB_DIR		= Lib
LIB_BASENAME	= hqbgl
LIB_MKSRC	= Src/make-html-parser-lib.scm
INST_LIB_DIR	= $$HOME/Scheme/Lib

#*---------------------------------------------------------------------*/
#*    Compilers, Flags and Tools ...                                   */
#*---------------------------------------------------------------------*/
# The Bigloo compiler
BIGLOO          = bigloo
HEAPFLAGS	= -unsafe -q -mkaddheap -mkaddlib
LIBFLAGS	= -unsafe -q -rm -unsafev -c -mkaddlib -O3 -cc gcc -fsharing
LIBFLAGS_G	= -q -rm -unsafev -c -mkaddlib -O3 -cc gcc -g -cg -fsharing
LIBFLAGS_LD	= -G -lm -lc
BFLAGS_COMMON   = -afile $(AFILE) 
BFLAGS_G        = 
BFLAGS_O        = -Obench -farithmetic -static-bigloo
BFLAGS_P        = $(BFLAGS_COMMON) $(BFLAGS_O) -p
BFLAGS          = $(BFLAGS_COMMON) $(BFLAGS_G)
LDFLAGS_G       = 
LDFLAGS_O       = -s
LDFLAGS_P       = 
LDFLAGS         = $(LDFLAGS_G)
# The C compiler
CC              = gcc
CFLAGS_O	= -O2
CFLAGS_G	= -g
CFLAGS          = $(CFLAGS_G)
CFLAGS_P        = $(CFLAGS) -p
# Which shell to use
SHELL           = /bin/sh
# Revision system
PRCS            = prcs
# Tar and compress
TAR             = tar
TARCOPT         = cf
TARXOPT         = xfp
COMPRESS        = gzip
# Afile
AFILE_EXE       = afile
AFILE		= access-file.scm
# Tags
TAGS_EXE	= btags
TAGS		= .etags
# Depend
DEPEND_EXE	= bdepend
BMAKE_EXE	= bmake
# Profiling
BPROF_EXE	= bprof
PROF		= PROF
PROFILE_ARGS	= 

#*---------------------------------------------------------------------*/
#*    Suffixes ...						       */
#*---------------------------------------------------------------------*/
.SUFFIXES:

#*---------------------------------------------------------------------*/
#*    Automatic rules ...					       */
#*---------------------------------------------------------------------*/
%.o: %.scm
	@ $(BIGLOO) $(BFLAGS) -c $*.scm -o $*.o

%_p.o: %.scm
	@ $(BIGLOO) $(BFLAGS_P) -c $*.scm -o $*_p.o

%.mco: %.scm
	@ $(BIGLOO) $(BFLAGS) -s -mco $*.scm -o $*.mco

%.o: %.c
	@ echo $*.c:; $(CC) $(CFLAGS) -c $*.c -o $*.o

%_p.o: %.c
	@ echo $*.c:; $(CC) $(CFLAGS_P) -c $*.c -o $*.o; mv $*.o $@

%_p.mco: %.scm
	@ $(BIGLOO) $(BFLAGS) -s -mco $*.scm -o $*.mco

#*---------------------------------------------------------------------*/
#*    Objects and sources ...					       */
#*---------------------------------------------------------------------*/
DOCUMENTATION =
OBJECTS =  Src/html-query-grammar.o 
OBJECTS_P =  Src/html-query-grammar_p.o 
SOURCES = Src/html-query-grammar.scm 
SOURCES_C = Src/html-query-grammar.c 
POPULATION = $(SOURCES) $(AFILE) $(LIB_MKSRC) Makefile

#*---------------------------------------------------------------------*/
#*    trashcan ...						       */
#*---------------------------------------------------------------------*/
All: all
all: 

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

# The clean entry removes all file that may generated but the binary files
clean: 
	-rm -f $(OBJECTS)
	-rm -f $(OBJECTS_P)
	-rm -f $(SOURCES_C)
#	@- rm -f $(AFILE)
	@- rm -f $(TAGS)
	@- rm -f $(PROF)
	@- rm -f gmon.out bmon.out
	@ find . \( -name '*[~%]'                   \
                       -o -name '.??*[~%]'          \
                       -o -name '#*#'               \
                       -o -name '?*#'               \
                       -o -name \*core \)           \
                     -type f -exec rm {} \;   
	@ echo "cleanup done..."
	@ echo "-------------------------------"

# clean remove also the binary files
cleanall: clean
	-rm -rf $(LIB_DIR)

#*---------------------------------------------------------------------*/
#*    Population and revision control                                  */
#*---------------------------------------------------------------------*/
.PHONY: version pop revision populate checkin checkout infofile checkoutfile

# display the current version
version:
	@ echo $(VERSION)

# just display the population
pop:
	@ echo $(POPULATION)

# make a prcs revision
revision: populate checkin

populate: $(PROJECT).prj
	$(PRCS) populate --force $(PROJECT) $(POPULATION)

checkin: 
	$(PRCS) checkin --force -r$(VERSION).@ $(PROJECT)

# display how to check out a prcs revision
checkout:
	@ echo "$(PRCS) checkout -r$(VERSION).@ $(PROJECT)"

infofile:
	@ $(PRCS) info --force $(PROJECT) $(FILE)

checkoutfile:
	@ $(PRCS) checkout --force -r$(FILEVERSION) $(PROJECT) $(FILE)

$(PROJECT).prj:
	@ $(PRCS) checkout --force $(PROJECT)
	@ cat $(PROJECT).prj | sed -e s,"(Populate-Ignore ())","(Populate-Ignore (\"\\\\\\\\\\.o\$$\" \"\\\\\\\\\\~$$\" \"\\\\\\\\\\.log\$$\" \"\\\\\\\\\\.ps\$$\" \"\\\\\\\\\\.aux\$$\" \"\\\\\\\\\\.date_of_backup\$$\" \"\\\\\\\\\\.so\$$\" \"\\\\\\\\\\.a\$$\"))", > $(PROJECT).dprj; rm -f $(PROJECT).prj; mv $(PROJECT).dprj $(PROJECT).prj


#*---------------------------------------------------------------------*/
#*    Heap & Lib ...						       */
#*---------------------------------------------------------------------*/

heap:
	mkdir -p $(LIB_DIR) 
	$(BIGLOO) $(BFLAGS_COMMON) $(HEAPFLAGS) $(LIB_MKSRC)   \
		-addheap $(LIB_DIR)/$(LIB_BASENAME).heap
lib:
	$(MAKE) heap
	$(BIGLOO) $(BFLAGS_COMMON) $(LIBFLAGS_G) $(SOURCES)  \
		-o $(LIB_DIR)/$(LIB_BASENAME).o
	ar qcv $(LIB_DIR)/lib$(LIB_BASENAME).a $(LIB_DIR)/$(LIB_BASENAME).o
	ranlib $(LIB_DIR)/lib$(LIB_BASENAME).a
	ld $(LIBFLAGS_LD) -o $(LIB_DIR)/lib$(LIB_BASENAME).so \
		$(LIB_DIR)/$(LIB_BASENAME).o
	$(BIGLOO) $(BFLAGS_COMMON) $(LIBFLAGS) $(SOURCES)  \
		-o $(LIB_DIR)/$(LIB_BASENAME)_u.o
	ar qcv $(LIB_DIR)/lib$(LIB_BASENAME)_u.a $(LIB_DIR)/$(LIB_BASENAME)_u.o
	ranlib $(LIB_DIR)/lib$(LIB_BASENAME)_u.a
	ld $(LIBFLAGS_LD) -o $(LIB_DIR)/lib$(LIB_BASENAME)_u.so \
		$(LIB_DIR)/$(LIB_BASENAME)_u.o
	chmod go+r $(LIB_DIR)/*
	chmod ugo+x $(LIB_DIR)/*.so

#*---------------------------------------------------------------------*/
#*    Tar ...							       */
#*---------------------------------------------------------------------*/
tar.gz: $(PROJECT).tar.gz

$(PROJECT).tar.gz: ../$(PROJECT).tar
	@ $(COMPRESS) ../$(PROJECT).tar; mv ../$(PROJECT).tar.gz .

# This entry works only with gnu-make. Change it for other Makefiles.
../$(PROJECT).tar: 
	@ cd ..; \
	  $(TAR) $(TARCOPT) $(PROJECT).tar $(POPULATION:%=$(PROJECT)/%)

#*---------------------------------------------------------------------*/
#*    Bee ...							       */
#*---------------------------------------------------------------------*/
.PHONY: ude forceafile forcetags bpdend updatemakefile

ude:
	@ $(MAKE) $(AFILE)
	@ $(MAKE) $(TAGS)
	@ $(MAKE) bdepend

forceafile:
	@ if [ ! -f $(AFILE) ]; then \
             $(MAKE) $(AFILE);       \
          fi

$(AFILE): $(SOURCES)
	@ $(AFILE_EXE) -o $(AFILE) $(SOURCES)

forcetags:
	@ if [ ! -f $(TAGS) ]; then  \
             $(MAKE) $(TAGS);        \
          fi

$(TAGS): $(SOURCES)
	@ $(TAGS_EXE) -o $(TAGS) $(SOURCES)

bdepend: $(SOURCES)
	@ $(DEPEND_EXE) -o Makefile $(SOURCES)

updatemakefile:
	@ $(BMAKE_EXE) -o Makefile Src/html-query-grammar.scm
	@ $(MAKE) ude

#*---------------------------------------------------------------------*/
#*    bmake entries ...                                                */
#*    -------------------------------------------------------------    */
#*    These entries are used by bmake to extend the Makefile. Don't    */
#*    use them.                                                        */
#*---------------------------------------------------------------------*/
.PHONY: getobjects getsources getpopulation getbinary

getobjects:
	@ echo $(OBJECTS)

getsources:
	@ echo $(SOURCES)

getpopulation:
	@ echo $(POPULATION)

getbinary:
	@ echo $(TARGET_DIR)/$(TARGET_NAME)
#bdepend start (don't edit)
#*---------------------------------------------------------------------*/
#*    Dependencies ...                                                 */
#*---------------------------------------------------------------------*/

#bdepend stop

#*---------------------------------------------------------------------*/
#*      Installation                                                   */
#*---------------------------------------------------------------------*/

install:
	mkdir -p $(INST_LIB_DIR)
	cp $(LIB_DIR)/* $(INST_LIB_DIR)
	chmod go+r $(INST_LIB_DIR)/*
	chmod ugo+x $(INST_LIB_DIR)/*.so
