| # 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 |