benjamin%smedbergs.us c6c12f9415 Bug 333308 - make clean/distclean misses various files, patch by Mike Hommey <mh+mozilla@glandium.org>, r=me
git-svn-id: svn://10.0.0.236/trunk@195642 18797224-902f-48f8-a5cc-f745e15eee43
2006-04-28 14:54:54 +00:00

133 lines
3.9 KiB
Makefile
Executable File

# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# 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 Java XPCOM Bindings.
#
# The Initial Developer of the Original Code is IBM Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006
# IBM Corporation. All Rights Reserved.
#
# Contributor(s):
# Javier Pedemonte (jhpedemonte@gmail.com)
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
DEPTH = ../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@ ; @srcdir@/..
include $(DEPTH)/config/autoconf.mk
MODULE = javaxpcom
LIBRARY_NAME = javaxpcom
LIBXUL_LIBRARY = 1
FORCE_STATIC_LIB = 1
ifndef MOZ_ENABLE_LIBXUL
DEFINES += -DIMPL_XREAPI
endif
REQUIRES = xpcom \
string \
xulapp \
$(NULL)
CPPSRCS = \
nsAppFileLocProviderProxy.cpp \
nsJavaInterfaces.cpp \
nsJavaWrapper.cpp \
nsJavaXPTCStub.cpp \
nsJavaXPTCStubWeakRef.cpp \
nsJavaXPCOMBindingUtils.cpp \
$(NULL)
JARFILE = javaxpcom.jar
JARFILE_SRC = $(patsubst %.jar,%-src.jar,$(JARFILE))
JAVA_SRCS = \
$(srcdir)/../XPCOMJavaProxy.java \
$(srcdir)/../XPCOMJavaProxyBase.java \
$(srcdir)/GREImpl.java \
$(srcdir)/XPCOMImpl.java \
$(srcdir)/JavaXPCOMMethods.java \
$(NULL)
LOCAL_INCLUDES = -I$(JAVA_INCLUDE_PATH)
ifeq ($(OS_ARCH),WINNT)
LOCAL_INCLUDES += -I$(JAVA_INCLUDE_PATH)/win32
else
LOCAL_INCLUDES += -I$(JAVA_INCLUDE_PATH)/linux
endif
# necessary until we do 'cvs move' to put files in correct directories
LOCAL_INCLUDES += -I$(srcdir)
GARBAGE += $(JARFILE) $(JARFILE_SRC) java.files .done
GARBAGE_DIRS += _javagen org
include $(topsrcdir)/config/rules.mk
ifeq ($(OS_ARCH),WINNT)
RUN =
SEP = ;
else
RUN = $(DIST)/bin/run-mozilla.sh
SEP = :
endif
_javagen/org/mozilla/xpcom/internal/.iface_done: $(JAVA_SRCS)
@if test ! -d _javagen/org/mozilla/xpcom/internal; then \
touch .done; \
$(INSTALL) -m 644 .done _javagen/org/mozilla/xpcom/internal; \
fi
@echo Copying Java source files
@$(INSTALL) -m 644 $(JAVA_SRCS) \
_javagen/org/mozilla/xpcom/internal
@touch $@
# Using the temporary "java.files" avoids an "argument list too long"
# error on Windows when using *.java
org/mozilla/xpcom/internal/.class_done: _javagen/org/mozilla/xpcom/internal/.iface_done
@echo Compiling Java implementation classes
find _javagen -name "*.java" > java.files
$(JAVAC) $(JAVAC_FLAGS) \
-classpath ".$(SEP)../interfaces/MozillaInterfaces.jar" \
-d . -sourcepath _javagen @java.files
@touch $@
$(JARFILE): org/mozilla/xpcom/internal/.class_done Makefile
$(JAR) cf $@ org
$(JARFILE_SRC): $(JARFILE)
$(JAR) cf $@ -C _javagen org
#libs:: $(JARFILE)
# $(INSTALL) $(IFLAGS1) $^ $(DIST)/bin
jarfile:: $(JARFILE) $(JARFILE_SRC)
$(INSTALL) $(IFLAGS1) $^ $(DIST)/bin