#
# @(#)GNUmakefile	1.21 99/06/09
#

BUILDDIR  = ../..
include $(BUILDDIR)/Platform.gmk
PACKAGE   = javax.swing
PRODUCT   = com
SWING_SRC = $(SHARE_SRC)/classes/javax/swing
include $(BUILDDIR)/makefiles/Defs.gmk

ifeq ($(NOCORE),true)
BINDIR=$(BOOTDIR)/bin
JAVAC_CMD  = $(LATEST_JDK12)/bin/javac $(JAVAC_VMFLAGS) -sysclasspath $(CLASSBINDIR):$(BOOTDIR)/jre/lib/rt.jar -sourcepath 1.2_src:$(VPATH.java) -d $(CLASSDESTDIR)
endif

#
# Files
#
include $(MINCLUDES)com_sun_java_swing.jmk
include $(MINCLUDES)com_sun_java_swing.mmk

#
# Rules
#
all: sources classes other_files plaf html32dtd

clean:: sources.clean classes.clean plaf.clean html32dtd.clean

html32dtd html32dtd.clean:
	@echo ">>>Recursively making "$@" @ `date` ..."; \
	cd html32dtd; $(MAKE) RELEASE=$(RELEASE) FULL_VERSION=$(FULL_VERSION) NOCORE=$(NOCORE) $@\
        || exit 1; cd ..; \
	echo "<<<Finished Recursively making "$@" @ `date`." ; \

plaf:
	@echo ">>>Recursively making "$@" @ `date` ..."; \
	cd plaf; $(MAKE) RELEASE=$(RELEASE) FULL_VERSION=$(FULL_VERSION) NOCORE=$(NOCORE) all\
        || exit 1; cd ..; \
	echo "<<<Finished Recursively making "$@" @ `date`." ; \

plaf.clean:
	@echo ">>>Recursively making "$@" @ `date` ..."; \
	cd plaf; $(MAKE) RELEASE=$(RELEASE) FULL_VERSION=$(FULL_VERSION) clobber\
        || exit 1; cd ..; \
	echo "<<<Finished Recursively making "$@" @ `date`." ; \

.PHONY: html32dtd html32dtd.clean plaf plaf.clean

MUNGE_DIR = 1.2_src

FILES_java = $(MUNGE_FILES) $(JDK_1_2_FILES) $(COMMON_FILES)

#
# Include
#
include $(BUILDDIR)/makefiles/Classes.gmk

FILES_source = $(MUNGE_FILES:%.java=$(MUNGE_DIR)/%.java)

SOURCEPATH = $(MUNGE_DIR):$(SHARE_SRC)/classes

sources: swing_sources

swing_sources: $(MUNGE_DIR) Munge.class $(FILES_source)
	@echo $(FILES_source)

$(MUNGE_DIR):	
	mkdir $(MUNGE_DIR)

sources.clean:
	rm -rf $(MUNGE_DIR) Munge*.class

other_files: $(MISC_FILES)

ifdef JAE_ONLY
MUNGE_JAVAC = $(BOOTDIR)/bin/javac
MUNGE_JAVA = $(BOOTDIR)/bin/java
else
MUNGE_JAVAC = $(BINDIR)/javac
MUNGE_JAVA = $(BINDIR)/java
endif

CONVERT_CMD = $(MUNGE_JAVA) Munge -DJDK1.2

Munge.class: ../../../share/tools/munge/Munge.java
	$(MUNGE_JAVAC) -d . $?

$(CLASSBINDIR)/%.gif: $(SHARE_SRC)/classes/%.gif
	@mkdir -p `dirname $@`
	@rm -f $@
	cp $? $@

$(CLASSBINDIR)/%.css: $(SHARE_SRC)/classes/%.css
	@mkdir -p `dirname $@`
	@rm -f $@
	cp $? $@

$(CLASSBINDIR)/%.bdtd: $(SHARE_SRC)/classes/%.bdtd
	@mkdir -p `dirname $@`
	@rm -f $@
	cp $? $@

$(CLASSBINDIR)/%.txt: $(SHARE_SRC)/classes/%.txt
	@mkdir -p `dirname $@`
	@rm -f $@
	cp $? $@

#
# LabelView2D.java is a 1.2 version of LabelView.java.  Unfortunately
# javadoc has problems if both versions define the same class, so
# we avoid this problem by having the class names be different. 
# In order to get the right class file for the 1.2 version, we
# replace the placeholder classname (LabelView2D) with the real
# classname (LabelView) when generating the 1.2 specific source
# files.
# 
#
$(MUNGE_DIR)/%LabelView.java: $(SHARE_SRC)/classes/%LabelView2D.java
	@mkdir -p `dirname $@`
	sed s/LabelView2D/LabelView/ $? > $@

$(MUNGE_DIR)/%.java: $(SHARE_SRC)/classes/%.java
	@mkdir -p `dirname $@`
	$(CONVERT_CMD) $? > $@

# Each file in MUNGE_FILES must have an explicit rule to force the right
# file to be included in .classes.list.  In theory, this should work:
#
#    $(CLASSDESTDIR)/%.class: $(MUNGE_DIR)/%.java
#	@echo $? >>.classes.list
#
# but I can't get it to take precedence over the standard rules.

$(CLASSDESTDIR)/javax/swing/DebugGraphics.class: $(MUNGE_DIR)/javax/swing/DebugGraphics.java
	@echo $? >>.classes.list

$(CLASSDESTDIR)/javax/swing/DefaultListCellRenderer.class: $(MUNGE_DIR)/javax/swing/DefaultListCellRenderer.java
	@echo $? >>.classes.list

$(CLASSDESTDIR)/javax/swing/JComponent.class: $(MUNGE_DIR)/javax/swing/JComponent.java
	@echo $? >>.classes.list

$(CLASSDESTDIR)/javax/swing/SwingGraphics.class: $(MUNGE_DIR)/javax/swing/SwingGraphics.java
	@echo $? >>.classes.list

$(CLASSDESTDIR)/javax/swing/SwingUtilities.class: $(MUNGE_DIR)/javax/swing/SwingUtilities.java
	@echo $? >>.classes.list

$(CLASSDESTDIR)/javax/swing/SystemEventQueueUtilities.class: $(MUNGE_DIR)/javax/swing/SystemEventQueueUtilities.java
	@echo $? >>.classes.list

$(CLASSDESTDIR)/javax/swing/colorchooser/SyntheticImage.class: $(MUNGE_DIR)/javax/swing/colorchooser/SyntheticImage.java
	@echo $? >>.classes.list

$(CLASSDESTDIR)/javax/swing/JDialog.class: $(MUNGE_DIR)/javax/swing/JDialog.java
	@echo $? >>.classes.list

$(CLASSDESTDIR)/javax/swing/JRootPane.class: $(MUNGE_DIR)/javax/swing/JRootPane.java
	@echo $? >>.classes.list

$(CLASSDESTDIR)/javax/swing/JWindow.class: $(MUNGE_DIR)/javax/swing/JWindow.java
	@echo $? >>.classes.list

$(CLASSDESTDIR)/javax/swing/text/LabelView.class: $(MUNGE_DIR)/javax/swing/text/LabelView.java
	@echo $? >>.classes.list

$(CLASSDESTDIR)/javax/swing/text/JTextComponent.class: $(MUNGE_DIR)/javax/swing/text/JTextComponent.java
	@echo $? >>.classes.list

$(CLASSDESTDIR)/javax/swing/text/Utilities.class: $(MUNGE_DIR)/javax/swing/text/Utilities.java
	@echo $? >>.classes.list

