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