blob: 43ffd221bc364456b60a584fb8f0b1fc43baf935 [file] [log] [blame]
# Copyright 2010 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
include ../config.mk
ifeq ($(OS),mac)
RUN_PATH_FLAG = -executable_path
DLL_SUFFIX = .dylib
DLLFLAGS = -bundle $(ARCHCFLAGS) -mmacosx-version-min=10.5
CFLAGS += -DXP_MACOSX $(ARCHCFLAGS)
CXXFLAGS += -DXP_MACOSX $(ARCHCFLAGS)
# Mac puts multiple architectures into the same files
TARGET_PLATFORM = Darwin-gcc3
CHROME_PATH ?= /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
PLATFORM_DIR_SUFFIX = gwtDev.plugin/Contents/MacOS/
else
ifeq ($(OS),linux)
RUN_PATH_FLAG = -rpath-link
DLL_SUFFIX = .so
DLLFLAGS = -shared -m$(FLAG32BIT)
TARGET_PLATFORM = Linux_$(ARCH)-gcc3
CHROME_PATH ?= /opt/google/chrome/chrome
else
endif
endif
export FLAG32BIT
CFLAGS += -DBROWSER_NPAPI -DXP_UNIX -fshort-wchar
CXXFLAGS = $(CXXONLYFLAGS) $(CFLAGS)
DIR = $(shell pwd)
DEPEND = g++ -MM -MT'$$(OBJ_OUTDIR)/$(patsubst %.cpp,%.o,$(src))' \
-I. -I../common $(src)
COMMON = ../common/libcommon$(FLAG32BIT).a
OBJ_OUTDIR = build/$(TARGET_PLATFORM)
EXTENSION_OUTDIR = prebuilt/gwt-dev-plugin
PLATFORM_DIR = $(EXTENSION_OUTDIR)/$(TARGET_PLATFORM)
PLATFORM_DIR_SUFFIX ?= ""
INSTALLER_CRX = prebuilt/gwt-dev-plugin.crx
DLL = $(OBJ_OUTDIR)/libGwtDevPlugin$(DLL_SUFFIX)
GWTDEV_CRX_PEM ?= $(CURDIR)/gwt-dev-plugin.pem
CHROME_COMMAND = $(CHROME_PATH) --pack-extension=$(CURDIR)/$(EXTENSION_OUTDIR) --no-message-box --user-data-dir=$(CURDIR)/$(OBJ_OUTDIR)/user-data --pack-extension-key=$(GWTDEV_CRX_PEM)
#DLLFLAGS +=
VERSION ?= 1.0.$(shell ./getversion)
ifeq ($(VERSION), 1.0.)
$(error You must specify the version if you are not in an svn checkout)
endif
.PHONY: default all crx lib common clean depend install install-platform \
versioned-files devmodeoptions
default:: lib versioned-files devmodeoptions
all:: common lib install-platform crx
lib:: $(OBJ_OUTDIR) $(EXTENSION_OUTDIR) $(DLL)
crx:: $(EXTENSION_OUTDIR) $(INSTALLER_CRX)
linuxplatforms:
$(MAKE) lib ARCH=x86
$(MAKE) lib ARCH=x86_64
macplatforms:
$(MAKE) lib
HDRS = \
LocalObjectTable.h \
NPVariantWrapper.h \
Plugin.h \
ScriptableInstance.h \
mozincludes.h \
JavaObject.h
SRCS = \
main.cpp \
Plugin.cpp \
LocalObjectTable.cpp \
JavaObject.cpp \
npn_bindings.cpp \
ScriptableInstance.cpp
OBJS = $(patsubst %.cpp,$(OBJ_OUTDIR)/%.o,$(SRCS))
$(OBJS): $(OBJ_OUTDIR)
$(OBJ_OUTDIR)::
@mkdir -p $@
$(INSTALLER_CRX): $(GWTDEV_CRX_PEM) $(EXTENSION_OUTDIR) versioned-files
$(shell $(CHROME_COMMAND))
versioned-files::
sed -e s/GWT_DEV_PLUGIN_VERSION/$(VERSION)/ manifest-template.json >prebuilt/gwt-dev-plugin/manifest.json
#sed -e s/GWT_DEV_PLUGIN_VERSION/$(VERSION)/ updates-template.xml >prebuilt/updates.xml
$(DLL): $(OBJS) $(COMMON)
$(CXX) -m$(FLAG32BIT) -o $@ $(OBJS) $(COMMON) $(DLLFLAGS)
@mkdir -p $(PLATFORM_DIR)
cp $(DLL) $(PLATFORM_DIR)/$(PLATFORM_DIR_SUFFIX)
$(OBJ_OUTDIR)/%.o: %.cpp
$(CXX) $(CXXFLAGS) -c -o $@ -I. -I../common $<
common $(COMMON):
(cd ../common && $(MAKE))
clean:
rm -rf build
devmodeoptions:
(ant -f DevModeOptions/build.xml prebuilt)
depend: $(OBJ_OUTDIR)
($(foreach src,$(SRCS),$(DEPEND)) true) >>Makefile
# makedepend -- $(CFLAGS) -- $(SRCS)
# DO NOT DELETE
$(OBJ_OUTDIR)/main.o $(OBJ_OUTDIR)/Plugin.o \
$(OBJ_OUTDIR)/LocalObjectTable.o $(OBJ_OUTDIR)/JavaObject.o \
$(OBJ_OUTDIR)/npn_bindings.cpp $(OBJ_OUTDIR)/ScriptableInstance.o: \
main.cpp ../common/Debug.h ../common/Platform.h ../common/DebugLevel.h \
mozincludes.h npapi/npapi.h npapi/nphostapi.h npapi/npapi.h \
npapi/npruntime.h npapi/npruntime.h NPObjectWrapper.h Plugin.h \
../common/HostChannel.h ../common/Debug.h ../common/ByteOrder.h \
../common/Socket.h ../common/Message.h ../common/ReturnMessage.h \
../common/BrowserChannel.h ../common/Value.h ../common/SessionHandler.h \
../common/LoadModuleMessage.h ../common/HostChannel.h LocalObjectTable.h \
../common/SessionHandler.h ../common/HashMap.h ScriptableInstance.h \
../common/scoped_ptr/scoped_ptr.h
$(OBJ_OUTDIR)/main.o $(OBJ_OUTDIR)/Plugin.o \
$(OBJ_OUTDIR)/LocalObjectTable.o $(OBJ_OUTDIR)/JavaObject.o \
$(OBJ_OUTDIR)/npn_bindings.cpp $(OBJ_OUTDIR)/ScriptableInstance.o: \
Plugin.cpp Plugin.h ../common/Debug.h ../common/Platform.h \
../common/DebugLevel.h mozincludes.h npapi/npapi.h npapi/nphostapi.h \
npapi/npapi.h npapi/npruntime.h npapi/npruntime.h NPObjectWrapper.h \
../common/HostChannel.h ../common/Debug.h ../common/ByteOrder.h \
../common/Socket.h ../common/Message.h ../common/ReturnMessage.h \
../common/BrowserChannel.h ../common/Value.h ../common/SessionHandler.h \
../common/LoadModuleMessage.h ../common/HostChannel.h LocalObjectTable.h \
../common/SessionHandler.h ../common/HashMap.h ScriptableInstance.h \
../common/InvokeMessage.h ../common/ReturnMessage.h \
../common/ServerMethods.h ../common/scoped_ptr/scoped_ptr.h \
NPVariantWrapper.h ../common/Platform.h ../common/Value.h JavaObject.h
$(OBJ_OUTDIR)/main.o $(OBJ_OUTDIR)/Plugin.o \
$(OBJ_OUTDIR)/LocalObjectTable.o $(OBJ_OUTDIR)/JavaObject.o \
$(OBJ_OUTDIR)/npn_bindings.cpp $(OBJ_OUTDIR)/ScriptableInstance.o: \
LocalObjectTable.cpp mozincludes.h npapi/npapi.h npapi/nphostapi.h \
npapi/npapi.h npapi/npruntime.h npapi/npruntime.h NPObjectWrapper.h \
LocalObjectTable.h ../common/Debug.h ../common/Platform.h \
../common/DebugLevel.h
$(OBJ_OUTDIR)/main.o $(OBJ_OUTDIR)/Plugin.o \
$(OBJ_OUTDIR)/LocalObjectTable.o $(OBJ_OUTDIR)/JavaObject.o \
$(OBJ_OUTDIR)/npn_bindings.cpp $(OBJ_OUTDIR)/ScriptableInstance.o: \
JavaObject.cpp ../common/Debug.h ../common/Platform.h \
../common/DebugLevel.h JavaObject.h mozincludes.h npapi/npapi.h \
npapi/nphostapi.h npapi/npapi.h npapi/npruntime.h npapi/npruntime.h \
NPObjectWrapper.h Plugin.h ../common/HostChannel.h ../common/Debug.h \
../common/ByteOrder.h ../common/Socket.h ../common/Message.h \
../common/ReturnMessage.h ../common/BrowserChannel.h ../common/Value.h \
../common/SessionHandler.h ../common/LoadModuleMessage.h \
../common/HostChannel.h LocalObjectTable.h ../common/SessionHandler.h \
../common/HashMap.h ScriptableInstance.h NPVariantWrapper.h \
../common/Platform.h ../common/Value.h
$(OBJ_OUTDIR)/main.o $(OBJ_OUTDIR)/Plugin.o \
$(OBJ_OUTDIR)/LocalObjectTable.o $(OBJ_OUTDIR)/JavaObject.o \
$(OBJ_OUTDIR)/npn_bindings.cpp $(OBJ_OUTDIR)/ScriptableInstance.o: \
npn_bindings.cpp ../common/Debug.h ../common/Platform.h \
../common/DebugLevel.h mozincludes.h npapi/npapi.h npapi/nphostapi.h \
npapi/npapi.h npapi/npruntime.h npapi/npruntime.h NPObjectWrapper.h
$(OBJ_OUTDIR)/main.o $(OBJ_OUTDIR)/Plugin.o \
$(OBJ_OUTDIR)/LocalObjectTable.o $(OBJ_OUTDIR)/JavaObject.o \
$(OBJ_OUTDIR)/npn_bindings.cpp $(OBJ_OUTDIR)/ScriptableInstance.o: \
ScriptableInstance.cpp ScriptableInstance.h ../common/Debug.h \
../common/Platform.h ../common/DebugLevel.h mozincludes.h npapi/npapi.h \
npapi/nphostapi.h npapi/npapi.h npapi/npruntime.h npapi/npruntime.h \
NPObjectWrapper.h ../common/HostChannel.h ../common/Debug.h \
../common/ByteOrder.h ../common/Socket.h ../common/Message.h \
../common/ReturnMessage.h ../common/BrowserChannel.h ../common/Value.h \
../common/SessionHandler.h ../common/LoadModuleMessage.h \
../common/HostChannel.h LocalObjectTable.h ../common/SessionHandler.h \
../common/HashMap.h ../common/InvokeMessage.h ../common/ReturnMessage.h \
../common/ServerMethods.h ../common/AllowedConnections.h \
../common/scoped_ptr/scoped_ptr.h NPVariantWrapper.h \
../common/Platform.h ../common/Value.h Plugin.h JavaObject.h