On 11/27/2012 06:11 AM, Brian Teh wrote:
Hi,
Here is the posting of partial Makefile:
# Change this to point at Thunderbird source's directory.
THUNDERBIRD_SOURCE ?= $(HOME)/comm-beta18.0-hg/src
PYTHON_PATH ?= $(THUNDERBIRD_SOURCE)/mozilla/config/pythonpath.py
XPIDL_HEADER ?=
$(THUNDERBIRD_OBJDIR_PATH)/mozilla/dist/sdk/bin/header.py
XPIDL_TYPELIB ?=
$(THUNDERBIRD_OBJDIR_PATH)/mozilla/dist/sdk/bin/typelib.py
PROJECTDIR = $(HOME)/libABCCrypt-gcc3
PROJECTDIR_DEPS = $(HOME)/libABCCrypt-gcc3/.deps
IPC_PROJECTDIR = $(HOME)/libipc-gcc3
ABCMIME_PROJECTDIR = $(HOME)/libABCMime-gcc3
CXX ?= c++
XPIDLSRCS = \
nsIABCCrypt.idl \
nsIABCKeyDB.idl \
$(NULL)
XPIDL_HEADERS = \
nsIABCCrypt.h \
nsIABCKeyDB.h \
$(NULL)
XPIDL_TYPELIBS = \
nsIABCCrypt.xpt \
nsIABCKeyDB.xpt \
$(NULL)
CPPSRCS = \
cryptoMain.cpp \
nsABCCrypt.cpp \
nsABCCryptModule.cpp \
$(NULL)
CPPFLAGS += -fno-rtti \
-fno-exceptions \
-fshort-wchar \
-fPIC \
$(NULL)
THUNDERBIRD_DEFINES += -DMOZ_THUNDERBIRD=1 \
-DMOZILLA_MAJOR_VERSION=18 \
-DMOZILLA_MINOR_VERSION=0 \
-DMOZ_GLUE_IN_PROGRAM \
-DMOZILLA_CLIENT \
$(NULL)
PYTHON_INCLUDES =
-I$(THUNDERBIRD_SOURCE)/mozilla/other-licenses/ply \
-I$(THUNDERBIRD_SOURCE)/mozilla/xpcom/idl-parser \
-I$(THUNDERBIRD_SOURCE)/mozilla/xpcom/typelib/xpt/tools
IDL_INCLUDES = -I. \
-I$(THUNDERBIRD_OBJDIR_PATH)/mozilla/dist/idl \
-I$(IPC_PROJECTDIR) \
-I$(ABCMIME_PROJECTDIR)
THUNDERBIRD_INCLUDES = -I$(THUNDERBIRD_OBJDIR_PATH) \
-I$(THUNDERBIRD_SOURCE)/mozilla/config/gcc_hidden.h \
-I$(IPC_PROJECTDIR) \
-I$(ABCMIME_PROJECTDIR) \
-I$(THUNDERBIRD_OBJDIR_PATH)/mozilla/dist/include \
-I$(THUNDERBIRD_OBJDIR_PATH)/mozilla/dist/stl_wrappers \
-I$(THUNDERBIRD_OBJDIR_PATH)/mozilla/dist/system_wrappers \
-I$(THUNDERBIRD_OBJDIR_PATH)/mozilla/dist/include/nsprpub \
-I$(THUNDERBIRD_OBJDIR_PATH)/mozilla/dist/embedstring/include \
-I$(THUNDERBIRD_OBJDIR_PATH)/mozilla/dist/sdk/bin/nspr-config \
-I$(THUNDERBIRD_OBJDIR_PATH)/mozilla/dist/include/nspr \
-I$(THUNDERBIRD_OBJDIR_PATH)/mozilla/dist/include/nss
THUNDERBIRD_LDFLAGS = -L$(THUNDERBIRD_OBJDIR_PATH)/mozilla/dist/lib \
-lxpcomglue_s \
-lxpcom \
-lmozalloc \
-lnss \
-lnssb \
-lnssutil \
-lnspr4 \
-lplds4 \
-lplc4 \
-shared \
$(NULL)
%.h: %.idl
python -u $(PYTHON_PATH) $(PYTHON_INCLUDES) $(XPIDL_HEADER)
--cachedir=$(PROJECTDIR) $(IDL_INCLUDES) $< -d
$(PROJECTDIR_DEPS)/$@.pp -o $@
%.xpt: %.idl
python -u $(PYTHON_PATH) $(PYTHON_INCLUDES) $(XPIDL_TYPELIB)
--cachedir=$(PROJECTDIR) $(IDL_INCLUDES) $< -d
$(PROJECTDIR_DEPS)/$@.pp -o $@
%.o: %.cpp Makefile
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(THUNDERBIRD_DEFINES)
$(THUNDERBIRD_INCLUDES) $<
$(MODULE).so: $(XPIDLSRCS:%.idl=%.h) $(XPIDLSRCS:%.idl=%.xpt)
$(CPPSRCS:%.cpp=%.o)
$(CXX) $(CPPSRCS:%.cpp=%.o) $(THUNDERBIRD_LDFLAGS) -Xlinker
--export-dynamic -Xlinker -zmuldefs -o $@ #Error here during linking
rm *.o
chmod +x $@
build: $(MODULE).so
clean:
rm $(PROJECTDIR_DEPS)/*.pp
rm $(XPIDL_HEADERS)
rm $(XPIDL_TYPELIBS)
rm $(MODULE).so
The line which indicated where the error started is marked as "#Error
here during linking". This project is created in NetBeans as Dynamic
Library.
The error was "undefined reference to (function)". All the functions
which could not be located are defined in pk11pub.h.
Ah, could you list the functions that didn't link?
Also the output of the build failure would be quite helpful rather than
us trying to parse a partial Makefile....
Is the missing functions just a subset that you call, or are all your
NSS functions missing.
bob
bob
--
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto