1 #
   2 # Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
   3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4 #
   5 # This code is free software; you can redistribute it and/or modify it
   6 # under the terms of the GNU General Public License version 2 only, as
   7 # published by the Free Software Foundation.  Oracle designates this
   8 # particular file as subject to the "Classpath" exception as provided
   9 # by Oracle in the LICENSE file that accompanied this code.
  10 #
  11 # This code is distributed in the hope that it will be useful, but WITHOUT
  12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14 # version 2 for more details (a copy is included in the LICENSE file that
  15 # accompanied this code).
  16 #
  17 # You should have received a copy of the GNU General Public License version
  18 # 2 along with this work; if not, write to the Free Software Foundation,
  19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20 #
  21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22 # or visit www.oracle.com if you need additional information or have any
  23 # questions.
  24 #
  25 
  26 #
  27 # Makefile for java.nio
  28 #
  29 
  30 BUILDDIR = ../..
  31 PACKAGE = java.nio
  32 LIBRARY = nio
  33 PRODUCT = java
  34 JAVAC_MAX_WARNINGS = true
  35 JAVAC_WARNINGS_FATAL = true
  36 include $(BUILDDIR)/common/Defs.gmk
  37 
  38 NIO_SRC = $(SHARE_SRC)/classes/java/nio
  39 NIO_GEN = $(GENSRCDIR)/java/nio
  40 
  41 SNIO_SRC = $(SHARE_SRC)/classes/sun/nio
  42 SNIO_GEN = $(GENSRCDIR)/sun/nio
  43 
  44 #
  45 # Files to compile
  46 #
  47 
  48 include FILES_java.gmk
  49 include FILES_c.gmk
  50 include Exportedfiles.gmk
  51 
  52 ifeq ($(PLATFORM), solaris)
  53 FILES_java += \
  54         sun/nio/ch/AbstractPollSelectorImpl.java \
  55         sun/nio/ch/DevPollArrayWrapper.java \
  56         sun/nio/ch/DevPollSelectorImpl.java \
  57         sun/nio/ch/DevPollSelectorProvider.java \
  58         sun/nio/ch/EventPortSelectorImpl.java \
  59         sun/nio/ch/EventPortSelectorProvider.java \
  60         sun/nio/ch/EventPortWrapper.java \
  61         sun/nio/ch/InheritedChannel.java \
  62         sun/nio/ch/PollSelectorProvider.java \
  63         sun/nio/ch/PollSelectorImpl.java \
  64         sun/nio/ch/Port.java \
  65         sun/nio/ch/SimpleAsynchronousFileChannelImpl.java \
  66         sun/nio/ch/SolarisAsynchronousChannelProvider.java \
  67         sun/nio/ch/SolarisEventPort.java \
  68         sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java \
  69         sun/nio/ch/UnixAsynchronousSocketChannelImpl.java \
  70         \
  71         sun/nio/fs/GnomeFileTypeDetector.java \
  72         sun/nio/fs/PollingWatchService.java \
  73         sun/nio/fs/SolarisAclFileAttributeView.java \
  74         sun/nio/fs/SolarisFileStore.java \
  75         sun/nio/fs/SolarisFileSystem.java \
  76         sun/nio/fs/SolarisFileSystemProvider.java \
  77         sun/nio/fs/SolarisUserDefinedFileAttributeView.java \
  78         sun/nio/fs/SolarisNativeDispatcher.java \
  79         sun/nio/fs/SolarisWatchService.java \
  80         sun/nio/fs/UnixChannelFactory.java \
  81         sun/nio/fs/UnixCopyFile.java \
  82         sun/nio/fs/UnixDirectoryStream.java \
  83         sun/nio/fs/UnixException.java \
  84         sun/nio/fs/UnixFileAttributeViews.java \
  85         sun/nio/fs/UnixFileAttributes.java \
  86         sun/nio/fs/UnixFileKey.java \
  87         sun/nio/fs/UnixFileModeAttribute.java \
  88         sun/nio/fs/UnixFileStore.java \
  89         sun/nio/fs/UnixFileStoreAttributes.java \
  90         sun/nio/fs/UnixFileSystem.java \
  91         sun/nio/fs/UnixFileSystemProvider.java \
  92         sun/nio/fs/UnixMountEntry.java \
  93         sun/nio/fs/UnixNativeDispatcher.java \
  94         sun/nio/fs/UnixPath.java \
  95         sun/nio/fs/UnixSecureDirectoryStream.java \
  96         sun/nio/fs/UnixUriUtils.java \
  97         sun/nio/fs/UnixUserPrincipals.java
  98 
  99 FILES_c += \
 100         DevPollArrayWrapper.c \
 101         InheritedChannel.c \
 102         NativeThread.c \
 103         PollArrayWrapper.c \
 104         SolarisEventPort.c \
 105         UnixAsynchronousServerSocketChannelImpl.c \
 106         UnixAsynchronousSocketChannelImpl.c \
 107         \
 108         GnomeFileTypeDetector.c \
 109         SolarisNativeDispatcher.c \
 110         SolarisWatchService.c \
 111         UnixCopyFile.c \
 112         UnixNativeDispatcher.c
 113 
 114 FILES_export += \
 115         sun/nio/ch/DevPollArrayWrapper.java \
 116         sun/nio/ch/InheritedChannel.java \
 117         sun/nio/ch/NativeThread.java \
 118         sun/nio/ch/SolarisEventPort.java \
 119         sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java \
 120         sun/nio/ch/UnixAsynchronousSocketChannelImpl.java \
 121         \
 122         sun/nio/fs/GnomeFileTypeDetector.java \
 123         sun/nio/fs/SolarisNativeDispatcher.java \
 124         sun/nio/fs/SolarisWatchService.java \
 125         sun/nio/fs/UnixCopyFile.java \
 126         sun/nio/fs/UnixNativeDispatcher.java
 127 
 128 FILES_gen += \
 129         sun/nio/fs/SolarisConstants.java \
 130         sun/nio/fs/UnixConstants.java
 131 endif # PLATFORM = solaris
 132 
 133 ifeq ($(PLATFORM), windows)
 134 FILES_java += \
 135         sun/nio/ch/Iocp.java \
 136         sun/nio/ch/PendingIoCache.java \
 137         sun/nio/ch/WindowsAsynchronousChannelProvider.java \
 138         sun/nio/ch/WindowsAsynchronousFileChannelImpl.java \
 139         sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.java \
 140         sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java \
 141         sun/nio/ch/WindowsSelectorImpl.java \
 142         sun/nio/ch/WindowsSelectorProvider.java \
 143         \
 144         sun/nio/fs/RegistryFileTypeDetector.java \
 145         sun/nio/fs/WindowsAclFileAttributeView.java \
 146         sun/nio/fs/WindowsChannelFactory.java \
 147         sun/nio/fs/WindowsConstants.java \
 148         sun/nio/fs/WindowsDirectoryStream.java \
 149         sun/nio/fs/WindowsException.java \
 150         sun/nio/fs/WindowsFileAttributeViews.java \
 151         sun/nio/fs/WindowsFileAttributes.java \
 152         sun/nio/fs/WindowsFileCopy.java \
 153         sun/nio/fs/WindowsFileStore.java \
 154         sun/nio/fs/WindowsFileSystem.java \
 155         sun/nio/fs/WindowsFileSystemProvider.java \
 156         sun/nio/fs/WindowsLinkSupport.java \
 157         sun/nio/fs/WindowsUserDefinedFileAttributeView.java \
 158         sun/nio/fs/WindowsNativeDispatcher.java \
 159         sun/nio/fs/WindowsPath.java \
 160         sun/nio/fs/WindowsPathParser.java \
 161         sun/nio/fs/WindowsPathType.java \
 162         sun/nio/fs/WindowsSecurity.java \
 163         sun/nio/fs/WindowsSecurityDescriptor.java \
 164         sun/nio/fs/WindowsUriSupport.java \
 165         sun/nio/fs/WindowsUserPrincipals.java \
 166         sun/nio/fs/WindowsWatchService.java
 167 
 168 FILES_c += \
 169         Iocp.c \
 170         RegistryFileTypeDetector.c \
 171         WindowsAsynchronousFileChannelImpl.c \
 172         WindowsAsynchronousServerSocketChannelImpl.c \
 173         WindowsAsynchronousSocketChannelImpl.c \
 174         WindowsNativeDispatcher.c \
 175         WindowsSelectorImpl.c
 176 
 177 FILES_export += \
 178         sun/nio/ch/Iocp.java \
 179         sun/nio/ch/WindowsAsynchronousFileChannelImpl.java \
 180         sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.java \
 181         sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java \
 182         sun/nio/ch/WindowsSelectorImpl.java \
 183         sun/nio/fs/WindowsNativeDispatcher.java \
 184         sun/nio/fs/RegistryFileTypeDetector.java
 185 endif # PLATFORM = windows
 186 
 187 ifeq ($(PLATFORM), linux)
 188 FILES_java += \
 189         sun/nio/ch/AbstractPollSelectorImpl.java \
 190         sun/nio/ch/EPoll.java \
 191         sun/nio/ch/EPollArrayWrapper.java \
 192         sun/nio/ch/EPollPort.java \
 193         sun/nio/ch/EPollSelectorProvider.java \
 194         sun/nio/ch/EPollSelectorImpl.java \
 195         sun/nio/ch/InheritedChannel.java \
 196         sun/nio/ch/LinuxAsynchronousChannelProvider.java \
 197         sun/nio/ch/PollSelectorProvider.java \
 198         sun/nio/ch/PollSelectorImpl.java \
 199         sun/nio/ch/Port.java \
 200         sun/nio/ch/SimpleAsynchronousFileChannelImpl.java \
 201         sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java \
 202         sun/nio/ch/UnixAsynchronousSocketChannelImpl.java \
 203         \
 204         sun/nio/fs/GnomeFileTypeDetector.java \
 205         sun/nio/fs/LinuxDosFileAttributeView.java \
 206         sun/nio/fs/LinuxFileStore.java \
 207         sun/nio/fs/LinuxFileSystem.java \
 208         sun/nio/fs/LinuxFileSystemProvider.java \
 209         sun/nio/fs/LinuxUserDefinedFileAttributeView.java \
 210         sun/nio/fs/LinuxNativeDispatcher.java \
 211         sun/nio/fs/LinuxWatchService.java \
 212         sun/nio/fs/UnixChannelFactory.java \
 213         sun/nio/fs/UnixCopyFile.java \
 214         sun/nio/fs/UnixDirectoryStream.java \
 215         sun/nio/fs/UnixException.java \
 216         sun/nio/fs/UnixFileAttributeViews.java \
 217         sun/nio/fs/UnixFileAttributes.java \
 218         sun/nio/fs/UnixFileKey.java \
 219         sun/nio/fs/UnixFileModeAttribute.java \
 220         sun/nio/fs/UnixFileStore.java \
 221         sun/nio/fs/UnixFileStoreAttributes.java \
 222         sun/nio/fs/UnixFileSystem.java \
 223         sun/nio/fs/UnixFileSystemProvider.java \
 224         sun/nio/fs/UnixMountEntry.java \
 225         sun/nio/fs/UnixNativeDispatcher.java \
 226         sun/nio/fs/UnixPath.java \
 227         sun/nio/fs/UnixSecureDirectoryStream.java \
 228         sun/nio/fs/UnixUriUtils.java \
 229         sun/nio/fs/UnixUserPrincipals.java
 230 
 231 FILES_c += \
 232         EPoll.c \
 233         EPollArrayWrapper.c \
 234         EPollPort.c \
 235         InheritedChannel.c \
 236         NativeThread.c \
 237         PollArrayWrapper.c \
 238         UnixAsynchronousServerSocketChannelImpl.c \
 239         UnixAsynchronousSocketChannelImpl.c \
 240         \
 241         GnomeFileTypeDetector.c \
 242         LinuxNativeDispatcher.c \
 243         LinuxWatchService.c \
 244         UnixCopyFile.c \
 245         UnixNativeDispatcher.c
 246 
 247 FILES_export += \
 248         sun/nio/ch/EPoll.java \
 249         sun/nio/ch/EPollArrayWrapper.java \
 250         sun/nio/ch/EPollPort.java \
 251         sun/nio/ch/InheritedChannel.java \
 252         sun/nio/ch/NativeThread.java \
 253         sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java \
 254         sun/nio/ch/UnixAsynchronousSocketChannelImpl.java \
 255         \
 256         sun/nio/fs/GnomeFileTypeDetector.java \
 257         sun/nio/fs/LinuxNativeDispatcher.java \
 258         sun/nio/fs/LinuxWatchService.java \
 259         sun/nio/fs/UnixCopyFile.java \
 260         sun/nio/fs/UnixNativeDispatcher.java
 261 
 262 FILES_gen += \
 263         sun/nio/fs/UnixConstants.java
 264 endif # PLATFORM = linux
 265 
 266 ifeq ($(PLATFORM), macosx)
 267 FILES_java += \
 268         sun/nio/ch/AbstractPollSelectorImpl.java \
 269         sun/nio/ch/BsdAsynchronousChannelProvider.java \
 270         sun/nio/ch/InheritedChannel.java \
 271         sun/nio/ch/KQueue.java \
 272         sun/nio/ch/KQueuePort.java \
 273         sun/nio/ch/PollSelectorProvider.java \
 274         sun/nio/ch/PollSelectorImpl.java \
 275         sun/nio/ch/Port.java \
 276         sun/nio/ch/SimpleAsynchronousFileChannelImpl.java \
 277         sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java \
 278         sun/nio/ch/UnixAsynchronousSocketChannelImpl.java \
 279         \
 280         sun/nio/fs/BsdFileStore.java \
 281         sun/nio/fs/BsdFileSystem.java \
 282         sun/nio/fs/BsdFileSystemProvider.java \
 283         sun/nio/fs/BsdNativeDispatcher.java \
 284         sun/nio/fs/MacOSXFileSystemProvider.java \
 285         sun/nio/fs/MacOSXFileSystem.java \
 286         sun/nio/fs/MacOSXNativeDispatcher.java \
 287         sun/nio/fs/PollingWatchService.java \
 288         sun/nio/fs/UnixChannelFactory.java \
 289         sun/nio/fs/UnixCopyFile.java \
 290         sun/nio/fs/UnixDirectoryStream.java \
 291         sun/nio/fs/UnixException.java \
 292         sun/nio/fs/UnixFileAttributeViews.java \
 293         sun/nio/fs/UnixFileAttributes.java \
 294         sun/nio/fs/UnixFileKey.java \
 295         sun/nio/fs/UnixFileModeAttribute.java \
 296         sun/nio/fs/UnixFileStore.java \
 297         sun/nio/fs/UnixFileStoreAttributes.java \
 298         sun/nio/fs/UnixFileSystem.java \
 299         sun/nio/fs/UnixFileSystemProvider.java \
 300         sun/nio/fs/UnixMountEntry.java \
 301         sun/nio/fs/UnixNativeDispatcher.java \
 302         sun/nio/fs/UnixPath.java \
 303         sun/nio/fs/UnixSecureDirectoryStream.java \
 304         sun/nio/fs/UnixUriUtils.java \
 305         sun/nio/fs/UnixUserPrincipals.java
 306 
 307 FILES_c += \
 308         InheritedChannel.c \
 309         NativeThread.c \
 310         PollArrayWrapper.c \
 311         UnixAsynchronousServerSocketChannelImpl.c \
 312         UnixAsynchronousSocketChannelImpl.c \
 313         \
 314         BsdNativeDispatcher.c \
 315         MacOSXNativeDispatcher.c \
 316         UnixCopyFile.c \
 317         UnixNativeDispatcher.c \
 318         \
 319         KQueue.c \
 320         KQueuePort.c
 321 
 322 FILES_export += \
 323         sun/nio/ch/InheritedChannel.java \
 324         sun/nio/ch/KQueue.java \
 325         sun/nio/ch/KQueuePort.java \
 326         sun/nio/ch/NativeThread.java \
 327         sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java \
 328         sun/nio/ch/UnixAsynchronousSocketChannelImpl.java \
 329         \
 330         sun/nio/fs/BsdNativeDispatcher.java \
 331         sun/nio/fs/UnixCopyFile.java \
 332         sun/nio/fs/UnixNativeDispatcher.java
 333         
 334 FILES_gen += \
 335         sun/nio/fs/UnixConstants.java
 336 endif # PLATFORM = bsd, macosx
 337 
 338 ifeq ($(PLATFORM), macosx)
 339 FILES_java += \
 340     sun/nio/ch/KQueueSelectorProvider.java \
 341     sun/nio/ch/KQueueSelectorImpl.java \
 342     sun/nio/ch/KQueueArrayWrapper.java
 343 
 344 FILES_c += \
 345     KQueueArrayWrapper.c
 346 
 347 vpath %.c $(call NativeSrcDirList,,native/sun/nio/fs)
 348 vpath %.c $(call NativeSrcDirList,,native/sun/nio/ch)
 349 
 350 else
 351 
 352 #
 353 # Find platform-specific C source files
 354 #
 355 vpath %.c $(PLATFORM_SRC)/native/sun/nio/fs
 356 vpath %.c $(PLATFORM_SRC)/native/sun/nio/ch
 357 vpath %.c $(SHARE_SRC)/native/sun/nio/ch
 358 
 359 endif # PLATFORM = macosx
 360 
 361 #
 362 # Various variables
 363 #
 364 
 365 JAVALIB =               # Don't self-link
 366 
 367 #
 368 # Access to io_util.c and net_util.c
 369 #
 370 
 371 OTHER_INCLUDES += \
 372   -I$(SHARE_SRC)/native/sun/nio/ch \
 373   -I$(SHARE_SRC)/native/java/io \
 374   -I$(SHARE_SRC)/native/java/net \
 375   -I$(PLATFORM_SRC)/native/java/net \
 376   -I$(CLASSHDRDIR)/../../../java.lang/java/CClassHeaders
 377 
 378 ifeq ($(PLATFORM),windows)
 379   OTHER_LDLIBS += $(JVMLIB) ws2_32.lib \
 380      -libpath:$(LIBDIR) java.lib \
 381      $(OBJDIR)/../../../../sun/java.net/net/$(OBJDIRNAME)/net.lib \
 382      $(OBJDIR)/../../../java.lang/java/$(OBJDIRNAME)/io_util.obj \
 383      $(OBJDIR)/../../../java.lang/java/$(OBJDIRNAME)/FileDescriptor_md.obj
 384 endif
 385 ifeq ($(PLATFORM), linux)
 386 OTHER_LDLIBS += -L$(LIBDIR)/$(LIBARCH) -ljava -lnet -lpthread $(LIBDL)
 387 endif
 388 ifeq ($(PLATFORM), macosx)
 389 OTHER_LDLIBS += -L$(LIBDIR) -ljava -lnet -pthread -framework CoreFoundation
 390 endif
 391 ifeq ($(PLATFORM), solaris)
 392 OTHER_LDLIBS += $(JVMLIB) $(LIBSOCKET) -lposix4 $(LIBDL) -lsendfile \
 393                 -L$(LIBDIR)/$(LIBARCH) -ljava -lnet
 394 endif # PLATFORM
 395 
 396 #
 397 # Rules
 398 #
 399 
 400 build: sources
 401 
 402 clean clobber::
 403         $(RM) -r $(NIO_GEN) $(SNIO_GEN)
 404         $(RM) -r $(CLASSDESTDIR)/java/nio
 405         $(RM) -r $(CLASSDESTDIR)/sun/nio
 406 
 407 ifeq ($(PLATFORM), solaris)
 408 FILES_m = mapfile-solaris
 409 endif
 410 ifeq ($(PLATFORM), linux)
 411 FILES_m = mapfile-linux
 412 endif
 413 ifeq ($(PLATFORM), macosx)
 414 FILES_m = mapfile-bsd
 415 endif
 416 include $(BUILDDIR)/common/Mapfile-vers.gmk
 417 include $(BUILDDIR)/common/Library.gmk
 418 
 419 #
 420 # Generate source files
 421 #
 422 
 423 SPP_JARFILE = $(BUILDTOOLJARDIR)/spp.jar
 424 SPP_CMD = $(BOOT_JAVA_CMD) -jar $(SPP_JARFILE)
 425 
 426 FILES_genout = $(FILES_gen:%.java=$(GENSRCDIR)/%.java)
 427 
 428 BUF_SRC=$(NIO_SRC)
 429 CH_SRC=$(NIO_SRC)/channels
 430 CS_SRC=$(NIO_SRC)/charset
 431 SCH_SRC=$(SNIO_SRC)/ch
 432 SCS_SRC=$(SNIO_SRC)/cs
 433 SFS_SRC=$(SNIO_SRC)/fs
 434 
 435 # Template files
 436 HEAP_X_BUF_TEMPLATE=$(BUF_SRC)/Heap-X-Buffer.java.template
 437 BYTE_X_BUF_TEMPLATE=$(BUF_SRC)/ByteBufferAs-X-Buffer.java.template
 438 X_BUF_TEMPLATE=$(BUF_SRC)/X-Buffer.java.template
 439 X_BUF_BIN_TEMPLATE=$(BUF_SRC)/X-Buffer-bin.java.template
 440 DIRECT_X_BUF_TEMPLATE=$(BUF_SRC)/Direct-X-Buffer.java.template
 441 DIRECT_X_BUF_BIN_TEMPLATE=$(BUF_SRC)/Direct-X-Buffer-bin.java.template
 442 CHARSET_X_CODER_TEMPLATE=$(CS_SRC)/Charset-X-Coder.java.template
 443 
 444 BUF_GEN=$(NIO_GEN)
 445 CH_GEN=$(NIO_GEN)/channels
 446 CS_GEN=$(NIO_GEN)/charset
 447 SCH_GEN=$(SNIO_GEN)/ch
 448 SCS_GEN=$(SNIO_GEN)/cs
 449 SFS_GEN=$(SNIO_GEN)/fs
 450 
 451 FILES_gensbcs_out = $(FILES_gen_sbcs:%.java=$(GENSRCDIR)/%.java)
 452 
 453 sources: $(SPP_JARFILE) $(FILES_genout) $(FILES_gensbcs_out)
 454 
 455 #
 456 # Generated buffer classes
 457 #
 458 
 459 GEN_BUFFER_SH = genBuffer.sh
 460 
 461 GEN_BUFFER_CMD = SPP="$(SPP_CMD)" NAWK="$(NAWK)" SED="$(SED)" SH="$(SH)" \
 462                  $(SH) $(GEN_BUFFER_SH)
 463 
 464 # Public abstract buffer classes
 465 #
 466 $(BUF_GEN)/ByteBuffer.java: $(X_BUF_TEMPLATE) \
 467                             $(X_BUF_BIN_TEMPLATE) \
 468                             $(GEN_BUFFER_SH)
 469         $(prep-target)
 470         @$(RM) $@.temp
 471         TYPE=byte BIN=1 SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 472         $(MV) $@.temp $@
 473 $(BUF_GEN)/CharBuffer.java: $(X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 474         $(prep-target)
 475         @$(RM) $@.temp
 476         TYPE=char SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 477         $(MV) $@.temp $@
 478 $(BUF_GEN)/ShortBuffer.java: $(X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 479         $(prep-target)
 480         @$(RM) $@.temp
 481         TYPE=short SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 482         $(MV) $@.temp $@
 483 $(BUF_GEN)/IntBuffer.java: $(X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 484         $(prep-target)
 485         @$(RM) $@.temp
 486         TYPE=int SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 487         $(MV) $@.temp $@
 488 $(BUF_GEN)/LongBuffer.java: $(X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 489         $(prep-target)
 490         @$(RM) $@.temp
 491         TYPE=long SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 492         $(MV) $@.temp $@
 493 $(BUF_GEN)/FloatBuffer.java: $(X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 494         $(prep-target)
 495         @$(RM) $@.temp
 496         TYPE=float SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 497         $(MV) $@.temp $@
 498 $(BUF_GEN)/DoubleBuffer.java: $(X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 499         $(prep-target)
 500         @$(RM) $@.temp
 501         TYPE=double SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 502         $(MV) $@.temp $@
 503 
 504 # Buffers whose contents are heap-allocated
 505 # 
 506 $(BUF_GEN)/HeapByteBuffer.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 507         $(prep-target)
 508         @$(RM) $@.temp
 509         TYPE=byte SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 510         $(MV) $@.temp $@
 511 $(BUF_GEN)/HeapByteBuffer%.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 512         $(prep-target)
 513         @$(RM) $@.temp
 514         TYPE=byte RW=$* SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 515         $(MV) $@.temp $@
 516 $(BUF_GEN)/HeapCharBuffer.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 517         $(prep-target)
 518         @$(RM) $@.temp
 519         TYPE=char SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 520         $(MV) $@.temp $@
 521 $(BUF_GEN)/HeapCharBuffer%.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 522         $(prep-target)
 523         @$(RM) $@.temp
 524         TYPE=char RW=$* SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 525         $(MV) $@.temp $@
 526 $(BUF_GEN)/HeapShortBuffer.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 527         $(prep-target)
 528         @$(RM) $@.temp
 529         TYPE=short SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 530         $(MV) $@.temp $@
 531 $(BUF_GEN)/HeapShortBuffer%.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 532         $(prep-target)
 533         @$(RM) $@.temp
 534         TYPE=short RW=$* SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 535         $(MV) $@.temp $@
 536 $(BUF_GEN)/HeapIntBuffer.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 537         $(prep-target)
 538         @$(RM) $@.temp
 539         TYPE=int SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 540         $(MV) $@.temp $@
 541 $(BUF_GEN)/HeapIntBuffer%.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 542         $(prep-target)
 543         @$(RM) $@.temp
 544         TYPE=int RW=$* SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 545         $(MV) $@.temp $@
 546 $(BUF_GEN)/HeapLongBuffer.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 547         $(prep-target)
 548         @$(RM) $@.temp
 549         TYPE=long SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 550         $(MV) $@.temp $@
 551 $(BUF_GEN)/HeapLongBuffer%.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 552         $(prep-target)
 553         @$(RM) $@.temp
 554         TYPE=long RW=$* SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 555         $(MV) $@.temp $@
 556 $(BUF_GEN)/HeapFloatBuffer.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 557         $(prep-target)
 558         @$(RM) $@.temp
 559         TYPE=float SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 560         $(MV) $@.temp $@
 561 $(BUF_GEN)/HeapFloatBuffer%.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 562         $(prep-target)
 563         @$(RM) $@.temp
 564         TYPE=float RW=$* SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 565         $(MV) $@.temp $@
 566 $(BUF_GEN)/HeapDoubleBuffer.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 567         $(prep-target)
 568         @$(RM) $@.temp
 569         TYPE=double SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 570         $(MV) $@.temp $@
 571 $(BUF_GEN)/HeapDoubleBuffer%.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 572         $(prep-target)
 573         @$(RM) $@.temp
 574         TYPE=double RW=$* SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 575         $(MV) $@.temp $@
 576 
 577 # Direct byte buffer
 578 # 
 579 $(BUF_GEN)/DirectByteBuffer.java: $(DIRECT_X_BUF_TEMPLATE) \
 580                                   $(DIRECT_X_BUF_TEMPLATE) \
 581                                   $(GEN_BUFFER_SH)
 582         $(prep-target)
 583         @$(RM) $@.temp
 584         TYPE=byte BIN=1 SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 585         $(MV) $@.temp $@
 586 $(BUF_GEN)/DirectByteBuffer%.java: $(DIRECT_X_BUF_TEMPLATE) \
 587                                    $(DIRECT_X_BUF_TEMPLATE) \
 588                                    $(GEN_BUFFER_SH)
 589         $(prep-target)
 590         @$(RM) $@.temp
 591         TYPE=byte RW=$* BIN=1 SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 592         $(MV) $@.temp $@
 593 
 594 # Unswapped views of direct byte buffers
 595 #
 596 $(BUF_GEN)/DirectCharBufferU.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 597         $(prep-target)
 598         @$(RM) $@.temp
 599         TYPE=char BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 600         $(MV) $@.temp $@
 601 $(BUF_GEN)/DirectCharBuffer%U.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 602         $(prep-target)
 603         @$(RM) $@.temp
 604         TYPE=char RW=$* BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 605         $(MV) $@.temp $@
 606 $(BUF_GEN)/DirectShortBufferU.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 607         $(prep-target)
 608         @$(RM) $@.temp
 609         TYPE=short BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 610         $(MV) $@.temp $@
 611 $(BUF_GEN)/DirectShortBuffer%U.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 612         $(prep-target)
 613         @$(RM) $@.temp
 614         TYPE=short RW=$* BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 615         $(MV) $@.temp $@
 616 $(BUF_GEN)/DirectIntBufferU.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 617         $(prep-target)
 618         @$(RM) $@.temp
 619         TYPE=int BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 620         $(MV) $@.temp $@
 621 $(BUF_GEN)/DirectIntBuffer%U.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 622         $(prep-target)
 623         @$(RM) $@.temp
 624         TYPE=int RW=$* BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 625         $(MV) $@.temp $@
 626 $(BUF_GEN)/DirectLongBufferU.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 627         $(prep-target)
 628         @$(RM) $@.temp
 629         TYPE=long BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 630         $(MV) $@.temp $@
 631 $(BUF_GEN)/DirectLongBuffer%U.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 632         $(prep-target)
 633         @$(RM) $@.temp
 634         TYPE=long RW=$* BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 635         $(MV) $@.temp $@
 636 $(BUF_GEN)/DirectFloatBufferU.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 637         $(prep-target)
 638         @$(RM) $@.temp
 639         TYPE=float BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 640         $(MV) $@.temp $@
 641 $(BUF_GEN)/DirectFloatBuffer%U.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 642         $(prep-target)
 643         @$(RM) $@.temp
 644         TYPE=float RW=$* BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 645         $(MV) $@.temp $@
 646 $(BUF_GEN)/DirectDoubleBufferU.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 647         $(prep-target)
 648         @$(RM) $@.temp
 649         TYPE=double BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 650         $(MV) $@.temp $@
 651 $(BUF_GEN)/DirectDoubleBuffer%U.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 652         $(prep-target)
 653         @$(RM) $@.temp
 654         TYPE=double RW=$* BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 655         $(MV) $@.temp $@
 656 
 657 # Swapped views of direct byte buffers
 658 #
 659 $(BUF_GEN)/DirectCharBufferS.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 660         $(prep-target)
 661         @$(RM) $@.temp
 662         TYPE=char BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 663         $(MV) $@.temp $@
 664 $(BUF_GEN)/DirectCharBuffer%S.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 665         $(prep-target)
 666         @$(RM) $@.temp
 667         TYPE=char RW=$* BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 668         $(MV) $@.temp $@
 669 $(BUF_GEN)/DirectShortBufferS.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 670         $(prep-target)
 671         @$(RM) $@.temp
 672         TYPE=short BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 673         $(MV) $@.temp $@
 674 $(BUF_GEN)/DirectShortBuffer%S.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 675         $(prep-target)
 676         @$(RM) $@.temp
 677         TYPE=short RW=$* BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 678         $(MV) $@.temp $@
 679 $(BUF_GEN)/DirectIntBufferS.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 680         $(prep-target)
 681         @$(RM) $@.temp
 682         TYPE=int BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 683         $(MV) $@.temp $@
 684 $(BUF_GEN)/DirectIntBuffer%S.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 685         $(prep-target)
 686         @$(RM) $@.temp
 687         TYPE=int RW=$* BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 688         $(MV) $@.temp $@
 689 $(BUF_GEN)/DirectLongBufferS.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 690         $(prep-target)
 691         @$(RM) $@.temp
 692         TYPE=long BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 693         $(MV) $@.temp $@
 694 $(BUF_GEN)/DirectLongBuffer%S.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 695         $(prep-target)
 696         @$(RM) $@.temp
 697         TYPE=long RW=$* BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 698         $(MV) $@.temp $@
 699 $(BUF_GEN)/DirectFloatBufferS.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 700         $(prep-target)
 701         @$(RM) $@.temp
 702         TYPE=float BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 703         $(MV) $@.temp $@
 704 $(BUF_GEN)/DirectFloatBuffer%S.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 705         $(prep-target)
 706         @$(RM) $@.temp
 707         TYPE=float RW=$* BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 708         $(MV) $@.temp $@
 709 $(BUF_GEN)/DirectDoubleBufferS.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 710         $(prep-target)
 711         @$(RM) $@.temp
 712         TYPE=double BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 713         $(MV) $@.temp $@
 714 $(BUF_GEN)/DirectDoubleBuffer%S.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 715         $(prep-target)
 716         @$(RM) $@.temp
 717         TYPE=double RW=$* BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 718         $(MV) $@.temp $@
 719 
 720 # Big-endian views of byte buffers
 721 #
 722 $(BUF_GEN)/ByteBufferAsCharBufferB.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 723         $(prep-target)
 724         @$(RM) $@.temp
 725         TYPE=char BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 726         $(MV) $@.temp $@
 727 $(BUF_GEN)/ByteBufferAsCharBuffer%B.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 728         $(prep-target)
 729         @$(RM) $@.temp
 730         TYPE=char RW=$* BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 731         $(MV) $@.temp $@
 732 $(BUF_GEN)/ByteBufferAsShortBufferB.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 733         $(prep-target)
 734         @$(RM) $@.temp
 735         TYPE=short BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 736         $(MV) $@.temp $@
 737 $(BUF_GEN)/ByteBufferAsShortBuffer%B.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 738         $(prep-target)
 739         @$(RM) $@.temp
 740         TYPE=short RW=$* BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 741         $(MV) $@.temp $@
 742 $(BUF_GEN)/ByteBufferAsIntBufferB.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 743         $(prep-target)
 744         @$(RM) $@.temp
 745         TYPE=int BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 746         $(MV) $@.temp $@
 747 $(BUF_GEN)/ByteBufferAsIntBuffer%B.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 748         $(prep-target)
 749         @$(RM) $@.temp
 750         TYPE=int RW=$* BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 751         $(MV) $@.temp $@
 752 $(BUF_GEN)/ByteBufferAsLongBufferB.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 753         $(prep-target)
 754         @$(RM) $@.temp
 755         TYPE=long BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 756         $(MV) $@.temp $@
 757 $(BUF_GEN)/ByteBufferAsLongBuffer%B.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 758         $(prep-target)
 759         @$(RM) $@.temp
 760         TYPE=long RW=$* BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 761         $(MV) $@.temp $@
 762 $(BUF_GEN)/ByteBufferAsFloatBufferB.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 763         $(prep-target)
 764         @$(RM) $@.temp
 765         TYPE=float BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 766         $(MV) $@.temp $@
 767 $(BUF_GEN)/ByteBufferAsFloatBuffer%B.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 768         $(prep-target)
 769         @$(RM) $@.temp
 770         TYPE=float RW=$* BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 771         $(MV) $@.temp $@
 772 $(BUF_GEN)/ByteBufferAsDoubleBufferB.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 773         $(prep-target)
 774         @$(RM) $@.temp
 775         TYPE=double BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 776         $(MV) $@.temp $@
 777 $(BUF_GEN)/ByteBufferAsDoubleBuffer%B.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 778         $(prep-target)
 779         @$(RM) $@.temp
 780         TYPE=double RW=$* BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 781         $(MV) $@.temp $@
 782 
 783 # Little-endian views of byte buffers
 784 #
 785 $(BUF_GEN)/ByteBufferAsCharBufferL.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 786         $(prep-target)
 787         @$(RM) $@.temp
 788         TYPE=char BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 789         $(MV) $@.temp $@
 790 $(BUF_GEN)/ByteBufferAsCharBuffer%L.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 791         $(prep-target)
 792         @$(RM) $@.temp
 793         TYPE=char RW=$* BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 794         $(MV) $@.temp $@
 795 $(BUF_GEN)/ByteBufferAsShortBufferL.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 796         $(prep-target)
 797         @$(RM) $@.temp
 798         TYPE=short BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 799         $(MV) $@.temp $@
 800 $(BUF_GEN)/ByteBufferAsShortBuffer%L.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 801         $(prep-target)
 802         @$(RM) $@.temp
 803         TYPE=short RW=$* BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 804         $(MV) $@.temp $@
 805 $(BUF_GEN)/ByteBufferAsIntBufferL.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 806         $(prep-target)
 807         @$(RM) $@.temp
 808         TYPE=int BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 809         $(MV) $@.temp $@
 810 $(BUF_GEN)/ByteBufferAsIntBuffer%L.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 811         $(prep-target)
 812         @$(RM) $@.temp
 813         TYPE=int RW=$* BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 814         $(MV) $@.temp $@
 815 $(BUF_GEN)/ByteBufferAsLongBufferL.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 816         $(prep-target)
 817         @$(RM) $@.temp
 818         TYPE=long BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 819         $(MV) $@.temp $@
 820 $(BUF_GEN)/ByteBufferAsLongBuffer%L.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 821         $(prep-target)
 822         @$(RM) $@.temp
 823         TYPE=long RW=$* BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 824         $(MV) $@.temp $@
 825 $(BUF_GEN)/ByteBufferAsFloatBufferL.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 826         $(prep-target)
 827         @$(RM) $@.temp
 828         TYPE=float BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 829         $(MV) $@.temp $@
 830 $(BUF_GEN)/ByteBufferAsFloatBuffer%L.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 831         $(prep-target)
 832         @$(RM) $@.temp
 833         TYPE=float RW=$* BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 834         $(MV) $@.temp $@
 835 $(BUF_GEN)/ByteBufferAsDoubleBufferL.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 836         $(prep-target)
 837         @$(RM) $@.temp
 838         TYPE=double BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 839         $(MV) $@.temp $@
 840 $(BUF_GEN)/ByteBufferAsDoubleBuffer%L.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
 841         $(prep-target)
 842         @$(RM) $@.temp
 843         TYPE=double RW=$* BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
 844         $(MV) $@.temp $@
 845 
 846 #
 847 # Generated coder classes
 848 #
 849 
 850 GEN_CODER_SH = genCoder.sh
 851 
 852 GEN_CODER_CMD = SPP="$(SPP_CMD)" SED="$(SED)" NAWK="$(NAWK)" SH="$(SH)" $(SH) $(GEN_CODER_SH)
 853 
 854 $(CS_GEN)/CharsetDecoder.java: $(CHARSET_X_CODER_TEMPLATE) $(GEN_CODER_SH)
 855         $(prep-target)
 856         @$(RM) $@.temp
 857         $(GEN_CODER_CMD) decoder $< $@.temp
 858         $(MV) $@.temp $@
 859 
 860 $(CS_GEN)/CharsetEncoder.java: $(CHARSET_X_CODER_TEMPLATE) $(GEN_CODER_SH)
 861         $(prep-target)
 862         @$(RM) $@.temp
 863         $(GEN_CODER_CMD) encoder $< $@.temp
 864         $(MV) $@.temp $@
 865 
 866 #
 867 # Generated exception classes
 868 #
 869 
 870 GEN_EX_SH = genExceptions.sh
 871 
 872 GEN_EX_CMD = NAWK="$(NAWK)" SH="$(SH)" $(SH) $(GEN_EX_SH)
 873 
 874 $(CH_GEN)/%Exception.java: genExceptions.sh $(CH_SRC)/exceptions
 875         $(prep-target)
 876         @$(RM) $@.temp
 877         $(GEN_EX_CMD) $(CH_SRC)/exceptions $(CH_GEN)
 878 
 879 $(CS_GEN)/%Exception.java: genExceptions.sh $(CS_SRC)/exceptions
 880         $(prep-target)
 881         @$(RM) $@.temp
 882         $(GEN_EX_CMD) $(CS_SRC)/exceptions $(CS_GEN)
 883 
 884 $(BUF_GEN)/%Exception.java: genExceptions.sh $(BUF_SRC)/exceptions
 885         $(prep-target)
 886         @$(RM) $@.temp
 887         $(GEN_EX_CMD) $(BUF_SRC)/exceptions $(BUF_GEN)
 888 
 889 #
 890 # Generated charset-provider classes
 891 #
 892 
 893 HASHER_JARFILE = $(BUILDTOOLJARDIR)/hasher.jar
 894 
 895 $(SCS_GEN)/StandardCharsets.java: genCharsetProvider.sh \
 896     $(HASHER_JARFILE) $(SCS_SRC)/standard-charsets
 897         $(prep-target)
 898         @$(RM) $@.temp
 899         NAWK="$(NAWK)" TEMPDIR="$(TEMPDIR)" SH="$(SH)" \
 900           HASHER="$(BOOT_JAVA_CMD) -jar $(HASHER_JARFILE)" \
 901           $(SH) -e genCharsetProvider.sh $(SCS_SRC)/standard-charsets $(SCS_GEN)
 902 
 903 #
 904 # Generated channel implementation classes.
 905 # C source is compiled in TEMPDIR to avoid turds left by Windows compilers.
 906 #
 907 
 908 GENSOR_SRC = $(SHARE_SRC)/native/sun/nio/ch/genSocketOptionRegistry.c
 909 
 910 GENSOR_EXE = $(TEMPDIR)/genSocketOptionRegistry$(EXE_SUFFIX)
 911 
 912 SOR_COPYRIGHT_YEARS = $(shell $(CAT) $(GENSOR_SRC) | \
 913         $(NAWK) '/^.*Copyright.*Oracle/ { printf "%s %s",$$4,$$5 }') 
 914 
 915 $(TEMPDIR)/$(GENSOR_SRC) : $(GENSOR_SRC)
 916         $(install-file)
 917 
 918 ifeq ($(PLATFORM), macosx)
 919   NIO_CC=$(HOST_CC)
 920 else
 921   NIO_CC=$(CC)
 922 endif
 923 
 924 $(GENSOR_EXE) : $(TEMPDIR)/$(GENSOR_SRC)
 925         $(prep-target)
 926         ($(CD) $(TEMPDIR); $(NIO_CC) $(CPPFLAGS) $(LDDFLAGS) \
 927            -o genSocketOptionRegistry$(EXE_SUFFIX) $(GENSOR_SRC))
 928 
 929 ifdef NIO_PLATFORM_CLASSES_ROOT_DIR
 930 $(SCH_GEN)/SocketOptionRegistry.java: $(NIO_PLATFORM_CLASSES_ROOT_DIR)/sun/nio/ch/SocketOptionRegistry-$(PLATFORM)-$(ARCH).java
 931         $(prep-target)
 932         $(CP) $< $@
 933 else 
 934 $(SCH_GEN)/SocketOptionRegistry.java: $(GENSOR_EXE)
 935         $(prep-target)
 936         NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh "$(SOR_COPYRIGHT_YEARS)" > $@
 937         $(GENSOR_EXE) >> $@
 938 endif
 939 #
 940 # Generated sun.nio.cs SingleByte classes
 941 #
 942 GENCSSRC = $(BUILDDIR)/tools/CharsetMapping
 943 CHARSETMAPPING_JARFILE = $(BUILDTOOLJARDIR)/charsetmapping.jar
 944 
 945 $(FILES_gensbcs_out): $(GENCSSRC)/SingleByte-X.java.template $(GENCSSRC)/sbcs
 946         @$(prep-target)
 947         $(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSSRC) $(SCS_GEN) sbcs
 948 
 949 # 
 950 # Generated file system implementation classes (Unix only)
 951 #
 952 
 953 GENUC_SRC = $(PLATFORM_SRC)/native/sun/nio/fs/genUnixConstants.c
 954 
 955 GENUC_OBJ = $(TEMPDIR)/genUnixConstants.o
 956 GENUC_EXE = $(TEMPDIR)/genUnixConstants
 957 
 958 GENUC_COPYRIGHT_YEARS = $(shell $(CAT) $(GENUC_SRC) | \
 959         $(NAWK) '/^.*Copyright.*Oracle/ { printf "%s %s",$$4,$$5 }')
 960 
 961 $(GENUC_EXE) : $(GENUC_SRC)
 962         $(prep-target)
 963         $(CC) $(CPPFLAGS) -c -o $(GENUC_OBJ) $(GENUC_SRC)
 964         $(CC) $(CPPFLAGS) -o $@ $(GENUC_OBJ)
 965 
 966 ifdef NIO_PLATFORM_CLASSES_ROOT_DIR
 967 $(SFS_GEN)/UnixConstants.java: $(NIO_PLATFORM_CLASSES_ROOT_DIR)/sun/nio/fs/UnixConstants-$(PLATFORM)-$(ARCH).java
 968         $(prep-target)
 969         $(CP) $< $@
 970 else
 971 $(SFS_GEN)/UnixConstants.java: $(GENUC_EXE)
 972         $(prep-target)
 973         NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh "$(GENUC_COPYRIGHT_YEARS)" > $@
 974         $(GENUC_EXE) >> $@
 975 endif
 976 
 977 GENSC_SRC = $(PLATFORM_SRC)/native/sun/nio/fs/genSolarisConstants.c
 978 
 979 GENSC_OBJ = $(TEMPDIR)/genSolarisConstants.o
 980 GENSC_EXE = $(TEMPDIR)/genSolarisConstants
 981 
 982 GENSC_COPYRIGHT_YEARS = $(shell $(CAT) $(GENSC_SRC) | \
 983         $(NAWK) '/^.*Copyright.*Oracle/ { printf "%s %s",$$4,$$5 }')
 984 
 985 $(GENSC_EXE) : $(GENSC_SRC)
 986         $(prep-target)
 987         $(CC) $(CPPFLAGS) -c -o $(GENSC_OBJ) $(GENSC_SRC)
 988         $(CC) $(CPPFLAGS) -o $@ $(GENSC_OBJ)
 989 
 990 ifdef NIO_PLATFORM_CLASSES_ROOT_DIR
 991 $(SFS_GEN)/SolarisConstants.java: $(NIO_PLATFORM_CLASSES_ROOT_DIR)/sun/nio/fs/SolarisConstants-$(PLATFORM)-$(ARCH).java
 992         $(prep-target)
 993         $(CP) $< $@
 994 else
 995 $(SFS_GEN)/SolarisConstants.java: $(GENSC_EXE)
 996         $(prep-target)
 997         NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh "$(GENSC_COPYRIGHT_YEARS)" > $@
 998         $(GENSC_EXE) >> $@
 999 endif
1000 
1001 .PHONY: sources