Fix "static" build support for win32 gmake builds.

Bug #58981 r=bryner
This commit is contained in:
seawood%netscape.com 2002-01-25 03:20:51 +00:00
Родитель 04f63dc6b2
Коммит 6a70bafd9e
13 изменённых файлов: 71 добавлений и 20 удалений

Просмотреть файл

@ -343,6 +343,32 @@ DSO_PIC_CFLAGS=
MKSHLIB=
endif
# Force _all_ exported methods to be |_declspec(dllexport)| when we're
# building them into the executable.
ifeq ($(OS_ARCH),WINNT)
ifdef MOZ_STATIC_COMPONENT_LIBS
DEFINES += \
-D_IMPL_NS_APPSHELL \
-D_IMPL_NS_COOKIE \
-D_IMPL_NS_DOM \
-D_IMPL_NS_GFX \
-D_IMPL_NS_HTML \
-D_IMPL_NS_HTMLPARS \
-D_IMPL_NS_INTL \
-D_IMPL_NS_LAYOUT \
-D_IMPL_NS_MSG_BASE \
-D_IMPL_NS_NET \
-D_IMPL_NS_PICS \
-D_IMPL_NS_PLUGIN \
-D_IMPL_NS_RDF \
-D_IMPL_NS_VIEW \
-D_IMPL_NS_WEB \
-D_IMPL_NS_WIDGET \
$(NULL)
endif
endif
#
# Personal makefile customizations go in these optional make include files.
#

Просмотреть файл

@ -186,6 +186,12 @@ IMPORT_LIBRARY := $(NULL)
endif
endif
ifdef FORCE_SHARED_LIB
ifndef FORCE_STATIC_LIB
LIBRARY := $(NULL)
endif
endif
ifeq ($(OS_ARCH),WINNT)
ifdef LIBRARY_NAME
@ -834,7 +840,10 @@ ifneq ($(OS_ARCH),OS2)
# that are built using other static libraries. Confused...?
#
ifdef SHARED_LIBRARY_LIBS
ifneq (,$(filter OSF1 BSD_OS FreeBSD NetBSD OpenBSD SunOS Darwin WINNT,$(OS_ARCH)))
ifeq ($(OS_ARCH),WINNT)
LOBJS += $(SHARED_LIBRARY_LIBS)
else
ifneq (,$(filter OSF1 BSD_OS FreeBSD NetBSD OpenBSD SunOS Darwin,$(OS_ARCH)))
CLEANUP1 := | egrep -v '(________64ELEL_|__.SYMDEF)'
CLEANUP2 := rm -f ________64ELEL_ __.SYMDEF
else
@ -842,18 +851,15 @@ CLEANUP2 := true
endif
SUB_LOBJS = $(shell for lib in $(SHARED_LIBRARY_LIBS); do $(AR_LIST) $${lib} $(CLEANUP1); done;)
endif
ifeq ($(OS_ARCH),WINNT)
ifdef SHARED_LIBRARY_LIBS
SUB_LOBJS = $(SHARED_LIBRARY_LIBS)
endif
endif
$(LIBRARY): $(OBJS) $(LOBJS) $(SHARED_LIBRARY_LIBS) Makefile Makefile.in
rm -f $@
ifneq ($(OS_ARCH),WINNT)
ifdef SHARED_LIBRARY_LIBS
@rm -f $(SUB_LOBJS)
@for lib in $(SHARED_LIBRARY_LIBS); do $(AR_EXTRACT) $${lib}; $(CLEANUP2); done
endif
endif
$(AR) $(AR_FLAGS) $(OBJS) $(LOBJS) $(SUB_LOBJS)
$(RANLIB) $@

Просмотреть файл

@ -28,6 +28,8 @@ LIBRARY_NAME = mozctl
RESFILE = MozillaControl.res
DEFFILE = L_mozctl.def
EXPORT_LIBRARY = 1
FORCE_SHARED_LIB= 1
REQUIRES = \
xpcom \
@ -75,6 +77,7 @@ CPPSRCS = \
$(NULL)
EXTRA_DSO_LDOPTS = \
$(DIST)/lib/$(LIB_PREFIX)gkgfx.$(LIB_SUFFIX) \
$(DIST)/lib/$(LIB_PREFIX)embed_base_s.$(LIB_SUFFIX) \
$(XPCOM_LIBS) \
$(NSPR_LIBS) \

Просмотреть файл

@ -27,7 +27,7 @@ include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = mozctlx
DEFFILE = $(srcdir)/mozctlx.def
EXPORT_LIBRARY = 1
FORCE_SHARED_LIB= 1
CPPSRCS = \
StdAfx.cpp \

Просмотреть файл

@ -52,6 +52,8 @@ EXTRA_DSO_LDOPTS += \
$(NSPR_LIBS) \
$(NULL)
FORCE_SHARED_LIB = 1
include $(topsrcdir)/config/rules.mk
CXXFLAGS += /D "WIN32_LEAN_AND_MEAN" /D "_AFXDLL" /D "USE_SINGLE_SIGN_ON" /D "_USRDLL" /D "_WINDLL"

Просмотреть файл

@ -57,15 +57,17 @@ LOCAL_INCLUDES = -I$(srcdir)/../../base/src
# prevents building on Mac OS X (DARWIN).
EXTRA_DSO_LIBS = rdfutil_s gkgfx gkconshared_s
ifeq ($(OS_ARCH),WINNT)
LOCAL_INCLUDES += -I$(srcdir)/../../base/src/win
EXTRA_DSO_LIBS += inscreencap_s
endif
SHARED_LIBRARY_LIBS = \
$(DIST)/lib/$(LIB_PREFIX)inspector_s.$(LIB_SUFFIX) \
$(NULL)
ifeq ($(OS_ARCH),WINNT)
LOCAL_INCLUDES += -I$(srcdir)/../../base/src/win
SHARED_LIBRARY_LIBS += \
$(DIST)/lib/$(LIB_PREFIX)inscreencap_s.$(LIB_SUFFIX) \
$(NULL)
endif
EXTRA_DSO_LDOPTS += \
$(LIBS_DIR) \
$(EXTRA_DSO_LIBS) \

Просмотреть файл

@ -45,6 +45,8 @@ EXPORT_LIBRARY = 1
ifeq ($(OS_ARCH),WINNT)
LIBRARY_NAME = js$(MOZ_BITS)$(VERSION_NUMBER)
RESFILE = $(srcdir)/js$(MOZ_BITS)40.res
FORCE_SHARED_LIB = 1
endif
ifdef NS_TRACE_MALLOC

Просмотреть файл

@ -106,9 +106,7 @@ ifdef ENABLE_TESTS
SIMPLE_PROGRAMS = testart$(BIN_SUFFIX) testuta$(BIN_SUFFIX)
endif
include $(topsrcdir)/config/config.mk
FORCE_SHARED_LIB = 1
FORCE_SHARED_LIB=1
include $(topsrcdir)/config/rules.mk

Просмотреть файл

@ -56,6 +56,8 @@ MIDL_GENERATED_FILES = \
GARBAGE += $(MIDL_GENERATED_FILES)
FORCE_SHARED_LIB = 1
include $(topsrcdir)/config/rules.mk
$(MIDL_GENERATED_FILES):

Просмотреть файл

@ -56,6 +56,8 @@ MIDL_GENERATED_FILES = \
GARBAGE += $(MIDL_GENERATED_FILES)
FORCE_SHARED_LIB = 1
include $(topsrcdir)/config/rules.mk
$(MIDL_GENERATED_FILES):

Просмотреть файл

@ -28,7 +28,8 @@ include $(DEPTH)/config/autoconf.mk
MODULE = xpcom
LIBRARY_NAME = xpcom
EXPORT_LIBRARY = 1
# Do not set EXPORT_LIBRARY as we do not want xpcom in the static libs list
#EXPORT_LIBRARY = 1
REQUIRES = libreg \
string \
$(NULL)

Просмотреть файл

@ -76,10 +76,15 @@ EXTRA_DSO_LIBS += mpfilelocprovider_s
EXTRA_DSO_LDOPTS += libuls.lib libconv.lib unikbd.lib
_COMPONENT_LIST := $(shell cat $(FINAL_LINK_COMP_NAMES))
else
ifeq ($(OS_ARCH),WINNT)
EXTRA_DSO_LDOPTS = $(addsuffix .$(LIB_SUFFIX),$(addprefix $(DIST)/lib/components/$(LIB_PREFIX),$(shell cat $(FINAL_LINK_COMPS)))) $(addsuffix .$(LIB_SUFFIX),$(addprefix $(DIST)/lib/$(LIB_PREFIX),$(shell cat $(FINAL_LINK_LIBS))))
_COMPONENT_LIST := $(shell cat $(FINAL_LINK_COMP_NAMES))
else
EXTRA_DSO_LDOPTS = -L$(DIST)/lib/components
EXTRA_DSO_LIBS = $(shell cat $(FINAL_LINK_COMPS) $(FINAL_LINK_LIBS))
_COMPONENT_LIST := $(shell cat $(FINAL_LINK_COMP_NAMES))
endif
endif # WINNT
else
EXTRA_DSO_LIBS = gkgfx mpfilelocprovider_s
ifdef MOZ_OJI
@ -132,7 +137,7 @@ endif
ifdef MOZ_LDAP_XPCOM
XP_LIBS += \
-lldap40 -llber40 \
$(LDAP_LIBS) \
$(NULL)
endif
@ -206,7 +211,7 @@ ifeq ($(MOZ_WIDGET_TOOLKIT),windows)
RESFILE = splash.res
DEFINES += -DWIN32_LEAN_AND_MEAN
CPPSRCS += nsNativeAppSupportWin.cpp nsNativeAppSupportBase.cpp
OS_LIBS += comctl32.lib comdlg32.lib uuid.lib shell32.lib ole32.lib oleaut32.lib version.lib
OS_LIBS += comctl32.lib comdlg32.lib uuid.lib shell32.lib ole32.lib oleaut32.lib version.lib winspool.lib
endif
XP_DIST_DEP_LIBS := $(filter-out -L$(DIST)/bin -L$(DIST)/lib, $(XP_DIST_LIBS))
@ -217,11 +222,11 @@ EXE_DEF_FILE = mozilla.def
endif
else
EXTRA_DEPS = \
$(addprefix $(DIST)/,$(patsubst -l%,bin/lib%$(DLL_SUFFIX),$(XP_DIST_DEP_LIBS:-l%_s=lib/lib%_s.a))) \
$(addprefix $(DIST)/,$(patsubst -l%,bin/$(LIB_PREFIX)%$(DLL_SUFFIX),$(XP_DIST_DEP_LIBS:-l%_s=lib/$(LIB_PREFIX)%_s.a))) \
$(NULL)
ifdef BUILD_STATIC_LIBS
EXTRA_DEPS += $(FINAL_LINK_COMPS) $(FINAL_LINK_LIBS) $(addsuffix .$(LIB_SUFFIX),$(addprefix $(DIST)/lib/components/lib,$(shell cat $(FINAL_LINK_COMPS)))) $(addsuffix .$(LIB_SUFFIX),$(addprefix $(DIST)/lib/lib,$(shell cat $(FINAL_LINK_LIBS))))
EXTRA_DEPS += $(FINAL_LINK_COMPS) $(FINAL_LINK_LIBS) $(addsuffix .$(LIB_SUFFIX),$(addprefix $(DIST)/lib/components/$(LIB_PREFIX),$(shell cat $(FINAL_LINK_COMPS)))) $(addsuffix .$(LIB_SUFFIX),$(addprefix $(DIST)/lib/$(LIB_PREFIX),$(shell cat $(FINAL_LINK_LIBS))))
endif
endif

Просмотреть файл

@ -41,6 +41,8 @@ CPPSRCS = setuprsc.cpp
GARBAGE += $(DIST)/install/$(SHARED_LIBRARY)
GARBAGE_DIRS += $(DIST)/include/$(MODULE)
FORCE_SHARED_LIB=1
include $(topsrcdir)/config/rules.mk
# Hack to get around the default rules insisting that .lib should exist