#
# @(#)Makefile	1.58 99/02/11
#
# Makefile for building javax.swing class files. 
#

BUILDDIR = ..\..
LOCATION = javax\swing
!include $(BUILDDIR)\makefiles\defs.nmk

SUBDIRS = plaf

#
# Files to compile.
#
PKG   = javax.swing
PKG2  = javax.swing.border
PKG3  = javax.swing.colorchooser
PKG4  = javax.swing.event
PKG5  = javax.swing.filechooser
PKG6  = javax.swing.table
PKG7  = javax.swing.text
PKG8  = javax.swing.text.html
PKG9  = javax.swing.text.html.parser
PKG10 = javax.swing.text.rtf
PKG11 = javax.swing.tree
PKG12 = javax.swing.undo
!include $(MINCLUDES)\com_sun_java_swing.jmk

MUNGE_DIR = 1.2_src

FILES_java = $(MUNGE_FILES) $(JDK_1_2_FILES) $(COMMON_FILES)
FILES_java = $(FILES_java:/=\)

# nmake doesn't allow vars in subst value. Hard code for now.
SWING_java = $(MUNGE_FILES:..\..\classes=1.2_src)
SWING_java = $(SWING_java:/=\)

#
# Other variables.
#
JAVACFLAGS = -sourcepath $(MUNGE_DIR);$(SHARE_SRC)\classes
SWING_SOURCES     = $(SHARE_SRC)\classes\javax\swing
SWING_CLASSES     = $(CLASSBINDIR)\javax\swing
SWING_DIRS = \
	$(MUNGE_DIR) \
	$(MUNGE_DIR)\com\ \
	$(MUNGE_DIR)\com\sun\ \
	$(MUNGE_DIR)\com\sun\java\ \
	$(MUNGE_DIR)\javax \
	$(MUNGE_DIR)\javax\swing \
	$(MUNGE_DIR)\javax\swing\text \
	$(MUNGE_DIR)\javax\swing\colorchooser \
	$(MUNGE_DIR)\javax\swing\text\html

OTHER_DIRS = \
	$(CLASSBINDIR)\javax\swing \
	$(CLASSBINDIR)\javax\swing\text \
	$(CLASSBINDIR)\javax\swing\text\html \
	$(CLASSBINDIR)\javax\swing\text\html\icons \
	$(CLASSBINDIR)\javax\swing\text\rtf \
	$(CLASSBINDIR)\javax\swing\text\rtf\charsets

#
# Rules.
#
!include $(BUILDDIR)\makefiles\classes.nmk

#
# Standard support is for 12 packages. Swing has 13. Maybe the
# standard rules should support 15 packages. For now provide extra
# vpaths for these packages. Clean not required because these are
# subpackages.
#
JAS = java\awt\swing
{$(SHARE_SRC)\classes\$(JAS)\beaninfo}.java{$(CLASSBINDIR)\$(JAS)\beaninfo}.class:
	@echo $(?)>> .classes.list

#
# Rules to build classes that build a binary verion of the html dtd for the
# swing.text.html
#
htmldtd htmldtd.clean: 
	cd html32dtd
	$(MAKE) -nologo $(ACTION) RELEASE="$(RELEASE)" FULL_VERSION="$(FULL_VERSION)" $@
        cd ..

.PHONY: htmldtd htmldtd.clean

#
# Create directories for the javax.swing 1.2-specific source and for
# image/resource files. Substitute for mkdir -p.
#
$(SWING_DIRS):
	if not exist $@ mkdir $@

$(OTHER_DIRS):
	if not exist $@ mkdir $@

#
# Install miscellaneous files. Clean not required because this is all
# subpackage level installation.
#
!include $(MINCLUDES)\com_sun_java_swing.mmk
FILES_misc  = $(MISC_FILES:/=\)

$(SUBDIRS): FORCE
	@echo +++Recursively making $(ACTION) $@ ...
	@cd $@
	$(MAKE) -nologo $(ACTION) RELEASE="$(RELEASE)" FULL_VERSION="$(FULL_VERSION)"
	@cd ..
	@echo ---Finished Recursively making $(ACTION) $@.

optimized.epilogue debug.epilogue: swing.misc.install htmldtd $(SUBDIRS)

swing.misc.install: $(OTHER_DIRS) $(FILES_misc)

clean: classes.clean htmldtd.clean
	-$(DELTREE) $(MUNGE_DIR)

.SUFFIXES: .gif .css .txt .bdtd

{$(SWING_SOURCES)\text\html\parser}.bdtd{$(SWING_CLASSES)\text\html\parser}.bdtd:
	-$(DEL) $@
	copy $? $@

{$(SWING_SOURCES)\text\html\icons}.gif{$(SWING_CLASSES)\text\html\icons}.gif:
	-$(DEL) $@
	copy $? $@

{$(SWING_SOURCES)\text\rtf\charsets}.txt{$(SWING_CLASSES)\text\rtf\charsets}.txt:
	-$(DEL) $@
	copy $? $@

{$(SWING_SOURCES)\text\html}.css{$(SWING_CLASSES)\text\html}.css:
	-$(DEL) $@
	copy $? $@

optimized.prologue debug.prologue: swing.sources
clobber: swing.sources.clobber

swing.sources: $(SWING_DIRS) Munge.class $(SWING_java)
swing.sources.clobber: FORCE
	-$(DELTREE) $(SWING_DIRS)
	-$(DEL) Munge.class

Munge.class: ..\..\..\..\build\share\tools\munge\Munge.java
	$(JAVAC_CMD) -d . $?

# pattern rules that generate SWING_java files.

CONVERT_CMD = $(BINDIR)\java -classpath "." Munge -DJDK1.2

$(MUNGE_DIR)\javax\swing\DebugGraphics.java: $(SHARE_SRC)\classes\javax\swing\DebugGraphics.java
	$(CONVERT_CMD) $? > $@

$(MUNGE_DIR)\javax\swing\DefaultListCellRenderer.java: $(SHARE_SRC)\classes\javax\swing\DefaultListCellRenderer.java
	$(CONVERT_CMD) $? > $@

$(MUNGE_DIR)\javax\swing\JComponent.java: $(SHARE_SRC)\classes\javax\swing\JComponent.java
	$(CONVERT_CMD) $? > $@

$(MUNGE_DIR)\javax\swing\SwingGraphics.java: $(SHARE_SRC)\classes\javax\swing\SwingGraphics.java
	$(CONVERT_CMD) $? > $@

$(MUNGE_DIR)\javax\swing\SwingUtilities.java: $(SHARE_SRC)\classes\javax\swing\SwingUtilities.java
	$(CONVERT_CMD) $? > $@

$(MUNGE_DIR)\javax\swing\SystemEventQueueUtilities.java: $(SHARE_SRC)\classes\javax\swing\SystemEventQueueUtilities.java
	$(CONVERT_CMD) $? > $@

$(MUNGE_DIR)\javax\swing\UIManager.java: $(SHARE_SRC)\classes\javax\swing\UIManager.java
	$(CONVERT_CMD) $? > $@

$(MUNGE_DIR)\javax\swing\colorchooser\SyntheticImage.java: $(SHARE_SRC)\classes\javax\swing\colorchooser\SyntheticImage.java
	$(CONVERT_CMD) $? > $@

$(MUNGE_DIR)\javax\swing\JDialog.java: $(SHARE_SRC)\classes\javax\swing\JDialog.java
	$(CONVERT_CMD) $? > $@

$(MUNGE_DIR)\javax\swing\JRootPane.java: $(SHARE_SRC)\classes\javax\swing\JRootPane.java
	$(CONVERT_CMD) $? > $@

$(MUNGE_DIR)\javax\swing\JWindow.java: $(SHARE_SRC)\classes\javax\swing\JWindow.java
	$(CONVERT_CMD) $? > $@

$(MUNGE_DIR)\javax\swing\text\JTextComponent.java: $(SHARE_SRC)\classes\javax\swing\text\JTextComponent.java
	$(CONVERT_CMD) $? > $@

$(MUNGE_DIR)\javax\swing\text\Utilities.java: $(SHARE_SRC)\classes\javax\swing\text\Utilities.java
	$(CONVERT_CMD) $? > $@

#
# LabelView2D.java is a 1.2 version of LabelView.java.  We use the Munge 
# mechanism to copy it into its real name before compiling.
#
$(MUNGE_DIR)\javax\swing\text\LabelView.java: $(SHARE_SRC)\classes\javax\swing\text\LabelView2D.java
	sed s/LabelView2D/LabelView/ $? > $@



# Rules for compiling munged files.
{$(MUNGE_DIR)\javax\swing}.java{$(CLASSBINDIR)\javax\swing}.class:
	@echo $(?)>> .classes.list

{$(MUNGE_DIR)\javax\swing\text}.java{$(CLASSBINDIR)\javax\swing\text}.class:
	@echo $(?)>> .classes.list

{$(MUNGE_DIR)\javax\swing\colorchooser}.java{$(CLASSBINDIR)\javax\swing\colorchooser}.class:
	@echo $(?)>> .classes.list
