#
# Makefile created at Sun Dec 15 20:33:42 2002, by mmake
#

# Programs (with common options):
SHELL		= /bin/sh
RM              = rm -f
MV              = mv -f
XARGS		= xargs
CAT		= cat
FIND            = find

# Build programs
JAVAC           = jikes-classpath
JAVADOC         = javadoc-gjdoc
JAR             = fastjar

# Build flags
JAVAC_FLAGS     = -classpath src:/usr/share/java/debbug.jar:/usr/share/java/gtk2.4.jar:/usr/share/java/gnome2.6.jar:/usr/share/java/glade2.6.jar:/usr/share/java/oro.jar:/usr/share/java/libgetenv-java.jar -d build --nowarn
JAVADOC_FLAGS   = 
JAR_FLAGS       = cvf0

# ------------------------------------------------------------------- #

# The name of the jar file to install
JAR_FILE        = debbuggtk.jar

# Packages we should compile
PACKAGES = \
	src.com.tildemh.debbuggtk src/com.tildemh.debbug


# ------------------------------------------------------------------- #

# A marker variable for the top level directory
TOPLEVEL	:= .

# Subdirectories with java files:
JAVA_DIRS	:= $(subst .,/,$(PACKAGES)) $(TOPLEVEL)

# Subdirectories with only resource files:
RESOURCE_DIRS	:= $(subst .,/,$(RESOURCES))

# All the .java source files:
JAVA_SRC	:= $(foreach dir, $(JAVA_DIRS), $(wildcard $(dir)/*.java))
JAVA_SRC	:= $(XJAVA_OBJS) $(JAVA_SRC)

# Objects that should go into the jar file. (find syntax)
JAR_OBJS	:= \( -name '*.class' -o -name '*.gif' -o -name "*.au" \
		       -o -name '*.properties' \)

# The intermediate java files and main classes we should build:
JAVA_OBJS	:= $(XJAVA_OBJS) $(JAVA_SRC:.java=.class)

# ------------------------------------------------------------------- #


define check-exit
|| exit 1

endef


# -----------
# Build Rules
# -----------

%.class: %.java
	$(JAVAC) $(JAVAC_FLAGS) $<

%.jar: $(JAVA_OBJS) $(RESOURCE_OBJS)
	cd build; \
	$(FIND) $(TOPLEVEL) $(JAR_OBJS) -print | $(XARGS) \
	$(JAR) $(JAR_FLAGS) $(JAR_FILE) 


# -------
# Targets
# -------

.PHONY: all jar install uninstall doc clean depend tags

dir:
	-mkdir build
all::	dir $(JAVA_OBJS)

# Jar target
jar: dir  $(JAR_FILE)
clean::
	$(RM) $(JAR_FILE)


# Doc target
doc: dir	$(JAVA_SRC)
	cd src;	javadoc-gjdoc com.tildemh.debbuggtk; 
	# javadoc-gjdoc is a little fragile at the moment...
	-mkdir build/doc
	-mv src/*.html src/*.xml src/common build/doc

# Various cleanup routines
clean::
	$(FIND) . \( -name '*~' -o -name '*.class' \) -print | \
	$(XARGS) $(RM) 
	$(FIND) . -name '*.u' -print | $(XARGS) $(RM)
	-rm -r build

ifneq ($(strip $(XJAVA_SRC)),)
clean::
	$(RM) $(XJAVA_OBJS)
endif
######################

CLASSES:=$(shell find -name *.java)
COMPILED_CLASSES:=$(shell find -name *.java | sed -e 's=\.java=\.o=g' )

%.o: %.java
	gcj -g -O --classpath=.:src:/usr/share/java/oro.jar:/usr/share/java/debbug.jar:/usr/share/java/gtk2.4.jar:/usr/share/java/gnome2.6.jar:/usr/share/java/glade2.6.jar -o $@ -c \
		$<

bugwatcher: $(COMPILED_CLASSES)
	gcj -g $(COMPILED_CLASSES) --main=com.tildemh.debbuggtk.BugWatcher -L/home/mh/dev/jdebbug/libdebbug-java/ -ldebbugjava -L/usr/lib/jni -lgtkjar2.4 -lgnomejar2.6 -lgladejar2.6 -lorojar -L/home/mh/oro/jakarta-oro-2.0.7/src -o bugwatcher

native: bugwatcher
