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