0N/A#
3261N/A# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
0N/A# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
0N/A#
0N/A# This code is free software; you can redistribute it and/or modify it
0N/A# under the terms of the GNU General Public License version 2 only, as
2362N/A# published by the Free Software Foundation. Oracle designates this
0N/A# particular file as subject to the "Classpath" exception as provided
2362N/A# by Oracle in the LICENSE file that accompanied this code.
0N/A#
0N/A# This code is distributed in the hope that it will be useful, but WITHOUT
0N/A# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0N/A# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
0N/A# version 2 for more details (a copy is included in the LICENSE file that
0N/A# accompanied this code).
0N/A#
0N/A# You should have received a copy of the GNU General Public License version
0N/A# 2 along with this work; if not, write to the Free Software Foundation,
0N/A# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
0N/A#
2362N/A# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2362N/A# or visit www.oracle.com if you need additional information or have any
2362N/A# questions.
0N/A#
0N/A
0N/A#
0N/A# Makefile to build the BeanInfo generation tool (ie, a doclet), and
2101N/A# then the beaninfo itself. Swing versions prior to 1.2 are no longer
0N/A# built.
0N/A#
0N/A# This makefile could be a lot simpler if we made it more regular.
0N/A#
0N/A
0N/A# identify this as a swingbeans product - used only to identify a
0N/A# unique name for OBJDIR
0N/APRODUCT = swing-beans
0N/A
0N/A#
0N/A# Main targets provided by this makefile.
0N/A#
0N/Aswing-1.2-beans:
0N/A $(MAKE) DEBUG_FLAG=false make-swing-beans
0N/Aswing-1.2-beans-debug:
0N/A $(MAKE) DEBUG_FLAG=true make-swing-beans
0N/A
0N/A
0N/A# get the absolute path to the jar command.
0N/APREFIX = 1.2
2101N/AJAVADOCFLAGS += $(NO_PROPRIETARY_API_WARNINGS) $(LANGUAGE_VERSION)
0N/ASWINGPKG = javax/swing
0N/ALOCAL_JAVAC_FLAGS = $(OTHER_JAVACFLAGS)
2101N/A# since JAVADOC_CMD runs on ALT_BOOTDIR, the doclet and all its classes must be compiled to match
1244N/ADOCLET_JAVAC_FLAGS = -source 6 -target 6
0N/A
0N/Ainclude FILES.gmk
0N/Ainclude $(BUILDDIR)/common/Release.gmk
0N/A
0N/ADOCLETSRC = $(BUILDDIR)/tools/swing-beans
0N/ADOCLETDST = $(TEMPDIR)
0N/A
0N/AFILES_java = GenSwingBeanInfo.java GenDocletBeanInfo.java DocBeanInfo.java
0N/AFILES_class = $(FILES_java:%.java=$(DOCLETDST)/%.class)
0N/AFAKESRC = $(TOPDIR)/src/share/classes
0N/ABEANSRCDIR = $(TEMPDIR)/$(PREFIX)src
0N/ABEANCLASSDIR = $(TEMPDIR)/$(PREFIX)classes
0N/AFILES_beans = $(BEANS:%=$(BEANSRCDIR)/%BeanInfo.java) \
0N/A $(BEANS_TEXT:%=$(BEANSRCDIR)/text/%BeanInfo.java) \
0N/A $(BEANSRCDIR)/SwingBeanInfoBase.java \
0N/A $(BEANSRCDIR)/BeanInfoUtils.java
0N/A
0N/AFILES_bclass = $(FILES_beans:$(BEANSRCDIR)/%.java=$(BEANCLASSDIR)/$(SWINGPKG)/%.class)
0N/ADOCLETFLAGS = -doclet GenDocletBeanInfo
0N/ALOCAL_CLASSPATH = "$(CLASSBINDIR)$(CLASSPATH_SEPARATOR)$(BEANCLASSDIR)$(CLASSPATH_SEPARATOR)."
0N/A
0N/A#
0N/A# Main target.
0N/A#
0N/Amake-swing-beans: mkdoclet mkbeaninfo mkclasses mkpackaging
0N/A
0N/A#
0N/A# Make the doclet.
0N/A#
0N/Amkdoclet: $(DOCLETDST) $(FILES_class) .SwingBeanInfo
0N/A
0N/A$(OBJDIR) $(BEANCLASSDIR) $(BEANSRCDIR) $(DOCLETDST)::
0N/A @$(ECHO) "Making directory..." $@
0N/A @$(MKDIR) -p $@
0N/A
0N/A$(DOCLETDST)/%.class: $(DOCLETSRC)/%.java
1244N/A $(JAVAC_CMD) $(LOCAL_JAVAC_FLAGS) $(DOCLET_JAVAC_FLAGS) -classpath "$(CLASSBINDIR)$(CLASSPATH_SEPARATOR)$(DOCLETSRC)" -d $(DOCLETDST) $?
0N/A @$(java-vm-cleanup)
0N/A
0N/A# To run, the doclet needs SwingBeanInfoBase class. Also Notice the lie
0N/A# here, SwingBeanInfoBase.class goes elswhere.
0N/A
0N/A.SwingBeanInfo: $(OBJDIR) $(BEANCLASSDIR) $(BEANSRCDIR) $(SWINGPKG)/BeanInfoUtils.class $(SWINGPKG)/SwingBeanInfoBase.class
0N/A
0N/A$(SWINGPKG)/BeanInfoUtils.class: $(BEANSRCDIR)/BeanInfoUtils.java
1244N/A $(JAVAC_CMD) $(LOCAL_JAVAC_FLAGS) $(DOCLET_JAVAC_FLAGS) -d $(BEANCLASSDIR) $<
0N/A @$(java-vm-cleanup)
0N/A
0N/A$(SWINGPKG)/SwingBeanInfoBase.class: $(BEANSRCDIR)/SwingBeanInfoBase.java $(BEANSRCDIR)/BeanInfoUtils.java
1244N/A $(JAVAC_CMD) $(LOCAL_JAVAC_FLAGS) $(DOCLET_JAVAC_FLAGS) -classpath $(BEANCLASSDIR) -d $(BEANCLASSDIR) $<
0N/A @$(java-vm-cleanup)
0N/A
0N/A#
0N/A# Stage 1: Generate *BeanInfo.java files.
0N/A#
0N/Amkbeaninfo: $(BEANSRCDIR) .delete.beanlist $(FILES_beans) .javadoc.beanlist
0N/A
0N/A.delete.beanlist:
0N/A @$(RM) $(TEMPDIR)/.beans.list
0N/A
0N/A.javadoc.beanlist:
0N/A if [ -s $(TEMPDIR)/.beans.list ]; \
2101N/A then $(JAVADOC_CMD) $(DOCLETFLAGS) -x $(DEBUG_FLAG) -d $(BEANSRCDIR) -t $(DOCLETSRC)/SwingBeanInfo.template -docletpath $(DOCLETDST) \
0N/A $(shell if [ -s $(TEMPDIR)/.beans.list ]; then $(CAT) $(TEMPDIR)/.beans.list; fi); \
0N/A fi
0N/A @$(java-vm-cleanup)
0N/A
0N/A$(BEANSRCDIR)/text/%BeanInfo.java: $(FAKESRC)/$(SWINGPKG)/text/%.java
0N/A @$(ECHO) $< >> $(TEMPDIR)/.beans.list
0N/A
0N/A$(BEANSRCDIR)/%BeanInfo.java: $(FAKESRC)/$(SWINGPKG)/%.java
0N/A @$(ECHO) $< >> $(TEMPDIR)/.beans.list
0N/A
0N/A$(BEANSRCDIR)/SwingBeanInfoBase.java: $(DOCLETSRC)/beaninfo/SwingBeanInfoBase.java
0N/A $(CP) $< $@
0N/A
0N/A$(BEANSRCDIR)/BeanInfoUtils.java: $(DOCLETSRC)/beaninfo/BeanInfoUtils.java
0N/A $(CP) $< $@
0N/A
0N/A#
0N/A# Compile the generated *BeanInfo.java files.
0N/A#
0N/Amkclasses: .delete.classlist $(BEANCLASSDIR)/$(SWINGPKG)/SwingBeanInfoBase.class \
0N/A $(BEANCLASSDIR)/$(SWINGPKG)/text/JTextComponentBeanInfo.class \
0N/A .create.classlist $(FILES_bclass) .compile.classlist
0N/A
0N/A$(BEANCLASSDIR)/$(SWINGPKG)/SwingBeanInfoBase.class:: \
0N/A $(BEANSRCDIR)/SwingBeanInfoBase.java
0N/A
0N/A$(BEANCLASSDIR)/$(SWINGPKG)/text/JTextComponentBeanInfo.class:: \
0N/A $(BEANSRCDIR)/JTextComponentBeanInfo.java
0N/A
0N/A$(FILES_bclass):: $(FILES_beans)
0N/A
0N/A# all the sources are in one directory, so make sure that the list does
0N/A# not have the /text direcotry in it. Kludgy, this is...
0N/A.create.classlist:
0N/A @$(ECHO) $(subst /text/,/,$(FILES_beans)) >> $(TEMPDIR)/.classes.list
0N/A
0N/A.delete.classlist:
0N/A @$(ECHO) "Deleting classes.list..."
0N/A @$(RM) $(TEMPDIR)/.classes.list
0N/A
0N/A.compile.classlist:
0N/A if [ -s $(TEMPDIR)/.classes.list ] ; then \
0N/A $(JAVAC_CMD) $(LOCAL_JAVAC_FLAGS) -classpath $(LOCAL_CLASSPATH) -d $(BEANCLASSDIR) \
0N/A $(shell if [ -s $(TEMPDIR)/.classes.list ] ; then $(CAT) $(TEMPDIR)/.classes.list; fi ) ; \
0N/A fi
0N/A @$(java-vm-cleanup)
0N/A
0N/A#
0N/A# Packaging
0N/A#
0N/Amkpackaging:
0N/A $(RM) -r $(BEANCLASSDIR)/$(SWINGPKG)/beaninfo/images
0N/A $(MKDIR) -p $(BEANCLASSDIR)/$(SWINGPKG)/beaninfo/images
0N/A $(CP) $(DOCLETSRC)/beaninfo/images/*.gif $(BEANCLASSDIR)/$(SWINGPKG)/beaninfo/images
0N/A $(BOOT_JAR_CMD) cf $(TEMPDIR)/tmp.jar \
0N/A -C $(BEANCLASSDIR) javax \
0N/A -C $(BEANCLASSDIR) sun \
459N/A $(BOOT_JAR_JFLAGS)
0N/A $(MV) $(TEMPDIR)/tmp.jar $(JDK_IMAGE_DIR)/lib/dt.jar
0N/A @$(java-vm-cleanup)
0N/A
0N/A#
0N/A# Cleanliness.
0N/A#
0N/Aswingbeans.clean swingbeans.clobber::
0N/A $(RM) -r 1.2src 1.2classes
0N/A $(RM) -r java javax
0N/A $(RM) *.class
0N/A $(RM) $(TEMPDIR)/.beans.list $(TEMPDIR)/.classes.list beaninfo.jar
0N/A
0N/A#
0N/A# Utility.
0N/A#
0N/A
0N/A
0N/A#
0N/A# Debugging targets for looking at variables.
0N/A#
0N/Ashow-vars:
0N/A @$(ECHO) FILES_beans = $(FILES_beans)
0N/A @$(ECHO) FILES_bclass = $(FILES_bclass)
0N/A
0N/A.PRECIOUS: $(FILES_beans)
0N/A
0N/A.PHONY: swing-1.2-beans swing-1.2-beans-debug \
0N/A make-swing-beans mkdoclet .SwingBeanInfo mkbeaninfo .delete.beanlist \
0N/A .javadoc.beanlist mkclasses .create.classlist .delete.classlist \
0N/A .compile.classlist mkpackaging mkpackaging swingbeans.clean \
0N/A swingbeans.clobber show-vars