-include ../local.config

ifdef ADMIN
  include Install/GNUmakefile.admin
endif


all:

CFLAGS=-Wall -g -I. -I/usr/lib/glib/include/ -I$(OMEGA_HOME)/include/Corba -D_R_=1 -DUSE_R -I$(R_HOME)/include

ifndef OUTPUT_DIR
  OUTPUT_DIR=/tmp/Foo
endif

AUTO_SRC=GtkEnum.c GtkFuncs.c  GdkEnum.c GdkFuncs.c
SRC=$(AUTO_SRC:%.c=${OUTPUT_DIR}/%.c) gtkUtils.c

all: $(SRC)

ifndef PYTHON_GENERATE_DIR
   PYTHON_GENERATE_DIR=$(HOME)/pygtk-0.6.11/generate
endif

ifndef DEF_FILES
  DEF_FILES=gtk gdk gnome
endif

DEF_FILES_LIST=$(foreach i, $(DEF_FILES), '$i',)

ifdef DEF_NAMES
 CLASS_NAMES= $(foreach i, $(DEF_NAMES), '$i',)
else
 CLASS_NAMES=,
endif

ifndef ADMIN
generate %.c:
	(PYTHONPATH=$(PYTHON_GENERATE_DIR):$(shell pwd):${PYTHONPATH}; export PYTHONPATH ; \
	     echo "library(RGtkBindingGenerator); tmp = generateCodeFiles(${DEF_FILES_LIST} classNames=c($(CLASS_NAMES)), dir=c('${OUTPUT_DIR}', '${OUTPUT_DIR}/Src'), allDefs = NULL); if(FALSE) {generateInternalRd(, 'RGtk', tmp[['definedRFuncs']], dir='..')}; createRegistrationTables('gdk_flush', tmp[['klasses']][['Gtk']], '../RGtkInit.h')" | R --vanilla --save)

endif


# GtkDefs <- generateCodeFiles("gtk", "gdk", "gnome/gtkhtml", "gnome/gnomeui", classNames = c("Gtk", "Gdk", "GtkHTML", "Gnome"), dir=c("/home/duncan/Projects/org/omegahat/R/Gtk", "/home/duncan/Projects/org/omegahat/R/Gtk/Src"), allDefs = NULL)

#	(PYTHONPATH=$(PYTHON_GENERATE_DIR):$(shell pwd):${PYTHONPATH}; export PYTHONPATH ; \
#	     echo "source('genCode.S'); generateCodeFiles(${DEF_FILES_LIST} classNames=c($(CLASS_NAMES)), dir='${OUTPUT_DIR}')" | R --vanilla)





#	(PYTHONPATH=$(PYTHON_GENERATE_DIR):$(shell pwd); export PYTHONPATH ; echo "source('genCode.S'); source('pyGen.R') ; gtkDefs <- getDefs('gtk.defs'); genCode(gtkDefs,dir='$(OUTPUT_DIR)'); gdkDefs <- getDefs('gdk.defs'); genCode(gdkDefs, 'gdk', '$(OUTPUT_DIR)', gtkDefs); allDefs <- mergeDefs(gdkDefs, gtkDefs) ; gnomeDefs <- getDefs('gnome.defs'); genCode(gnomeDefs, 'gnome', '${OUTPUT_DIR}', allDefs)" | R --vanilla)
