edburns%acm.org ebef5f4da8 bug=80906
ra=edburns
author=Nikolay Igotti

Major cleanup and new component architecture for Waterfall.


git-svn-id: svn://10.0.0.236/trunk@99134 18797224-902f-48f8-a5cc-f745e15eee43
2001-07-12 19:58:29 +00:00

191 lines
5.3 KiB
Plaintext

#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is The Waterfall Java Plugin Module
#
# The Initial Developer of the Original Code is Sun Microsystems Inc
# Portions created by Sun Microsystems Inc are Copyright (C) 2001
# All Rights Reserved.
#
# $Id: makefile.win,v 1.2 2001-07-12 19:57:43 edburns%acm.org Exp $
#
# Contributor(s):
#
# Nikolay N. Igotti <nikolay.igotti@Sun.Com>
#
BUILDDIR=.
ROOTDIR=..\..
CC=cl
CXX=cl
CP=copy
DEL=del/f/q
DELTREE=del/S/Q/F
MKDIR=mkdir
ZIP=zip
LD = link
MAKE=nmake -nologo
# type of really used JVM
# values: _JVMP_IBMJVM, _JVMP_SUNJVM
#JVMTYPE = _JVMP_IBMJVM
JVMTYPE = _JVMP_SUNJVM
# kind of JVM: classic, hotspot
JVMKIND = hotspot
#JVMKIND = classic
THREADTYPE = _JVMP_WIN32THREADS
ARCH=win32
CCDEBUG = -MDd -Zi -Od
#CCDEBUG =
INCLUDES = -I$(ROOTDIR)\include -I..\..\public -I..\..\public\$(ARCH) -I$(WFJDKHOME)\include -I$(WFJDKHOME)\include\$(ARCH)
# XXX: hardcoded platform
EXTRA_CFLAGS = $(CCDEBUG) -D$(JVMTYPE) -D$(THREADTYPE) -DXP_WIN32 -DARCH="\"win32\"" -DWIN32 -DJVMKIND="\"$(JVMKIND)\"" -DPLATFORM="\"i386\""
CFLAGS = -nologo -DWIN32 $(PICFLAGS) $(EXTRA_CFLAGS) $(INCLUDES) -WX
CXXFLAGS = $(CFLAGS) -I$(HOSTINCPATH) -I$(HOSTINCPATH)\glib -I$(HOSTINCPATH)\gdk -DXP_WIN32
LIBFLAGS = -nologo -debug -incremental:NO
PLUGINCSRCDIR = ..\..\src\plugin
PLUGINMDDIR = ..\..\src\plugin\win32
PLUGINCSRCS = java_plugin.c jpthreads.c
# source of native methods for Plugin
PLUGINNATIVESRC = native.c
PLUGIN_DLL = jvmp.dll
# well, just a hack
PLUGIN_NATIVE_DLL=JVMPnatives.dll
# source of Mozilla-dependent module - should be separated
MOZEXTSRCDIR = ..\..\src\plugin\mozilla
MOZEXTCSRC = wfe_mozilla.c wfm6_native.c
MOZEXT_DLL = wf_moz6.dll
TESTEXTSRCDIR = ..\..\src\host
TESTEXTCSRC = test_extension.c
TESTEXT_DLL = wf_test.dll
HOSTCPPSRCDIR = ..\..\src\host
HOSTCPPSRCS = host.cpp
HOSTPROG=plugin_host.exe
PLUGINOBJS=$(PLUGINCSRCS:.c=.obj)
PLUGIN_NATIVE_OBJS=$(PLUGINNATIVESRC:.c=.obj)
HOSTOBJS=$(HOSTCPPSRCS:.cpp=.obj)
MOZEXTOBJS = $(MOZEXTCSRC:.c=.obj)
NCEXTOBJS = $(NCEXTCSRC:.c=.obj)
TESTEXTOBJS=$(TESTEXTCSRC:.c=.obj)
OBJDIR =
INSTALLER = installer.exe
INSTSRCDIR = ..\..\src\plugin\win32
INSTSRC = installer.c
INSTOBJS = $(INSTSRC:.c=.obj)
PLUGINLIBS=user32.lib
INSTLIBS=user32.lib
HOSTLIBS=$(HOSTLIBPATH)\glib-1.3.lib $(HOSTLIBPATH)\gtk-1.3.lib $(HOSTLIBPATH)\gdk-1.3.lib
#instead of vpath
{$(PLUGINCSRCDIR)}.c{$(OBJDIR)}.obj:
@$(CC) $(CFLAGS) -D_JVMP_IMPLEMENTATION -c -Fo$@ $<
{$(PLUGINMDDIR)}.c{$(OBJDIR)}.obj:
@$(CC) $(CFLAGS) -D_JVMP_IMPLEMENTATION -c -Fo$@ $<
{$(HOSTCPPSRCDIR)}.cpp{$(OBJDIR)}.obj:
@$(CXX) $(CXXFLAGS) -c -Fo$@ $<
{$(MOZEXTSRCDIR)}.c{$(OBJDIR)}.obj:
@$(CC) $(CFLAGS) -c -Fo$@ $<
{$(TESTEXTSRCDIR)}.c{$(OBJDIR)}.obj:
@$(CC) $(CFLAGS) -c -Fo$@ $<
{$(INSTSRCDIR)}.c{$(OBJDIR)}.obj:
@$(CC) $(CFLAGS) -c -Fo$@ $<
all: makefile.win ext plugin
release: all
@ cd ..\java
@ $(MAKE) -fmakefile.win release
@ cd ..\win32
-@ $(DELTREE) wfrelease > NUL
@ IF NOT EXIST wfrelease $(MKDIR) wfrelease
@ IF NOT EXIST wfrelease\ext $(MKDIR) wfrelease\ext
@ $(CP) wf.jar wfrelease > NUL
@ $(CP) $(PLUGIN_DLL) wfrelease > NUL
@ $(CP) $(MOZEXT_DLL) wfrelease > NUL
@ $(CP) $(PLUGIN_NATIVE_DLL) wfrelease > NUL
@ $(CP) plugin.policy wfrelease > NUL
@ $(CP) ext\*.jar wfrelease\ext > NUL
@ $(ZIP) -r wf-bin.zip wfrelease
@ echo "Release is wf-bin.zip"
.SUFFIXES:
.SUFFIXES: .cpp .c .obj
.cpp.obj:
$(CXX) $(CFLAGS) -c $<
plugin_no_java: plugin_objs plugin_dll plugin_native_dll plugin_exec plugin.policy $(INSTALLER)
plugin: plugin_no_java java_classes
plugin_objs: $(PLUGINOBJS) $(PLUGIN_NATIVE_OBJS)
plugin_dll: $(PLUGIN_DLL)
ext: $(MOZEXT_DLL) $(TESTEXT_DLL)
$(MOZEXT_DLL): $(MOZEXTOBJS)
@echo linking $@
@$(LD) $(LIBFLAGS) -dll -def:wfe_mozilla.def -out:$@ $(MOZEXTOBJS)
$(TESTEXT_DLL): $(TESTEXTOBJS)
@echo linking $@
@$(LD) $(LIBFLAGS) -dll -def:wfe_test.def -out:$(TESTEXT_DLL) $(TESTEXTOBJS)
$(PLUGIN_DLL): $(PLUGINOBJS)
@echo linking $@
@$(LD) $(LIBFLAGS) -dll -def:jvmp.def -out:$@ $(PLUGINOBJS) $(PLUGINLIBS)
plugin_native_dll: $(PLUGIN_NATIVE_DLL)
$(PLUGIN_NATIVE_DLL): $(PLUGIN_NATIVE_OBJS)
@echo linking $@
@$(LD) $(LIBFLAGS) -dll -out:$@ $(PLUGIN_NATIVE_OBJS)
@$(CP) $@ JVMPnatives_g.dll > NUL
plugin.policy: ..\..\java\plugin.policy
@$(CP) ..\..\java\plugin.policy . > NUL
java_classes:
@ echo Making Java classes
@ cd ..\java
@$(MAKE) -fmakefile.win all
host_prog: $(HOSTOBJS) $(HOSTPROG)
host_objs: $(HOSTOBJS)
$(HOSTPROG): $(HOSTOBJS)
@echo linking $@
@$(LD) $(LIBFLAGS) -out:$(HOSTPROG) $(HOSTOBJS) $(HOSTLIBS)
clean:
@echo Removing compiled files..
@-del/Q $(PLUGINOBJS) $(HOSTOBJS) *.exe *.dll *.obj
@cd ..\java
@$(MAKE) -fmakefile.win clean
$(INSTALLER): $(INSTOBJS)
@echo Linking installer
@$(LD) $(LIBFLAGS) -out:$(INSTALLER) $(INSTOBJS) $(INSTLIBS)
plugin_exec:
.PHONY: java_classes clean all host_objs plugin_native_dll plugin_exec release