# # The contents of this file are subject to the Netscape 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/NPL/ # # 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 mozilla.org code. # # The Initial Developer of the Original Code is Netscape # Communications Corporation. Portions created by Netscape are # Copyright (C) 1998 Netscape Communications Corporation. All # Rights Reserved. # # Contributor(s): # DEPTH = ../.. topsrcdir = @top_srcdir@ srcdir = @srcdir@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk include $(topsrcdir)/config/config.mk MODULE = apprunner REQUIRES = xpcom string webbrwsr widget dom necko pref appshell wallet layout chrome rdf profile xpinstall uriloader editor view windowwatcher embed_base embedcomponents mpfilelocprovider browser mozcomps docshell ifeq ($(USE_SHORT_LIBNAME),1) PROGRAM = mozilla$(BIN_SUFFIX) else PROGRAM = mozilla-bin endif ifdef BUILD_STATIC_LIBS ifeq ($(OS_ARCH),OS2) EXTRA_DSO_LIBS = $(addprefix lib,$(shell cat $(FINAL_LINK_COMPS) $(FINAL_LINK_LIBS))) EXTRA_DSO_LIBS += mpfilelocprovider_s EXTRA_DSO_LDOPTS += libuls.lib libconv.lib unikbd.lib _COMPONENT_LIST := $(shell cat $(FINAL_LINK_COMP_NAMES)) else EXTRA_DSO_LDOPTS = -L$(DEPTH)/dist/lib/components EXTRA_DSO_LIBS = $(shell cat $(FINAL_LINK_COMPS) $(FINAL_LINK_LIBS)) _COMPONENT_LIST := $(shell cat $(FINAL_LINK_COMP_NAMES)) endif else EXTRA_DSO_LIBS = gkgfx mpfilelocprovider_s endif CPPSRCS = \ nsAppRunner.cpp \ nsSetupRegistry.cpp \ nsWindowCreator.cpp \ nsSigHandlers.cpp \ showOSAlert.cpp \ $(NULL) XP_LIBS = \ $(EXTRA_DSO_LDOPTS) \ $(EXTRA_DSO_LIBS) \ $(NULL) ifndef BUILD_STATIC_LIBS XP_LIBS += \ $(MOZ_JS_LIBS) \ $(NULL) else CPPSRCS += nsStaticComponents.cpp XP_LIBS += \ $(PNG_LIBS) \ $(MNG_LIBS) \ $(JPEG_LIBS) \ $(ZLIB_LIBS) \ $(MOZ_GDK_PIXBUF_LIBS) \ $(MOZ_XIE_LIBS) \ $(MOZ_XPRINT_LDFLAGS) \ $(NULL) ifdef MOZ_PSM XP_LIBS += \ $(NSS_LIBS) \ $(NULL) endif ifdef MOZ_LDAP_XPCOM ifeq ($(OS_ARCH),OS2) # link with import ldap libs on os/2 XP_LIBS += \ $(DIST)/lib/ldap40.lib \ $(DIST)/lib/lber40.lib \ $(NULL) else XP_LIBS += \ -lldap40 -llber40 \ $(NULL) endif endif ifdef MOZ_ENABLE_GTK XP_LIBS += $(XLDFLAGS) -lXt endif endif XP_LIBS += \ $(XPCOM_LIBS) \ $(OJI_LIBS) \ $(NSPR_LIBS) \ $(NULL) ifdef MOZ_FULLCIRCLE XP_LIBS += $(FULLCIRCLE_LIBS) endif ifdef MOZ_ENABLE_PHOTON XP_LIBS += $(TK_LIBS) endif ifdef MOZ_MONOLITHIC_TOOLKIT XP_LIBS += $(TK_LIBS) endif ifdef NS_TRACE_MALLOC DEFINES += -DNS_TRACE_MALLOC endif ifdef MOZ_JPROF XP_LIBS += -ljprof endif ifdef MOZ_OJI ifeq ($(MOZ_OS2_TOOLS),VACPP) OJI_LIBS = $(DIST)/lib/jsj.lib else OJI_LIBS = -ljsj endif endif LIBS = $(XP_LIBS) ifdef GC_LEAK_DETECTOR LIBS += -lboehm endif ifeq ($(MOZ_WIDGET_TOOLKIT),beos) BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc endif ifeq ($(MOZ_WIDGET_TOOLKIT),photon) CPPSRCS += nsNativeAppSupportPh.cpp LIBS += -lphexlib endif ifeq ($(MOZ_WIDGET_TOOLKIT),os2) CPPSRCS += nsNativeAppSupportOS2.cpp CPPSRCS += nsNativeAppSupportBase.cpp OS2_PROGRAM_RESOURCE = $(srcdir)/splashos2.rc endif #ifeq ($(MOZ_WIDGET_TOOLKIT),gtk) #CPPSRCS += nsNativeAppSupportGtk.cpp LIBS += $(MOZ_GTK_LDFLAGS) #endif XP_DIST_DEP_LIBS := $(filter-out -L$(DIST)/bin -L$(DIST)/lib, $(XP_DIST_LIBS)) ifeq ($(OS_ARCH),OS2) ifdef BUILD_STATIC_LIBS 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))) \ $(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)))) endif endif include $(topsrcdir)/config/rules.mk # This code removes the console from release builds # (unless you've set MOZ_WINCONSOLE=1). ifndef MOZ_WINCONSOLE ifdef MOZ_DEBUG MOZ_WINCONSOLE=1 else MOZ_WINCONSOLE=0 endif endif # Set link flags according to whether we want a console. ifeq ($(MOZ_WINCONSOLE),1) ifeq ($(MOZ_OS2_TOOLS),EMX) BIN_FLAGS := -Zlinker /PM:VIO -Zlinker /Stack:0x30000 endif else ifeq ($(MOZ_OS2_TOOLS),VACPP) LDFLAGS += /PM:PM endif ifeq ($(MOZ_OS2_TOOLS),EMX) BIN_FLAGS := -Zlinker /PM:PM -Zlinker /Stack:0x30000 endif endif ifdef BUILD_STATIC_LIBS DEFINES += -D_BUILD_STATIC_BIN=1 endif CXXFLAGS += $(MOZ_TOOLKIT_REGISTRY_CFLAGS) ifneq ($(MOZ_WIDGET_TOOLKIT),os2) install:: $(srcdir)/mozilla $(INSTALL) $< $(DIST)/bin endif ifeq ($(MOZ_WIDGET_TOOLKIT),photon) install:: $(srcdir)/splash.bmp $(INSTALL) $< $(DIST)/bin endif ifeq ($(MOZ_WIDGET_TOOLKIT),gtk) install:: $(srcdir)/splash.xpm $(INSTALL) $< $(DIST)/bin endif ifeq ($(OS_ARCH),OS2) ifdef BUILD_STATIC_LIBS $(EXE_DEF_FILE): rm -f $@ @echo NAME mozilla >$(EXE_DEF_FILE) @echo IMPORTS >>$(EXE_DEF_FILE) @echo WinQueryProperty = PMMERGE.5450 >>$(EXE_DEF_FILE) @echo WinRemoveProperty = PMMERGE.5451 >>$(EXE_DEF_FILE) @echo WinSetProperty = PMMERGE.5452 >>$(EXE_DEF_FILE) @echo DaxOpenSave = PMCTLS.295 >>$(EXE_DEF_FILE) endif endif ifeq ($(MOZ_REORDER),1) LDSCRIPT = ldscript LDFLAGS += -Wl,-T,$(LDSCRIPT) GARBAGE += $(LDSCRIPT) ORDERFILE = mozilla-bin.order $(PROGRAM) : $(LDSCRIPT) $(ORDERFILE) $(LDSCRIPT): $(ORDERFILE) $(PERL) $(topsrcdir)/config/mklinkscript.pl -o $@ $(ORDERFILE) endif nsStaticComponents.cpp: nsStaticComponents.cpp.in Makefile Makefile.in $(FINAL_LINK_COMP_NAMES) rm -f $@ cat $< | \ sed -e "s|@DECLARE_COMPONENTS@|$(foreach m,$(_COMPONENT_LIST),DECL_MODULE($(m));)|" | \ sed -e "s|@COMPONENT_LIST@|$(foreach m, $(_COMPONENT_LIST),MODULE($(m)),)|" \ > $@