#*=====================================================================*/
#*    serrano/prgm/project/bigloo/xlib/Makefile                        */
#*    -------------------------------------------------------------    */
#*    Author      :  Manuel Serrano                                    */
#*    Creation    :  Mon Dec  4 10:25:59 1995                          */
#*    Last change :  Thu Apr 11 09:57:01 1996 (serrano)                */
#*    -------------------------------------------------------------    */
#*    This makefile build the X11 Bigloo declaration and the examples  */
#*    using the Xlib with Bigloo.                                      */
#*=====================================================================*/

#*---------------------------------------------------------------------*/
#*     Les flags ...                                                   */
#*---------------------------------------------------------------------*/
INCLUDEDIR	= /usr/include
XINCLUDEDIR	= $(INCLUDEDIR)/X11
CC              = gcc
BIGLOO          = bigloo
CIGLOO		= cigloo
CGFLAGS		= -w -type Status -type Bool -type wchar_t -no-directives -macro -no-define-fun
CPPFLAGS	= -DNeedFunctionPrototypes=1 -D_Xconst=
AFILE           = .afile
SHELL           = /bin/sh
CLEAN		= cleaning

#*---------------------------------------------------------------------*/
#*    Les flags par defauts (pour pouvoir faire make *.o)              */
#*---------------------------------------------------------------------*/
BDBGFLAGS	= -afile $(AFILE) -g2 -cg -O -cc $(CC) +rm -fsharing
DOPTFLAGS	= -afile $(AFILE) -O2 -cc $(CC) -rm -fsharing -unsafe
BFLAGS		= $(BDBGFLAGS)
CFLAGS          = 

#*---------------------------------------------------------------------*/
#*    examples                                                         */
#*---------------------------------------------------------------------*/
XEXAMPLES	= hello

#*---------------------------------------------------------------------*/
#*    The sources                                                      */
#*---------------------------------------------------------------------*/
#*--- Xincludes -------------------------------------------------------*/
XINCLUDE	= X Xlib Xutil Xatom Xresource cursorfont keysym

XINCLUDE_H	= $(XINCLUDE:%=include/%.h)
XINCLUDE_EH	= $(XINCLUDE:%=include/%.eh)

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

#*---------------------------------------------------------------------*/
#*    lib                                                              */
#*---------------------------------------------------------------------*/
lib: include

#*---------------------------------------------------------------------*/
#*    include                                                          */
#*---------------------------------------------------------------------*/
include: $(XINCLUDE_H) $(XINCLUDE_EH) xlib.sch

#*---------------------------------------------------------------------*/
#*    xlib.sch                                                         */
#*---------------------------------------------------------------------*/
xlib.sch: Makefile xlib-macro.sch 
	@ echo xlib.sch:
	@ \rm -f xlib.sch
	@ echo "(directives " > xlib.sch
	@ echo " (foreign (type status long \"long\")" >> xlib.sch
	@ echo "          (type wchar_t short \"short\")" >> xlib.sch
	@ echo "          (include \"/usr/include/sys/types.h\")" >> xlib.sch
	@ echo "          (include \"stdio.h\")" >> xlib.sch
	@ echo "          (include \"X11/Xlib.h\")" >> xlib.sch
	@ echo "          (include \"X11/Xutil.h\")" >> xlib.sch
	@ echo "          )" >> xlib.sch
	@ $(CIGLOO) -v $(CGFLAGS) $(XINCLUDE_EH) >> xlib.sch
	@ cat xlib-macro.sch >> xlib.sch
	@ echo "   )" >> xlib.sch

#*---------------------------------------------------------------------*/
#*    install                                                          */
#*---------------------------------------------------------------------*/
install: xlib.sch
	@ cp xlib.sch `$(BIGLOO) -s -eval '(begin (print *lib-dir*) (exit -1))'`

#*---------------------------------------------------------------------*/
#*    clean                                                            */
#*---------------------------------------------------------------------*/
clean:
	@ echo $(CLEAN)...
	@- find include \( -name '*~' -o -name '*.BAK' \) -exec \rm -f {} \;
	@- \rm -f xlib.sch *~ *.BAK
	@ echo "done."

#*---------------------------------------------------------------------*/
#*    Clean                                                            */
#*---------------------------------------------------------------------*/
Clean:
	@ $(MAKE) clean CLEAN=Cleaning
	@ - find include \( -name '*.eh' -o -name '*.h' \) -exec \rm -f {} \;
	@ ( for p in ${XEXAMPLES} ;\
            do (cd example/$$p; $(MAKE) clean) ; done )

#*---------------------------------------------------------------------*/
#*    .h --> .eh                                                       */
#*---------------------------------------------------------------------*/
.h.eh:
	@ echo $*.h:
	@ gcc $(CPPFLAGS) -E -dD -P $*.h > $*.eh

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

#*---------------------------------------------------------------------*/
#*    .h --> .h                                                        */
#*---------------------------------------------------------------------*/
include/X.h: $(XINCLUDEDIR)/X.h
	@ echo $(XINCLUDEDIR)/X.h:
	@ cp $(XINCLUDEDIR)/X.h include

include/Xatom.h: $(XINCLUDEDIR)/Xatom.h
	@ echo $(XINCLUDEDIR)/Xatom.h:
	@ cp $(XINCLUDEDIR)/Xatom.h include

include/Xlib.h:  $(XINCLUDEDIR)/Xlib.h
	@ echo $(XINCLUDEDIR)/Xlib.h:
	@ cat $(XINCLUDEDIR)/Xlib.h | egrep -v "#include <(sys|X11/X.h|stddef)" > include/Xlib.h

include/Xresource.h: $(XINCLUDEDIR)/Xresource.h
	@ echo $(XINCLUDEDIR)/Xresource.h:
	@ cat $(XINCLUDEDIR)/Xresource.h | egrep -v "_XFUNCPROTO(BEGIN|END)" > include/Xresource.h

include/Xutil.h:  $(XINCLUDEDIR)/Xutil.h
	@ echo $(XINCLUDEDIR)/Xutil.h:
	@ cat $(XINCLUDEDIR)/Xutil.h | egrep -v "_XFUNCPROTO(BEGIN|END)" >> include/Xutil.h

include/cursorfont.h:  $(XINCLUDEDIR)/cursorfont.h
	@ echo $(XINCLUDEDIR)/cursorfont.h:
	@ cp $(XINCLUDEDIR)/cursorfont.h include

include/keysym.h:  $(XINCLUDEDIR)/keysym.h
	@ echo $(XINCLUDEDIR)/keysym.h:
	@ cp $(XINCLUDEDIR)/keysym.h include

