| [348] | 1 | # Source directories
 | 
|---|
 | 2 | 
 | 
|---|
 | 3 | NETX_DIR = $(abs_top_builddir)/netx.build
 | 
|---|
 | 4 | NETX_SRCDIR = $(abs_top_srcdir)/netx
 | 
|---|
 | 5 | NETX_RESOURCE_DIR=$(NETX_SRCDIR)/net/sourceforge/jnlp/resources
 | 
|---|
 | 6 | NETX_EXTRA_DIR=$(abs_top_srcdir)/extra/net/sourceforge/javaws/about/resources
 | 
|---|
 | 7 | NETX_EXTRA_DIST_DIR=$(abs_top_builddir)/extra-lib/net/sourceforge/javaws/about/resources
 | 
|---|
 | 8 | 
 | 
|---|
 | 9 | TESTS_SRCDIR=$(abs_top_srcdir)/tests
 | 
|---|
 | 10 | TESTS_DIR=$(abs_top_builddir)/tests.build
 | 
|---|
 | 11 | 
 | 
|---|
 | 12 | NETX_UNIT_TEST_SRCDIR=$(TESTS_SRCDIR)/netx/unit
 | 
|---|
 | 13 | NETX_UNIT_TEST_DIR=$(TESTS_DIR)/netx/unit
 | 
|---|
 | 14 | 
 | 
|---|
 | 15 | JUNIT_RUNNER_DIR=$(TESTS_DIR)/junit-runner
 | 
|---|
 | 16 | JUNIT_RUNNER_SRCDIR=$(TESTS_SRCDIR)/junit-runner
 | 
|---|
 | 17 | 
 | 
|---|
 | 18 | JUNIT_RUNNER_JAR=$(abs_top_builddir)/junit-runner.jar
 | 
|---|
 | 19 | 
 | 
|---|
 | 20 | # Build directories
 | 
|---|
 | 21 | 
 | 
|---|
 | 22 | BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.0
 | 
|---|
 | 23 | 
 | 
|---|
 | 24 | if WITH_RHINO
 | 
|---|
 | 25 |   RHINO_RUNTIME=:$(RHINO_JAR)
 | 
|---|
 | 26 | else
 | 
|---|
 | 27 |   RHINO_RUNTIME=
 | 
|---|
 | 28 | endif
 | 
|---|
 | 29 | 
 | 
|---|
 | 30 | RUNTIME = $(BOOT_DIR)/jre/lib/rt.jar:$(BOOT_DIR)/jre/lib/jsse.jar$(RHINO_RUNTIME)
 | 
|---|
 | 31 | 
 | 
|---|
 | 32 | # Flags
 | 
|---|
 | 33 | IT_CFLAGS=$(CFLAGS) $(ARCHFLAG)
 | 
|---|
 | 34 | IT_JAVAC_SETTINGS=-g -encoding utf-8 $(JAVACFLAGS) $(MEMORY_LIMIT) $(PREFER_SOURCE)
 | 
|---|
 | 35 | IT_LANGUAGE_SOURCE_VERSION=6
 | 
|---|
 | 36 | IT_CLASS_TARGET_VERSION=6
 | 
|---|
 | 37 | IT_JAVACFLAGS=$(IT_JAVAC_SETTINGS) -source $(IT_LANGUAGE_SOURCE_VERSION) -target $(IT_CLASS_TARGET_VERSION)
 | 
|---|
 | 38 | 
 | 
|---|
 | 39 | #
 | 
|---|
 | 40 | # We need the jars in bootclasspath for a couple of reasons
 | 
|---|
 | 41 | #  - we use classes (in the sun.applet package) loaded by the bootclassloader
 | 
|---|
 | 42 | #    using another classloader to load classes from the same package causes an
 | 
|---|
 | 43 | #    IllegalAccessException
 | 
|---|
 | 44 | #  - we want full privileges
 | 
|---|
 | 45 | #
 | 
|---|
 | 46 | LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME)"
 | 
|---|
 | 47 | PLUGIN_BOOTCLASSPATH='"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME)"'
 | 
|---|
 | 48 | 
 | 
|---|
 | 49 | # Fake update version to work with the Deployment Toolkit script used by Oracle
 | 
|---|
 | 50 | # http://download.oracle.com/javase/tutorial/deployment/deploymentInDepth/depltoolkit_index.html
 | 
|---|
 | 51 | JDK_UPDATE_VERSION=50
 | 
|---|
 | 52 | 
 | 
|---|
 | 53 | # Sources list
 | 
|---|
 | 54 | 
 | 
|---|
 | 55 | PLUGIN_TEST_SRCS = $(abs_top_srcdir)/plugin/tests/LiveConnect/*.java
 | 
|---|
 | 56 | 
 | 
|---|
 | 57 | NETX_PKGS = javax.jnlp net.sourceforge.nanoxml net.sourceforge.jnlp \
 | 
|---|
 | 58 |         net.sourceforge.jnlp.cache net.sourceforge.jnlp.config \
 | 
|---|
 | 59 |         net.sourceforge.jnlp.controlpanel net.sourceforge.jnlp.event \
 | 
|---|
 | 60 |         net.sourceforge.jnlp.runtime net.sourceforge.jnlp.security \
 | 
|---|
 | 61 |         net.sourceforge.jnlp.security.viewer net.sourceforge.jnlp.services \
 | 
|---|
 | 62 |         net.sourceforge.jnlp.tools net.sourceforge.jnlp.util
 | 
|---|
 | 63 | 
 | 
|---|
 | 64 | # Conditional defintions
 | 
|---|
 | 65 | if ENABLE_PLUGIN
 | 
|---|
 | 66 | ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin
 | 
|---|
 | 67 | LIVECONNECT_DIR = netscape sun/applet
 | 
|---|
 | 68 | PLUGIN_DIR=$(abs_top_builddir)/plugin/icedteanp
 | 
|---|
 | 69 | PLUGIN_SRCDIR=$(abs_top_srcdir)/plugin/icedteanp
 | 
|---|
 | 70 | LIVECONNECT_SRCS = $(PLUGIN_SRCDIR)/java
 | 
|---|
 | 71 | ICEDTEAPLUGIN_TARGET = $(PLUGIN_DIR)/IcedTeaPlugin.so stamps/liveconnect-dist.stamp
 | 
|---|
 | 72 | PLUGIN_PKGS = sun.applet netscape.security netscape.javascript
 | 
|---|
 | 73 | endif
 | 
|---|
 | 74 | 
 | 
|---|
 | 75 | if CP_SUPPORTS_REFLINK
 | 
|---|
 | 76 |   REFLINK = --reflink=auto
 | 
|---|
 | 77 | endif
 | 
|---|
 | 78 | 
 | 
|---|
 | 79 | if SRC_DIR_HARDLINKABLE
 | 
|---|
 | 80 |   SRC_DIR_LINK = -l
 | 
|---|
 | 81 | else
 | 
|---|
 | 82 |   SRC_DIR_LINK = $(REFLINK)
 | 
|---|
 | 83 | endif
 | 
|---|
 | 84 | 
 | 
|---|
 | 85 | if ENABLE_DOCS
 | 
|---|
 | 86 | JAVADOC_OPTS=-use -keywords -encoding UTF-8 -splitIndex \
 | 
|---|
 | 87 |  -bottom '<font size="-1"> <a href="http://icedtea.classpath.org/bugzilla">Submit a bug or feature</a></font>'
 | 
|---|
 | 88 | if JAVADOC_SUPPORTS_J_OPTIONS
 | 
|---|
 | 89 | JAVADOC_MEM_OPTS=-J-Xmx1024m -J-Xms128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m
 | 
|---|
 | 90 | endif
 | 
|---|
 | 91 | endif
 | 
|---|
 | 92 | 
 | 
|---|
 | 93 | if WITH_RHINO
 | 
|---|
 | 94 |   RHINO_TESTS=check-pac-functions
 | 
|---|
 | 95 | else
 | 
|---|
 | 96 |   RHINO_TESTS=
 | 
|---|
 | 97 | endif
 | 
|---|
 | 98 | 
 | 
|---|
 | 99 | if WITH_JUNIT
 | 
|---|
 | 100 |   JUNIT_TESTS=run-netx-unit-tests
 | 
|---|
 | 101 | else
 | 
|---|
 | 102 |   JUNIT_TESTS=
 | 
|---|
 | 103 | endif
 | 
|---|
 | 104 | 
 | 
|---|
 | 105 | 
 | 
|---|
 | 106 | PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION)
 | 
|---|
 | 107 | 
 | 
|---|
 | 108 | EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in extra launcher \
 | 
|---|
 | 109 |  itweb-settings.desktop.in $(top_srcdir)/tests
 | 
|---|
 | 110 | 
 | 
|---|
 | 111 | # binary names
 | 
|---|
 | 112 | javaws:= $(shell echo javaws | sed '@program_transform_name@')
 | 
|---|
 | 113 | itweb_settings:= $(shell echo itweb-settings | sed '@program_transform_name@')
 | 
|---|
 | 114 | 
 | 
|---|
 | 115 | # the launcher needs to know $(bindir) and $(datadir) which can be different at
 | 
|---|
 | 116 | # make-time from configure-time
 | 
|---|
 | 117 | edit_launcher_script = sed \
 | 
|---|
 | 118 |   -e 's|[@]LAUNCHER_BOOTCLASSPATH[@]|$(LAUNCHER_BOOTCLASSPATH)|g' \
 | 
|---|
 | 119 |   -e 's|[@]JAVAWS_BIN_LOCATION[@]|$(bindir)/$(javaws)|g' \
 | 
|---|
 | 120 |   -e 's|[@]ITWEB_SETTINGS_BIN_LOCATION[@]|$(bindir)/$(itweb_settings)|g' \
 | 
|---|
 | 121 |   -e 's|[@]JAVA[@]|$(JAVA)|g' \
 | 
|---|
 | 122 |   -e 's|[@]JRE[@]|$(SYSTEM_JRE_DIR)|g'
 | 
|---|
 | 123 | 
 | 
|---|
 | 124 | # Top-Level Targets
 | 
|---|
 | 125 | # =================
 | 
|---|
 | 126 | 
 | 
|---|
 | 127 | all-local: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp launcher.build/$(javaws) \
 | 
|---|
 | 128 |  javaws.desktop stamps/docs.stamp launcher.build/$(itweb_settings) itweb-settings.desktop
 | 
|---|
 | 129 | 
 | 
|---|
 | 130 | check-local: $(RHINO_TESTS) $(JUNIT_TESTS)
 | 
|---|
 | 131 | 
 | 
|---|
 | 132 | clean-local: clean-netx clean-plugin clean-liveconnect clean-extra clean-bootstrap-directory \
 | 
|---|
 | 133 |  clean-native-ecj clean-launchers clean-desktop-files clean-docs clean-tests
 | 
|---|
 | 134 |         if [ -e stamps ] ; then \
 | 
|---|
 | 135 |           rmdir stamps ; \
 | 
|---|
 | 136 |         fi
 | 
|---|
 | 137 | 
 | 
|---|
 | 138 | .PHONY: clean-IcedTeaPlugin clean-add-netx clean-add-netx-debug clean-add-plugin clean-add-plugin-debug \
 | 
|---|
 | 139 |  clean-bootstrap-directory clean-native-ecj clean-desktop-files clean-netx-docs clean-docs clean-plugin-docs \
 | 
|---|
 | 140 |  clean-tests check-local clean-launchers check-pac-functions run-netx-unit-tests clean-netx-tests \
 | 
|---|
 | 141 |  clean-junit-runner clean-netx-unit-tests
 | 
|---|
 | 142 | 
 | 
|---|
 | 143 | install-exec-local:
 | 
|---|
 | 144 |         ${mkinstalldirs} $(DESTDIR)$(bindir) $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/ $(DESTDIR)$(libdir)
 | 
|---|
 | 145 | if ENABLE_PLUGIN
 | 
|---|
 | 146 |         ${INSTALL_PROGRAM} $(PLUGIN_DIR)/IcedTeaPlugin.so $(DESTDIR)$(libdir)
 | 
|---|
 | 147 |         ${INSTALL_DATA} $(abs_top_builddir)/liveconnect/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar
 | 
|---|
 | 148 | endif
 | 
|---|
 | 149 |         ${INSTALL_DATA} $(NETX_DIR)/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar
 | 
|---|
 | 150 |         ${INSTALL_PROGRAM} launcher.build/$(javaws) $(DESTDIR)$(bindir)
 | 
|---|
 | 151 |         ${INSTALL_DATA} extra-lib/about.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/about.jar
 | 
|---|
 | 152 |         ${INSTALL_PROGRAM} launcher.build/$(itweb_settings) $(DESTDIR)$(bindir)
 | 
|---|
 | 153 | 
 | 
|---|
 | 154 | install-data-local:
 | 
|---|
 | 155 |         ${mkinstalldirs} -d $(DESTDIR)$(mandir)/man1
 | 
|---|
 | 156 |         ${INSTALL_DATA} $(NETX_SRCDIR)/javaws.1 $(DESTDIR)$(mandir)/man1
 | 
|---|
 | 157 |         ${INSTALL_DATA} $(NETX_RESOURCE_DIR)/about.jnlp $(DESTDIR)$(datarootdir)/$(PACKAGE_NAME)
 | 
|---|
 | 158 | if ENABLE_DOCS
 | 
|---|
 | 159 |         ${mkinstalldirs} $(DESTDIR)$(htmldir)
 | 
|---|
 | 160 |         (cd ${abs_top_builddir}/docs/netx; \
 | 
|---|
 | 161 |          for files in $$(find . -type f); \
 | 
|---|
 | 162 |          do \
 | 
|---|
 | 163 |            ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/netx/$${files}; \
 | 
|---|
 | 164 |          done)
 | 
|---|
 | 165 | if ENABLE_PLUGIN
 | 
|---|
 | 166 |         (cd ${abs_top_builddir}/docs/plugin; \
 | 
|---|
 | 167 |          for files in $$(find . -type f); \
 | 
|---|
 | 168 |          do \
 | 
|---|
 | 169 |            ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/plugin/$${files}; \
 | 
|---|
 | 170 |          done)
 | 
|---|
 | 171 | endif
 | 
|---|
 | 172 | endif
 | 
|---|
 | 173 | 
 | 
|---|
 | 174 | uninstall-local:
 | 
|---|
 | 175 |         rm -f $(DESTDIR)$(libdir)/IcedTeaPlugin.so
 | 
|---|
 | 176 |         rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar
 | 
|---|
 | 177 |         rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar
 | 
|---|
 | 178 |         rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/about.jnlp
 | 
|---|
 | 179 |         rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/about.jar
 | 
|---|
 | 180 |         rm -f $(DESTDIR)$(mandir)/man1/javaws.1
 | 
|---|
 | 181 |         rm -f $(DESTDIR)$(bindir)/$(javaws)
 | 
|---|
 | 182 |         rm -f $(DESTDIR)$(bindir)/$(itweb_settings)
 | 
|---|
 | 183 |         rm -rf $(DESTDIR)$(htmldir)
 | 
|---|
 | 184 | 
 | 
|---|
 | 185 | # Plugin
 | 
|---|
 | 186 | 
 | 
|---|
 | 187 | if ENABLE_PLUGIN
 | 
|---|
 | 188 | # IcedTeaPlugin.so.
 | 
|---|
 | 189 | # Separate compile and link invocations to ensure intermediate object
 | 
|---|
 | 190 | # is listed before -l options.  See:
 | 
|---|
 | 191 | # http://developer.mozilla.org/en/docs/XPCOM_Glue
 | 
|---|
 | 192 | 
 | 
|---|
 | 193 | PLUGIN_SRC=IcedTeaNPPlugin.cc IcedTeaScriptablePluginObject.cc \
 | 
|---|
 | 194 |         IcedTeaJavaRequestProcessor.cc IcedTeaPluginRequestProcessor.cc \
 | 
|---|
 | 195 |                 IcedTeaPluginUtils.cc
 | 
|---|
 | 196 | 
 | 
|---|
 | 197 | PLUGIN_OBJECTS=IcedTeaNPPlugin.o IcedTeaScriptablePluginObject.o \
 | 
|---|
 | 198 |         IcedTeaJavaRequestProcessor.o IcedTeaPluginRequestProcessor.o \
 | 
|---|
 | 199 |                 IcedTeaPluginUtils.o
 | 
|---|
 | 200 | 
 | 
|---|
 | 201 | $(PLUGIN_DIR)/%.o: $(PLUGIN_SRCDIR)/%.cc
 | 
|---|
 | 202 |         mkdir -p $(PLUGIN_DIR) && \
 | 
|---|
 | 203 |         cd $(PLUGIN_DIR) && \
 | 
|---|
 | 204 |         $(CXX) $(CXXFLAGS) \
 | 
|---|
 | 205 |           -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \
 | 
|---|
 | 206 |           -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \
 | 
|---|
 | 207 |           -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \
 | 
|---|
 | 208 |           -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \
 | 
|---|
 | 209 |           -DMOZILLA_VERSION_COLLAPSED="$(MOZILLA_VERSION_COLLAPSED)" \
 | 
|---|
 | 210 |           -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \
 | 
|---|
 | 211 |           -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \
 | 
|---|
 | 212 |           $(GLIB_CFLAGS) \
 | 
|---|
 | 213 |           $(GTK_CFLAGS) \
 | 
|---|
 | 214 |           $(MOZILLA_CFLAGS) \
 | 
|---|
 | 215 |           -fPIC -o $@ -c $<
 | 
|---|
 | 216 | 
 | 
|---|
 | 217 | $(PLUGIN_DIR)/IcedTeaPlugin.so: $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS))
 | 
|---|
 | 218 |         cd $(PLUGIN_DIR) && \
 | 
|---|
 | 219 |         $(CXX) $(CXXFLAGS) \
 | 
|---|
 | 220 |           $(PLUGIN_OBJECTS) \
 | 
|---|
 | 221 |           $(GLIB_LIBS) \
 | 
|---|
 | 222 |           $(GTK_LIBS) \
 | 
|---|
 | 223 |           $(MOZILLA_LIBS)\
 | 
|---|
 | 224 |           -shared -o $@
 | 
|---|
 | 225 | 
 | 
|---|
 | 226 | clean-IcedTeaPlugin:
 | 
|---|
 | 227 |         rm -f $(PLUGIN_DIR)/*.o
 | 
|---|
 | 228 |         rm -f $(PLUGIN_DIR)/IcedTeaPlugin.so
 | 
|---|
 | 229 |         if [ $(abs_top_srcdir) != $(abs_top_builddir) ]; then \
 | 
|---|
 | 230 |           if [ -e $(abs_top_builddir)/plugin/icedteanp ] ; then \
 | 
|---|
 | 231 |             rmdir $(abs_top_builddir)/plugin/icedteanp ; \
 | 
|---|
 | 232 |             rmdir $(abs_top_builddir)/plugin ; \
 | 
|---|
 | 233 |           fi ; \
 | 
|---|
 | 234 |         fi
 | 
|---|
 | 235 | endif
 | 
|---|
 | 236 | 
 | 
|---|
 | 237 | stamps/plugin.stamp: $(ICEDTEAPLUGIN_TARGET)
 | 
|---|
 | 238 |         mkdir -p stamps
 | 
|---|
 | 239 |         touch stamps/plugin.stamp
 | 
|---|
 | 240 | 
 | 
|---|
 | 241 | clean-plugin: $(ICEDTEAPLUGIN_CLEAN)
 | 
|---|
 | 242 |         rm -f stamps/plugin.stamp
 | 
|---|
 | 243 | 
 | 
|---|
 | 244 | liveconnect-source-files.txt:
 | 
|---|
 | 245 |         if test "x${LIVECONNECT_DIR}" != x; then \
 | 
|---|
 | 246 |           find $(LIVECONNECT_SRCS) -name '*.java' | sort > $@ ; \
 | 
|---|
| [362] | 247 |           sed -i '/_OS2/ d' $@
 | 
|---|
| [348] | 248 |         fi
 | 
|---|
 | 249 |         touch $@
 | 
|---|
 | 250 | 
 | 
|---|
 | 251 | stamps/liveconnect.stamp: liveconnect-source-files.txt stamps/netx.stamp
 | 
|---|
 | 252 |         if test "x${LIVECONNECT_DIR}" != x; then \
 | 
|---|
 | 253 |           mkdir -p $(abs_top_builddir)/liveconnect && \
 | 
|---|
 | 254 |           $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
 | 
|---|
 | 255 |               -d $(abs_top_builddir)/liveconnect \
 | 
|---|
 | 256 |               -bootclasspath $(NETX_DIR):$(RUNTIME) \
 | 
|---|
 | 257 |               -sourcepath $(LIVECONNECT_SRCS) \
 | 
|---|
 | 258 |               @liveconnect-source-files.txt ; \
 | 
|---|
 | 259 |         fi
 | 
|---|
 | 260 |         mkdir -p stamps
 | 
|---|
 | 261 |         touch $@
 | 
|---|
 | 262 | 
 | 
|---|
 | 263 | stamps/liveconnect-dist.stamp: stamps/liveconnect.stamp
 | 
|---|
 | 264 |         if test "x${LIVECONNECT_DIR}" != x; then \
 | 
|---|
 | 265 |           (cd $(abs_top_builddir)/liveconnect ; \
 | 
|---|
 | 266 |            mkdir -p lib ; \
 | 
|---|
 | 267 |            $(BOOT_DIR)/bin/jar cf lib/classes.jar $(LIVECONNECT_DIR) ; \
 | 
|---|
 | 268 |            cp -pPR $(SRC_DIR_LINK) $(LIVECONNECT_SRCS) src; \
 | 
|---|
 | 269 |            find src -type f -exec chmod 640 '{}' ';' -o -type d -exec chmod 750 '{}' ';'; \
 | 
|---|
 | 270 |            cd src ; \
 | 
|---|
 | 271 |            $(ZIP) -qr $(abs_top_builddir)/liveconnect/lib/src.zip $(LIVECONNECT_DIR) ) ; \
 | 
|---|
 | 272 |         fi
 | 
|---|
 | 273 |         mkdir -p stamps
 | 
|---|
 | 274 |         touch $@
 | 
|---|
 | 275 | 
 | 
|---|
 | 276 | clean-liveconnect:
 | 
|---|
 | 277 |         rm -rf $(abs_top_builddir)/liveconnect
 | 
|---|
 | 278 |         rm -f stamps/liveconnect-dist.stamp
 | 
|---|
 | 279 |         rm -f liveconnect-source-files.txt
 | 
|---|
 | 280 |         rm -f stamps/liveconnect.stamp
 | 
|---|
 | 281 | 
 | 
|---|
 | 282 | # NetX
 | 
|---|
 | 283 | # requires availability of OpenJDK source code including
 | 
|---|
 | 284 | # a patch applied to sun.plugin.AppletViewerPanel and generated sources
 | 
|---|
 | 285 | 
 | 
|---|
 | 286 | netx-source-files.txt:
 | 
|---|
 | 287 |         find $(NETX_SRCDIR) -name '*.java' | sort > $@
 | 
|---|
 | 288 | if !WITH_RHINO
 | 
|---|
 | 289 |         sed -i '/RhinoBasedPacEvaluator/ d' $@
 | 
|---|
 | 290 | endif
 | 
|---|
 | 291 | 
 | 
|---|
 | 292 | stamps/netx.stamp: netx-source-files.txt stamps/bootstrap-directory.stamp
 | 
|---|
 | 293 |         mkdir -p $(NETX_DIR)
 | 
|---|
 | 294 |         $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
 | 
|---|
 | 295 |             -d $(NETX_DIR) \
 | 
|---|
 | 296 |             -sourcepath $(NETX_SRCDIR) \
 | 
|---|
 | 297 |             -bootclasspath $(RUNTIME) \
 | 
|---|
 | 298 |             @netx-source-files.txt
 | 
|---|
 | 299 |         (cd $(NETX_RESOURCE_DIR); \
 | 
|---|
 | 300 |          for files in $$(find . -type f); \
 | 
|---|
 | 301 |          do \
 | 
|---|
 | 302 |            ${INSTALL_DATA} -D $${files} \
 | 
|---|
 | 303 |            $(NETX_DIR)/net/sourceforge/jnlp/resources/$${files}; \
 | 
|---|
 | 304 |          done)
 | 
|---|
 | 305 |         cp -a $(NETX_SRCDIR)/net/sourceforge/jnlp/runtime/pac-funcs.js \
 | 
|---|
 | 306 |           $(NETX_DIR)/net/sourceforge/jnlp/runtime
 | 
|---|
 | 307 |         cp -a build.properties $(NETX_DIR)/net/sourceforge/jnlp/
 | 
|---|
 | 308 |         mkdir -p stamps
 | 
|---|
 | 309 |         touch $@
 | 
|---|
 | 310 | 
 | 
|---|
 | 311 | stamps/netx-dist.stamp: stamps/netx.stamp $(abs_top_builddir)/netx.manifest
 | 
|---|
 | 312 |         (cd $(NETX_DIR) ; \
 | 
|---|
 | 313 |          mkdir -p lib ; \
 | 
|---|
 | 314 |          $(BOOT_DIR)/bin/jar cfm lib/classes.jar \
 | 
|---|
 | 315 |           $(abs_top_builddir)/netx.manifest javax/jnlp net ; \
 | 
|---|
 | 316 |          cp -pPR $(SRC_DIR_LINK) $(NETX_SRCDIR) src; \
 | 
|---|
 | 317 |          find src -type f -exec chmod 640 '{}' ';' -o -type d -exec chmod 750 '{}' ';'; \
 | 
|---|
 | 318 |          cd src ; \
 | 
|---|
 | 319 |          $(ZIP) -qr $(NETX_DIR)/lib/src.zip javax net )
 | 
|---|
 | 320 |         mkdir -p stamps
 | 
|---|
 | 321 |         touch $@
 | 
|---|
 | 322 | 
 | 
|---|
 | 323 | clean-netx:
 | 
|---|
 | 324 |         rm -rf $(NETX_DIR)
 | 
|---|
 | 325 |         rm -f stamps/netx-dist.stamp
 | 
|---|
 | 326 |         rm -f netx-source-files.txt
 | 
|---|
 | 327 |         rm -f stamps/netx.stamp
 | 
|---|
 | 328 | 
 | 
|---|
 | 329 | clean-desktop-files:
 | 
|---|
 | 330 |         rm -f javaws.desktop
 | 
|---|
 | 331 |         rm -f itweb-settings.desktop
 | 
|---|
 | 332 | 
 | 
|---|
 | 333 | # extras -- used to create about.jar for javaws.
 | 
|---|
 | 334 | extra-source-files.txt:
 | 
|---|
 | 335 |         find $(abs_top_srcdir)/extra -name '*.java' | sort > $@
 | 
|---|
 | 336 | 
 | 
|---|
 | 337 | stamps/extra-class-files.stamp: extra-source-files.txt stamps/netx.stamp
 | 
|---|
 | 338 |         mkdir -p extra-lib
 | 
|---|
 | 339 |         $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) -d extra-lib \
 | 
|---|
 | 340 |           -sourcepath $(abs_top_srcdir)/extra -cp netx.build \
 | 
|---|
 | 341 |           -bootclasspath $(RUNTIME) @extra-source-files.txt
 | 
|---|
 | 342 |         (cd $(NETX_EXTRA_DIR); \
 | 
|---|
 | 343 |          for files in $$(find . -type f); \
 | 
|---|
 | 344 |          do \
 | 
|---|
 | 345 |            ${INSTALL_DATA} -D $${files} \
 | 
|---|
 | 346 |            $(NETX_EXTRA_DIST_DIR)/$${files}; \
 | 
|---|
 | 347 |          done)
 | 
|---|
 | 348 |         mkdir -p stamps
 | 
|---|
 | 349 |         touch $@
 | 
|---|
 | 350 | 
 | 
|---|
 | 351 | clean-extra:
 | 
|---|
 | 352 |         rm -rf extra-lib
 | 
|---|
 | 353 |         rm -f stamps/extra-class-files.stamp
 | 
|---|
 | 354 |         rm -f extra-source-files.txt
 | 
|---|
 | 355 | 
 | 
|---|
 | 356 | extra-lib/about.jar: stamps/extra-class-files.stamp
 | 
|---|
 | 357 |         $(BOOT_DIR)/bin/jar cf $@ -C extra-lib net ;
 | 
|---|
 | 358 | 
 | 
|---|
 | 359 | launcher.build/$(javaws): launcher/javaws.in
 | 
|---|
 | 360 |         mkdir -p launcher.build
 | 
|---|
 | 361 |         $(edit_launcher_script) < $< > $@
 | 
|---|
 | 362 | 
 | 
|---|
 | 363 | launcher.build/$(itweb_settings): launcher/itweb-settings.in
 | 
|---|
 | 364 |         mkdir -p launcher.build
 | 
|---|
 | 365 |         $(edit_launcher_script) < $< > $@
 | 
|---|
 | 366 | 
 | 
|---|
 | 367 | clean-launchers:
 | 
|---|
 | 368 |         rm -f launcher.build/$(javaws)
 | 
|---|
 | 369 |         rm -f launcher.build/$(itweb_settings)
 | 
|---|
 | 370 |         if [ -e launcher.build ] ; then \
 | 
|---|
 | 371 |           rmdir launcher.build ; \
 | 
|---|
 | 372 |         fi
 | 
|---|
 | 373 | 
 | 
|---|
 | 374 | javaws.desktop: javaws.desktop.in
 | 
|---|
 | 375 |         sed "s#PATH_TO_JAVAWS#$(bindir)/$(javaws)#" < $(srcdir)/javaws.desktop.in > javaws.desktop
 | 
|---|
 | 376 | 
 | 
|---|
 | 377 | itweb-settings.desktop: $(srcdir)/itweb-settings.desktop.in
 | 
|---|
 | 378 |         sed "s#PATH_TO_ITWEB_SETTINGS#$(bindir)/$(itweb_settings)#" \
 | 
|---|
 | 379 |           < $(srcdir)/itweb-settings.desktop.in > itweb-settings.desktop
 | 
|---|
 | 380 | 
 | 
|---|
 | 381 | # documentation
 | 
|---|
 | 382 | 
 | 
|---|
 | 383 | stamps/docs.stamp: stamps/netx-docs.stamp stamps/plugin-docs.stamp
 | 
|---|
 | 384 |         touch stamps/docs.stamp
 | 
|---|
 | 385 | 
 | 
|---|
 | 386 | clean-docs: clean-netx-docs clean-plugin-docs
 | 
|---|
 | 387 |         if [ -e ${abs_top_builddir}/docs ] ; then \
 | 
|---|
 | 388 |           rmdir ${abs_top_builddir}/docs ; \
 | 
|---|
 | 389 |         fi
 | 
|---|
 | 390 |         rm -f stamps/docs.stamp
 | 
|---|
 | 391 | 
 | 
|---|
 | 392 | stamps/netx-docs.stamp: stamps/bootstrap-directory.stamp
 | 
|---|
 | 393 | if ENABLE_DOCS
 | 
|---|
 | 394 |         $(BOOT_DIR)/bin/javadoc $(JAVADOC_MEM_OPTS) $(JAVADOC_OPTS) \
 | 
|---|
 | 395 |          -d ${abs_top_builddir}/docs/netx -sourcepath $(NETX_SRCDIR) \
 | 
|---|
 | 396 |          -doctitle 'IcedTea-Web: NetX API Specification' \
 | 
|---|
 | 397 |          -windowtitle 'IcedTea-Web: NetX ' \
 | 
|---|
 | 398 |          -header '<strong>IcedTea-Web<br/>NetX</strong>' \
 | 
|---|
 | 399 |          $(NETX_PKGS)
 | 
|---|
 | 400 | endif
 | 
|---|
 | 401 |         mkdir -p stamps
 | 
|---|
 | 402 |         touch stamps/netx-docs.stamp
 | 
|---|
 | 403 | 
 | 
|---|
 | 404 | clean-netx-docs:
 | 
|---|
 | 405 |         rm -rf ${abs_top_builddir}/docs/netx
 | 
|---|
 | 406 |         rm -f stamps/netx-docs.stamp
 | 
|---|
 | 407 | 
 | 
|---|
 | 408 | stamps/plugin-docs.stamp: stamps/bootstrap-directory.stamp
 | 
|---|
 | 409 | if ENABLE_DOCS
 | 
|---|
 | 410 | if ENABLE_PLUGIN
 | 
|---|
 | 411 |         $(BOOT_DIR)/bin/javadoc $(JAVADOC_MEM_OPTS) $(JAVADOC_OPTS) \
 | 
|---|
 | 412 |          -d ${abs_top_builddir}/docs/plugin -sourcepath $(NETX_SRCDIR):$(LIVECONNECT_SRCS) \
 | 
|---|
 | 413 |          -doctitle 'IcedTea-Web: Plugin API Specification' \
 | 
|---|
 | 414 |          -windowtitle 'IcedTea-Web: Plugin ' \
 | 
|---|
 | 415 |          -header '<strong>IcedTea-Web<br/>Plugin</strong>' \
 | 
|---|
 | 416 |          $(PLUGIN_PKGS)
 | 
|---|
 | 417 | endif
 | 
|---|
 | 418 | endif
 | 
|---|
 | 419 |         mkdir -p stamps
 | 
|---|
 | 420 |         touch stamps/plugin-docs.stamp
 | 
|---|
 | 421 | 
 | 
|---|
 | 422 | clean-plugin-docs:
 | 
|---|
 | 423 |         rm -rf ${abs_top_builddir}/docs/plugin
 | 
|---|
 | 424 |         rm -f stamps/plugin-docs.stamp
 | 
|---|
 | 425 | 
 | 
|---|
 | 426 | 
 | 
|---|
 | 427 | # check
 | 
|---|
 | 428 | # ==========================
 | 
|---|
 | 429 | 
 | 
|---|
 | 430 | clean-tests: clean-netx-tests
 | 
|---|
 | 431 |         if [ -e $(TESTS_DIR) ]; then \
 | 
|---|
 | 432 |                 rmdir $(TESTS_DIR) ; \
 | 
|---|
 | 433 |         fi
 | 
|---|
 | 434 | 
 | 
|---|
 | 435 | check-pac-functions: stamps/bootstrap-directory.stamp
 | 
|---|
 | 436 |         ./jrunscript $(abs_top_srcdir)/tests/netx/pac/pac-funcs-test.js \
 | 
|---|
 | 437 |           $$(readlink -f $(abs_top_srcdir)/netx/net/sourceforge/jnlp/runtime/pac-funcs.js)
 | 
|---|
 | 438 | 
 | 
|---|
 | 439 | junit-runner-source-files.txt:
 | 
|---|
 | 440 |         find $(JUNIT_RUNNER_SRCDIR) -name '*.java' | sort > $@
 | 
|---|
 | 441 | 
 | 
|---|
 | 442 | $(JUNIT_RUNNER_JAR): junit-runner-source-files.txt
 | 
|---|
 | 443 |         mkdir -p $(JUNIT_RUNNER_DIR) && \
 | 
|---|
 | 444 |         $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
 | 
|---|
 | 445 |           -d $(JUNIT_RUNNER_DIR) \
 | 
|---|
 | 446 |           -classpath $(JUNIT_JAR) \
 | 
|---|
 | 447 |           @junit-runner-source-files.txt && \
 | 
|---|
 | 448 |         $(BOOT_DIR)/bin/jar cf $@  -C $(JUNIT_RUNNER_DIR) .
 | 
|---|
 | 449 | 
 | 
|---|
 | 450 | netx-unit-tests-source-files.txt:
 | 
|---|
 | 451 |         find $(NETX_UNIT_TEST_SRCDIR) -name '*.java' | sort > $@
 | 
|---|
 | 452 | 
 | 
|---|
 | 453 | stamps/netx-unit-tests-compile.stamp: stamps/netx.stamp \
 | 
|---|
 | 454 |  netx-unit-tests-source-files.txt
 | 
|---|
 | 455 |         mkdir -p $(NETX_UNIT_TEST_DIR) && \
 | 
|---|
 | 456 |         $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
 | 
|---|
 | 457 |          -d $(NETX_UNIT_TEST_DIR) \
 | 
|---|
 | 458 |          -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \
 | 
|---|
 | 459 |          @netx-unit-tests-source-files.txt && \
 | 
|---|
 | 460 |         mkdir -p stamps && \
 | 
|---|
 | 461 |         touch $@
 | 
|---|
 | 462 | 
 | 
|---|
 | 463 | run-netx-unit-tests: stamps/netx-unit-tests-compile.stamp \
 | 
|---|
 | 464 |  $(JUNIT_RUNNER_JAR)
 | 
|---|
 | 465 |         cp {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/basic.jnlp
 | 
|---|
 | 466 |         cd $(NETX_UNIT_TEST_DIR) ; \
 | 
|---|
 | 467 |         class_names= ; \
 | 
|---|
 | 468 |         for test in `find -type f` ; do \
 | 
|---|
 | 469 |           class_name=`echo $$test | sed -e 's|\.class$$||' -e 's|^\./||'` ; \
 | 
|---|
 | 470 |           class_name=`echo $$class_name | sed -e 's|/|.|g' ` ; \
 | 
|---|
 | 471 |           class_names="$$class_names $$class_name" ; \
 | 
|---|
 | 472 |         done ; \
 | 
|---|
 | 473 |         echo $$class_names ; \
 | 
|---|
 | 474 |         CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):. \
 | 
|---|
 | 475 |           $(BOOT_DIR)/bin/java -Xbootclasspath:$(RUNTIME) CommandLine $$class_names
 | 
|---|
 | 476 | 
 | 
|---|
 | 477 | clean-netx-tests: clean-netx-unit-tests clean-junit-runner
 | 
|---|
 | 478 |         if [ -e $(TESTS_DIR)/netx ]; then \
 | 
|---|
 | 479 |           rmdir $(TESTS_DIR)/netx ; \
 | 
|---|
 | 480 |         fi
 | 
|---|
 | 481 | 
 | 
|---|
 | 482 | clean-junit-runner:
 | 
|---|
 | 483 |         rm -f junit-runner-source-files.txt
 | 
|---|
 | 484 |         rm -rf $(JUNIT_RUNNER_DIR)
 | 
|---|
 | 485 |         rm -f $(JUNIT_RUNNER_JAR)
 | 
|---|
 | 486 | 
 | 
|---|
 | 487 | clean-netx-unit-tests:
 | 
|---|
 | 488 |         rm -f netx-unit-tests-source-files.txt
 | 
|---|
 | 489 |         rm -rf $(NETX_UNIT_TEST_DIR)
 | 
|---|
 | 490 |         rm -f stamps/netx-unit-tests-compile.stamp
 | 
|---|
 | 491 | 
 | 
|---|
 | 492 | # plugin tests
 | 
|---|
 | 493 | 
 | 
|---|
 | 494 | if ENABLE_PLUGIN
 | 
|---|
 | 495 | stamps/plugin-tests.stamp: $(PLUGIN_TEST_SRCS) stamps/plugin.stamp
 | 
|---|
 | 496 |         mkdir -p plugin/tests/LiveConnect
 | 
|---|
 | 497 |         $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
 | 
|---|
 | 498 |          -d plugin/tests/LiveConnect \
 | 
|---|
 | 499 |          -classpath liveconnect/lib/classes.jar \
 | 
|---|
 | 500 |          $(PLUGIN_TEST_SRCS) ;
 | 
|---|
 | 501 |         $(BOOT_DIR)/bin/jar cf plugin/tests/LiveConnect/PluginTest.jar \
 | 
|---|
 | 502 |           plugin/tests/LiveConnect/*.class ;
 | 
|---|
 | 503 |         cp -pPR $(SRC_DIR_LINK) $(abs_top_srcdir)/plugin/tests/LiveConnect/*.{js,html} \
 | 
|---|
 | 504 |           plugin/tests/LiveConnect ;
 | 
|---|
 | 505 |         echo "Done. Now launch \"firefox file://`pwd`/index.html\"" ;
 | 
|---|
 | 506 |         mkdir -p stamps
 | 
|---|
 | 507 |         touch stamps/plugin-tests.stamp
 | 
|---|
 | 508 | endif
 | 
|---|
 | 509 | 
 | 
|---|
 | 510 | # Bootstrap Directory Targets
 | 
|---|
 | 511 | # ===========================
 | 
|---|
 | 512 | 
 | 
|---|
 | 513 | stamps/native-ecj.stamp: 
 | 
|---|
 | 514 |         mkdir -p stamps ; \
 | 
|---|
 | 515 |         if test "x$(GCJ)" != "xno"; then \
 | 
|---|
 | 516 |           $(GCJ) $(IT_CFLAGS) -Wl,-Bsymbolic -findirect-dispatch -o native-ecj \
 | 
|---|
 | 517 |             --main=org.eclipse.jdt.internal.compiler.batch.Main ${ECJ_JAR} ; \
 | 
|---|
 | 518 |         fi ; \
 | 
|---|
 | 519 |         touch stamps/native-ecj.stamp
 | 
|---|
 | 520 | 
 | 
|---|
 | 521 | clean-native-ecj:
 | 
|---|
 | 522 |         rm -f native-ecj
 | 
|---|
 | 523 |         rm -rf stamps/native-ecj.stamp
 | 
|---|
 | 524 | 
 | 
|---|
 | 525 | # bootstrap
 | 
|---|
 | 526 | stamps/bootstrap-directory.stamp: stamps/native-ecj.stamp
 | 
|---|
 | 527 |         mkdir -p $(BOOT_DIR)/bin stamps/
 | 
|---|
 | 528 |         ln -sf $(JAVA) $(BOOT_DIR)/bin/java
 | 
|---|
 | 529 |         ln -sf $(JAR) $(BOOT_DIR)/bin/jar
 | 
|---|
 | 530 |         ln -sf $(abs_top_builddir)/javac $(BOOT_DIR)/bin/javac
 | 
|---|
 | 531 |         ln -sf $(JAVADOC) $(BOOT_DIR)/bin/javadoc
 | 
|---|
 | 532 |         mkdir -p $(BOOT_DIR)/jre/lib && \
 | 
|---|
 | 533 |         ln -s $(SYSTEM_JRE_DIR)/lib/rt.jar $(BOOT_DIR)/jre/lib && \
 | 
|---|
 | 534 |         if [ -e $(SYSTEM_JRE_DIR)/lib/jsse.jar ] ; then \
 | 
|---|
 | 535 |           ln -s $(SYSTEM_JRE_DIR)/lib/jsse.jar $(BOOT_DIR)/jre/lib ; \
 | 
|---|
 | 536 |         else \
 | 
|---|
 | 537 |           ln -s rt.jar $(BOOT_DIR)/jre/lib/jsse.jar ; \
 | 
|---|
 | 538 |         fi
 | 
|---|
 | 539 |         ln -sf $(SYSTEM_JRE_DIR)/lib/$(JRE_ARCH_DIR) \
 | 
|---|
 | 540 |           $(BOOT_DIR)/jre/lib/ && \
 | 
|---|
 | 541 |         if ! test -d $(BOOT_DIR)/jre/lib/$(INSTALL_ARCH_DIR); \
 | 
|---|
 | 542 |           then \
 | 
|---|
 | 543 |           ln -sf ./$(JRE_ARCH_DIR) \
 | 
|---|
 | 544 |             $(BOOT_DIR)/jre/lib/$(INSTALL_ARCH_DIR); \
 | 
|---|
 | 545 |         fi;
 | 
|---|
 | 546 |         mkdir -p $(BOOT_DIR)/include && \
 | 
|---|
 | 547 |         for i in $(SYSTEM_JDK_DIR)/include/*; do \
 | 
|---|
 | 548 |           test -r $$i | continue; \
 | 
|---|
 | 549 |           i=`basename $$i`; \
 | 
|---|
 | 550 |           rm -f $(BOOT_DIR)/include/$$i; \
 | 
|---|
 | 551 |           ln -s $(SYSTEM_JDK_DIR)/include/$$i $(BOOT_DIR)/include/$$i; \
 | 
|---|
 | 552 |         done
 | 
|---|
 | 553 |         mkdir -p stamps
 | 
|---|
 | 554 |         touch stamps/bootstrap-directory.stamp
 | 
|---|
 | 555 | 
 | 
|---|
 | 556 | clean-bootstrap-directory:
 | 
|---|
 | 557 |         rm -rf $(BOOT_DIR)
 | 
|---|
 | 558 |         if [ -e ${abs_top_builddir}/bootstrap ] ; then \
 | 
|---|
 | 559 |           rmdir ${abs_top_builddir}/bootstrap ; \
 | 
|---|
 | 560 |         fi
 | 
|---|
 | 561 |         rm -f stamps/bootstrap-directory.stamp
 | 
|---|
 | 562 | 
 | 
|---|
 | 563 | # Target Aliases
 | 
|---|
 | 564 | # ===============
 | 
|---|
 | 565 | 
 | 
|---|
 | 566 | add-netx: stamps/add-netx.stamp
 | 
|---|
 | 567 | 
 | 
|---|
 | 568 | add-netx-debug: stamps/add-netx-debug.stamp
 | 
|---|
 | 569 | 
 | 
|---|
 | 570 | netx: stamps/netx.stamp
 | 
|---|
 | 571 | 
 | 
|---|
 | 572 | netx-dist: stamps/netx-dist.stamp
 | 
|---|
 | 573 | 
 | 
|---|
 | 574 | plugin: stamps/plugin.stamp
 | 
|---|
 | 575 | 
 | 
|---|
 | 576 | plugin-tests: stamps/plugin-tests.stamp
 | 
|---|