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