#
# @(#)Makefile	1.88 98/08/17
#
# Makefile for building native support for java.lang, java.io, etc.
#

BUILDDIR = ..\..
LIBRARY  = java
LOCATION = java\java
!include $(BUILDDIR)\makefiles\defs.nmk

EXTRA_CFLAGS = $(EXTRA_CFLAGS) -WX -W2

#
# Native code to compile.
#
!include $(MINCLUDES)\java_java.cmk
FILES_c = $(FILES_c) \
          $(CTARGDIR)Win32Process_md.c \
          $(CTARGDIR)Win32FileSystem_md.c \
          $(CTARGDIR)canonicalize_md.c \
          $(CTARGDIR)dirent_md.c

#
# Java code to compile.
#
PKG  = java.lang
PKG2 = java.lang.reflect
PKG3 = java.lang.ref
PKG4 = java.io
PKG5 = java.security
PKG6 = java.util
PKG7 = sun.io
PKG8 = sun.misc
PKG9 = java.util.mime
PKG10 = sun.net.www.protocol.jar
PKG11 = sun.net.www.protocol.file
PKG12 = java.net
!include $(MINCLUDES)\java_java.jmk
FILES_java = $(FILES_java) \
             $(TARGDIR)java\lang\Win32Process.java \
             $(TARGDIR)java\io\Win32FileSystem.java

#
# Classes that must be fed into javah.
#
!include $(MINCLUDES)\java_java.exp

#
# Includes from the jvm build area for opcode files needed by the verifier.
# Because the includes are generated from a file that properly lives
# in the jvm area, it seems reasonable to just point the java/java build
# at the generated file rather than forcing it to generate its own copies.
#
EXTRA_INCLUDES = $(EXTRA_INCLUDES) -I..\..\java\jvm \
		-I$(SHARE_SRC)\native\common \
		-I$(PLATFORM_SRC)\native\common \
		-I$(SHARE_SRC)\native\java\lang\fdlibm\include \
		-I$(SHARE_SRC)\native\java\io

#
# Has been converted to the JNI: generate JNI-style header files
#
JAVAHFLAGS = $(JAVAHFLAGS) -jni

#
# We have not bootstrapped yet.
#
JAVAC_CMD = $(JAVAC_BOOT_CMD)
JAVAH_CMD = $(JAVAH_BOOT_CMD)

#
# We don't want to link against ourselves, do we?
#
JAVALIB = 

#
# Install .lib file.
#
INSTALL_DOT_LIB = true

#
# Link with jvm.dll
#
EXTRA_LIBS = $(JVMLIB) shell32.lib -libpath:..\fdlibm fdlibm$(G).lib

#
# Rules.
#
!include $(BUILDDIR)\makefiles\library.nmk

#
# For java_props.h (in src/share/native/java/lang)
#
EXTRA_INCLUDES = $(EXTRA_INCLUDES) \
	-I$(SHARE_SRC)\native\java\lang

#
# Files needed by the verifier.
#
VERIFIER_JVMFILES = opcodes.h opcodes.length
$(OBJDIR)\check_code.obj: $(VERIFIER_JVMFILES)
opcodes.length: $(SHARE_SRC)\javavm\include\opcodes.length
	-$(DEL) $@
	copy $? $@
$(OBJDIR)\check_code.obj: $(VERIFIER_JVMFILES)
opcodes.h: $(SHARE_SRC)\javavm\include\opcodes.h
	-$(DEL) $@
	copy $? $@
clean: verifier.headers.clean
verifier.headers.clean: FORCE
	-$(DEL) $(VERIFIER_JVMFILES)

#
# Add vpaths for extra things we like to put into java.dll.
#
{$(SHARE_SRC)\native\common}.c{$(OBJDIR)}.obj:
        $(CC) $(CFLAGS) -c -Fo$@ $<
{$(PLATFORM_SRC)\native\common}.c{$(OBJDIR)}.obj:
        $(CC) $(CFLAGS) -c -Fo$@ $<
{$(SHARE_SRC)\native\java\sql}.c{$(OBJDIR)}.obj:
        $(CC) $(CFLAGS) -c -Fo$@ $<
#
# Extra rule from sun/net/Makefile to copy content-types.properties file
# in order to keep MimeTable class from complaining during bootstrap..
#
optimized.epilogue debug.epilogue: properties.install
clean: properties.clean

PROPS=content-types.properties
properties.install: $(LIBDIR)\$(PROPS)
$(LIBDIR)\$(PROPS): $(PLATFORM_SRC)\lib\$(PROPS)
	copy $? $@
properties.clean: FORCE
	-$(DEL) $(LIBDIR)\$(PROPS)

