1 # vim:set ts=8 sw=8 sts=8 noet:
3 # ***** BEGIN LICENSE BLOCK *****
4 # Version: MPL 1.1/GPL 2.0/LGPL 2.1
6 # The contents of this file are subject to the Mozilla Public License Version
7 # 1.1 (the "License"); you may not use this file except in compliance with
8 # the License. You may obtain a copy of the License at
9 # http://www.mozilla.org/MPL/
11 # Software distributed under the License is distributed on an "AS IS" basis,
12 # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13 # for the specific language governing rights and limitations under the
16 # The Original Code is mozilla.org code.
18 # The Initial Developer of the Original Code is
19 # Netscape Communications Corporation.
20 # Portions created by the Initial Developer are Copyright (C) 1998
21 # the Initial Developer. All Rights Reserved.
24 # Chase Phillips <chase@mozilla.org>
25 # Benjamin Smedberg <benjamin@smedbergs.us>
26 # Jeff Walden <jwalden+code@mit.edu>
28 # Alternatively, the contents of this file may be used under the terms of
29 # either of the GNU General Public License Version 2 or later (the "GPL"),
30 # or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
31 # in which case the provisions of the GPL or the LGPL are applicable instead
32 # of those above. If you wish to allow use of your version of this file only
33 # under the terms of either the GPL or the LGPL, and not to allow others to
34 # use your version of this file under the terms of the MPL, indicate your
35 # decision by deleting the provisions above and replace them with the notice
36 # and other provisions required by the GPL or the LGPL. If you do not delete
37 # the provisions above, a recipient may use your version of this file under
38 # the terms of any one of the MPL, the GPL or the LGPL.
40 # ***** END LICENSE BLOCK *****
46 MOZILLA_DIR
= $(topsrcdir
)
49 ifndef INCLUDED_CONFIG_MK
50 include $(topsrcdir
)/config
/config.mk
53 ifndef INCLUDED_VERSION_MK
54 include $(topsrcdir
)/config
/version.mk
57 REPORT_BUILD
= @echo
$(notdir $<)
65 # ELOG prints out failed command when building silently (gmake -s).
66 ifneq (,$(findstring -s
,$(MAKEFLAGS
)))
67 ELOG
:= $(EXEC
) sh
$(BUILD_TOOLS
)/print-failed-commands.sh
72 ifeq (,$(filter-out WINNT WINCE
,$(OS_ARCH
)))
74 _LIBNAME_RELATIVE_PATHS
=1
78 ifeq (,$(filter-out WINNT WINCE
,$(OS_ARCH
)))
80 _VPATH_SRCS
= $(if
$(filter /%,$<),$<,$(PWD
)/$<)
85 # Add $(DIST)/lib to VPATH so that -lfoo dependencies are followed
88 VPATH
+= $(LIBXUL_SDK
)/lib
91 # EXPAND_LIBNAME - $(call EXPAND_LIBNAME,foo)
92 # expands to foo.lib on platforms with import libs and -lfoo otherwise
94 # EXPAND_LIBNAME_PATH - $(call EXPAND_LIBNAME_PATH,foo,dir)
95 # expands to dir/foo.lib on platforms with import libs and
96 # -Ldir -lfoo otherwise
98 # EXPAND_MOZLIBNAME - $(call EXPAND_MOZLIBNAME,foo)
99 # expands to $(DIST)/lib/foo.lib on platforms with import libs and
102 ifdef _LIBNAME_RELATIVE_PATHS
103 EXPAND_LIBNAME
= $(foreach lib
,$(1),$(LIB_PREFIX
)$(lib
).
$(LIB_SUFFIX
))
104 EXPAND_LIBNAME_PATH
= $(foreach lib
,$(1),$(2)/$(LIB_PREFIX
)$(lib
).
$(LIB_SUFFIX
))
105 EXPAND_MOZLIBNAME
= $(foreach lib
,$(1),$(DIST
)/lib
/$(LIB_PREFIX
)$(lib
).
$(LIB_SUFFIX
))
107 EXPAND_LIBNAME
= $(addprefix -l
,$(1))
108 EXPAND_LIBNAME_PATH
= -L
$(2) $(addprefix -l
,$(1))
109 EXPAND_MOZLIBNAME
= $(addprefix -l
,$(1))
113 EXTRA_DSO_LIBS
:= $(call EXPAND_MOZLIBNAME
,$(EXTRA_DSO_LIBS
))
119 # If BUILD_STATIC_LIBS or FORCE_STATIC_LIB is set, build a static library.
120 # Otherwise, build a shared library.
125 ifneq (,$(filter OS2 WINNT WINCE
,$(OS_ARCH
)))
127 LIBRARY_NAME
:= $(SHORT_LIBNAME
)
130 LIBRARY
:= $(LIB_PREFIX
)$(LIBRARY_NAME
).
$(LIB_SUFFIX
)
135 ifdef HOST_LIBRARY_NAME
136 HOST_LIBRARY
:= $(LIB_PREFIX
)$(HOST_LIBRARY_NAME
).
$(LIB_SUFFIX
)
141 ifneq (_1
,$(FORCE_SHARED_LIB
)_
$(BUILD_STATIC_LIBS
))
145 MKSHLIB
= $(MKCSHLIB
)
149 SHARED_LIBRARY
:= $(LIBRARY_NAME
)
151 SHARED_LIBRARY
:= $(DLL_PREFIX
)$(LIBRARY_NAME
)$(DLL_SUFFIX
)
154 ifeq ($(OS_ARCH
),OS2
)
155 DEF_FILE
:= $(SHARED_LIBRARY
:.dll
=.def
)
158 ifneq (,$(filter OS2 WINNT WINCE
,$(OS_ARCH
)))
159 IMPORT_LIBRARY
:= $(LIB_PREFIX
)$(LIBRARY_NAME
).
$(IMPORT_LIB_SUFFIX
)
162 ifdef MOZ_ENABLE_LIBXUL
167 endif # FORCE_SHARED_LIB && !BUILD_STATIC_LIBS
170 ifeq (,$(BUILD_STATIC_LIBS
)$(FORCE_STATIC_LIB
))
174 ifeq (_1
,$(FORCE_SHARED_LIB
)_
$(BUILD_STATIC_LIBS
))
175 SHARED_LIBRARY
:= $(NULL
)
177 IMPORT_LIBRARY
:= $(NULL
)
180 ifdef FORCE_STATIC_LIB
181 ifndef FORCE_SHARED_LIB
182 SHARED_LIBRARY
:= $(NULL
)
184 IMPORT_LIBRARY
:= $(NULL
)
188 ifdef FORCE_SHARED_LIB
189 ifndef FORCE_STATIC_LIB
194 ifdef JAVA_LIBRARY_NAME
195 JAVA_LIBRARY
:= $(JAVA_LIBRARY_NAME
).jar
198 ifeq (,$(filter-out WINNT WINCE
,$(OS_ARCH
)))
201 # Previously when possible we wrote to $LIBRARY_NAME.pdb. This broke parallel
202 # make builds on Windows. Now we just write to a pdb file per compiled file.
203 # See bug 286179 <https://bugzilla.mozilla.org/show_bug.cgi?id=286179> for
204 # details. -- chase@mozilla.org
206 # Changes to the PDBFILE naming scheme should also be reflected in HOST_PDBFILE
209 PDBFILE
=$(LIBRARY_NAME
).pdb
211 CODFILE
=$(LIBRARY_NAME
).cod
214 PDBFILE
=$(basename $(@F
)).pdb
216 CODFILE
=$(basename $(@F
)).cod
222 MAPFILE
=$(LIBRARY_NAME
).map
224 MAPFILE
=$(basename $(@F
)).map
229 OS_LDFLAGS
+= -DEF
:$(DEFFILE
)
230 EXTRA_DEPS
+= $(DEFFILE
)
234 OS_LDFLAGS
+= -MAP
:$(MAPFILE
)
235 #CFLAGS += -Fm$(MAPFILE)
236 #CXXFLAGS += -Fm$(MAPFILE)
240 #CFLAGS += -Fa$(CODFILE) -FAsc
241 #CFLAGS += -Fa$(CODFILE) -FAsc
246 ifdef ENABLE_CXX_EXCEPTIONS
248 CXXFLAGS
+= -fexceptions
250 ifeq (,$(filter-out 1200 1300 1310,$(_MSC_VER
)))
256 endif # ENABLE_CXX_EXCEPTIONS
259 ifeq (,$(filter-out WINNT WINCE
,$(HOST_OS_ARCH
)))
260 HOST_PDBFILE
=$(basename $(@F
)).pdb
264 TARGETS
= $(LIBRARY
) $(SHARED_LIBRARY
) $(PROGRAM
) $(SIMPLE_PROGRAMS
) $(HOST_LIBRARY
) $(HOST_PROGRAM
) $(HOST_SIMPLE_PROGRAMS
) $(JAVA_LIBRARY
)
270 $(addsuffix .
$(OBJ_SUFFIX
), $(JMC_GEN
)) \
271 $(CSRCS
:.c
=.
$(OBJ_SUFFIX
)) \
272 $(patsubst %.
cc,%.
$(OBJ_SUFFIX
),$(CPPSRCS
:.
cpp=.
$(OBJ_SUFFIX
))) \
273 $(CMSRCS
:.m
=.
$(OBJ_SUFFIX
)) \
274 $(CMMSRCS
:.mm
=.
$(OBJ_SUFFIX
)) \
275 $(ASFILES
:.
$(ASM_SUFFIX
)=.
$(OBJ_SUFFIX
))
276 OBJS
= $(strip $(_OBJS
))
281 $(addprefix host_
,$(HOST_CSRCS
:.c
=.
$(OBJ_SUFFIX
))) \
282 $(addprefix host_
,$(patsubst %.
cc,%.
$(OBJ_SUFFIX
),$(HOST_CPPSRCS
:.
cpp=.
$(OBJ_SUFFIX
)))) \
283 $(addprefix host_
,$(HOST_CMSRCS
:.m
=.
$(OBJ_SUFFIX
))) \
284 $(addprefix host_
,$(HOST_CMMSRCS
:.mm
=.
$(OBJ_SUFFIX
)))
285 HOST_OBJS
= $(strip $(_HOST_OBJS
))
288 LIBOBJS
:= $(addprefix \", $(OBJS
))
289 LIBOBJS
:= $(addsuffix \", $(LIBOBJS
))
292 ifneq (,$(OBJS
)$(XPIDLSRCS
)$(SDK_XPIDLSRCS
)$(SIMPLE_PROGRAMS
))
293 MDDEPFILES
= $(addprefix $(MDDEPDIR
)/,$(OBJS
:.
$(OBJ_SUFFIX
)=.pp
))
295 MDDEPFILES
+= $(addprefix $(MDDEPDIR
)/,$(XPIDLSRCS
:.idl
=.xpt
)) \
296 $(addprefix $(MDDEPDIR
)/,$(SDK_XPIDLSRCS
:.idl
=.xpt
))
302 $(GARBAGE
) $(TARGETS
) $(OBJS
) $(PROGOBJS
) LOGS TAGS a.out \
303 $(filter-out $(ASFILES
),$(OBJS
:.
$(OBJ_SUFFIX
)=.s
)) $(OBJS
:.
$(OBJ_SUFFIX
)=.ii
) \
304 $(OBJS
:.
$(OBJ_SUFFIX
)=.i
) \
305 $(HOST_PROGOBJS
) $(HOST_OBJS
) $(IMPORT_LIBRARY
) $(DEF_FILE
)\
306 $(EXE_DEF_FILE
) so_locations _gen _stubs
$(wildcard *.res
) $(wildcard *.RES
) \
307 $(wildcard *.pdb
) $(CODFILE
) $(MAPFILE
) $(IMPORT_LIBRARY
) \
308 $(SHARED_LIBRARY
:$(DLL_SUFFIX
)=.exp
) $(wildcard *.ilk
) \
309 $(PROGRAM
:$(BIN_SUFFIX
)=.exp
) $(SIMPLE_PROGRAMS
:$(BIN_SUFFIX
)=.exp
) \
310 $(PROGRAM
:$(BIN_SUFFIX
)=.lib
) $(SIMPLE_PROGRAMS
:$(BIN_SUFFIX
)=.lib
) \
311 $(SIMPLE_PROGRAMS
:$(BIN_SUFFIX
)=.
$(OBJ_SUFFIX
)) \
312 $(wildcard gts_tmp_
*) $(LIBRARY
:%.a
=.
%.timestamp
)
314 $(GARBAGE_DIRS
) /no-such-file
317 GARBAGE
+= $(MOCSRCS
)
320 ifdef SIMPLE_PROGRAMS
321 GARBAGE
+= $(SIMPLE_PROGRAMS
:%=%.
$(OBJ_SUFFIX
))
324 ifdef HOST_SIMPLE_PROGRAMS
325 GARBAGE
+= $(HOST_SIMPLE_PROGRAMS
:%=%.
$(OBJ_SUFFIX
))
329 # the Solaris WorkShop template repository cache. it occasionally can get
330 # out of sync, so targets like clobber should kill it.
332 ifeq ($(OS_ARCH
),SunOS
)
334 GARBAGE_DIRS
+= SunWS_cache
338 ifeq ($(OS_ARCH
),OpenVMS
)
339 GARBAGE
+= $(wildcard *.
*_defines
)
341 VMS_SYMVEC_FILE
= $(SHARED_LIBRARY
:$(DLL_SUFFIX
)=_symvec.opt
)
343 VMS_SYMVEC_FILE_MODULE
= $(topsrcdir
)/build
/unix
/vms
/$(notdir $(SHARED_LIBRARY
:$(DLL_SUFFIX
)=_dbg_symvec.opt
))
345 VMS_SYMVEC_FILE_MODULE
= $(topsrcdir
)/build
/unix
/vms
/$(notdir $(SHARED_LIBRARY
:$(DLL_SUFFIX
)=_symvec.opt
))
347 VMS_SYMVEC_FILE_COMP
= $(topsrcdir
)/build
/unix
/vms
/component_symvec.opt
348 GARBAGE
+= $(VMS_SYMVEC_FILE
)
350 DSO_LDOPTS
:= $(filter-out -auto_symvec
,$(DSO_LDOPTS
)) $(VMS_SYMVEC_FILE
)
355 XPIDL_GEN_DIR
= _xpidlgen
357 ifdef MOZ_UPDATE_XTERM
358 # Its good not to have a newline at the end of the titlebar string because it
359 # makes the make -s output easier to read. Echo -n does not work on all
360 # platforms, but we can trick sed into doing it.
361 UPDATE_TITLE
= sed
-e
"s!Y!$@ in $(shell $(BUILD_TOOLS)/print-depth-path.sh)/$(dir)!" $(MOZILLA_DIR
)/config
/xterm.str
;
366 $(foreach dir,$(DIRS
),$(UPDATE_TITLE
) $(MAKE
) -C
$(dir) $@
; ) true
368 # we only use this for the makefiles target and other stuff that doesn't matter
369 LOOP_OVER_PARALLEL_DIRS
= \
371 $(foreach dir,$(PARALLEL_DIRS
),$(UPDATE_TITLE
) $(MAKE
) -C
$(dir) $@
; ) true
373 LOOP_OVER_STATIC_DIRS
= \
375 $(foreach dir,$(STATIC_DIRS
),$(UPDATE_TITLE
) $(MAKE
) -C
$(dir) $@
; ) true
377 LOOP_OVER_TOOL_DIRS
= \
379 $(foreach dir,$(TOOL_DIRS
),$(UPDATE_TITLE
) $(MAKE
) -C
$(dir) $@
; ) true
382 # create a bunch of fake targets for order-only processing
383 PARALLEL_DIRS_export
= $(addsuffix _export
,$(PARALLEL_DIRS
))
384 PARALLEL_DIRS_libs
= $(addsuffix _libs
,$(PARALLEL_DIRS
))
385 PARALLEL_DIRS_tools
= $(addsuffix _tools
,$(PARALLEL_DIRS
))
389 # Now we can differentiate between objects used to build a library, and
390 # objects used to build an executable in the same directory.
397 HOST_PROGOBJS
= $(HOST_OBJS
)
400 # MAKE_DIRS: List of directories to build while looping over directories.
401 ifneq (,$(OBJS
)$(XPIDLSRCS
)$(SDK_XPIDLSRCS
)$(SIMPLE_PROGRAMS
))
402 MAKE_DIRS
+= $(MDDEPDIR
)
403 GARBAGE_DIRS
+= $(MDDEPDIR
)
407 # Tags: emacs (etags), vi (ctags)
408 # TAG_PROGRAM := ctags -L -
410 TAG_PROGRAM
= xargs etags
-a
413 # Turn on C++ linking if we have any .cpp or .mm files
414 # (moved this from config.mk so that config.mk can be included
415 # before the CPPSRCS are defined)
417 ifneq ($(CPPSRCS
)$(CMMSRCS
),)
422 # Make sure to wrap static libs inside linker specific flags to turn on & off
423 # inclusion of all symbols inside the static libs
425 ifndef NO_LD_ARCHIVE_FLAGS
426 ifdef SHARED_LIBRARY_LIBS
427 EXTRA_DSO_LDOPTS
:= $(MKSHLIB_FORCE_ALL
) $(SHARED_LIBRARY_LIBS
) $(MKSHLIB_UNFORCE_ALL
) $(EXTRA_DSO_LDOPTS
)
432 # This will strip out symbols that the component should not be
433 # exporting from the .dynsym section.
436 EXTRA_DSO_LDOPTS
+= $(MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS
)
440 # Enforce the requirement that MODULE_NAME must be set
441 # for components in static builds
445 ifndef FORCE_SHARED_LIB
447 $(error MODULE_NAME is required for components which may be used in static builds
)
454 # MacOS X specific stuff
457 ifeq ($(OS_ARCH
),Darwin
)
460 EXTRA_DSO_LDOPTS
+= -bundle
462 EXTRA_DSO_LDOPTS
+= -dynamiclib
-install_name @executable_path
/$(SHARED_LIBRARY
) -compatibility_version
1 -current_version
1 -single_module
468 # On NetBSD a.out systems, use -Bsymbolic. This fixes what would otherwise be
469 # fatal symbol name clashes between components.
471 ifeq ($(OS_ARCH
),NetBSD
)
472 ifeq ($(DLL_SUFFIX
),.so
.1.0)
474 EXTRA_DSO_LDOPTS
+= -Wl
,-Bsymbolic
479 ifeq ($(OS_ARCH
),FreeBSD
)
481 EXTRA_DSO_LDOPTS
+= -Wl
,-Bsymbolic
485 ifeq ($(OS_ARCH
),NetBSD
)
486 ifneq (,$(filter arc cobalt hpcmips mipsco newsmips pmax sgimips
,$(OS_TEST
)))
487 ifeq ($(MODULE
),layout
)
488 OS_CFLAGS
+= -Wa
,-xgot
489 OS_CXXFLAGS
+= -Wa
,-xgot
494 ifeq ($(OS_ARCH
),Linux
)
495 ifneq (,$(filter mips mipsel
,$(OS_TEST
)))
496 ifeq ($(MODULE
),layout
)
497 OS_CFLAGS
+= -Wa
,-xgot
498 OS_CXXFLAGS
+= -Wa
,-xgot
504 # HP-UXBeOS specific section: for COMPONENTS only, add -Bsymbolic flag
505 # which uses internal symbols first
507 ifeq ($(OS_ARCH
),HP-UX
)
509 ifeq ($(GNU_CC
)$(GNU_CXX
),)
510 EXTRA_DSO_LDOPTS
+= -Wl
,-Bsymbolic
511 ifneq ($(HAS_EXTRAEXPORTS
),1)
512 MKSHLIB
+= -Wl
,+eNSGetModule
-Wl
,+eerrno
513 MKCSHLIB
+= +eNSGetModule
+eerrno
514 ifneq ($(OS_TEST
),ia64
)
515 MKSHLIB
+= -Wl
,+e_shlInit
516 MKCSHLIB
+= +e_shlInit
518 endif # !HAS_EXTRAEXPORTS
519 endif # non-gnu compilers
523 ifeq ($(OS_ARCH
),AIX
)
525 ifneq ($(HAS_EXTRAEXPORTS
),1)
526 MKSHLIB
+= -bE
:$(MOZILLA_DIR
)/build
/unix
/aix.exp
-bnoexpall
527 MKCSHLIB
+= -bE
:$(MOZILLA_DIR
)/build
/unix
/aix.exp
-bnoexpall
528 endif # HAS_EXTRAEXPORTS
533 # OSF1: add -B symbolic flag for components
535 ifeq ($(OS_ARCH
),OSF1
)
537 ifeq ($(GNU_CC
)$(GNU_CXX
),)
538 EXTRA_DSO_LDOPTS
+= -B symbolic
544 # Linux: add -Bsymbolic flag for components
546 ifeq ($(OS_ARCH
),Linux
)
548 EXTRA_DSO_LDOPTS
+= -Wl
,-Bsymbolic
555 ifeq ($(OS_ARCH
),WINNT
)
558 DSO_LDOPTS
+= -Wl
,--out-implib
-Wl
,$(IMPORT_LIBRARY
)
571 ifeq (_WINNT
,$(GNU_CC
)_
$(OS_ARCH
))
575 endif # WINNT && !GNU_CC
576 ifneq (,$(filter WINCE
,$(OS_ARCH
)))
580 ifeq ($(OS_TARGET
), WINCE
)
582 HOST_OUTOPTION
= -Fo
# eol
585 ifeq (,$(CROSS_COMPILE
))
586 HOST_OUTOPTION
= $(OUTOPTION
)
588 HOST_OUTOPTION
= -o
# eol
592 ################################################################################
594 # SUBMAKEFILES: List of Makefiles for next level down.
595 # This is used to update or create the Makefiles before invoking them.
596 SUBMAKEFILES
+= $(addsuffix /Makefile
, $(DIRS
) $(TOOL_DIRS
))
597 PARALLEL_SUBMAKEFILES
+= $(addsuffix /Makefile
, $(PARALLEL_DIRS
))
598 SUBMAKEFILES
+= $(PARALLEL_SUBMAKEFILES
)
600 # The root makefile doesn't want to do a plain export/libs, because
601 # of the tiers and because of libxul. Suppress the default rules in favor
602 # of something else. Makefiles which use this var *must* provide a sensible
603 # default rule before including rules.mk
604 ifndef SUPPRESS_DEFAULT_RULES
607 DIRS
+= $(foreach tier
,$(TIERS
),$(tier_
$(tier
)_dirs
))
608 STATIC_DIRS
+= $(foreach tier
,$(TIERS
),$(tier_
$(tier
)_staticdirs
))
612 $(foreach tier
,$(TIERS
),$(MAKE
) tier_
$(tier
); ) true
618 $(foreach dir,$(STATIC_DIRS
),$(MAKE
) -C
$(dir); ) true
631 endif # SUPPRESS_DEFAULT_RULES
633 ifeq ($(filter s
,$(MAKEFLAGS
)),)
641 MAKE_TIER_SUBMAKEFILES
= +$(if
$(tier_
$*_dirs
),$(MAKE
) $(addsuffix /Makefile
,$(tier_
$*_dirs
)))
645 @
$(MAKE_TIER_SUBMAKEFILES
)
647 $(foreach dir,$(tier_
$*_dirs
),$(MAKE
) -C
$(dir) export; ) true
651 @
$(MAKE_TIER_SUBMAKEFILES
)
653 $(foreach dir,$(tier_
$*_dirs
),$(MAKE
) -C
$(dir) libs
; ) true
657 @
$(MAKE_TIER_SUBMAKEFILES
)
659 $(foreach dir,$(tier_
$*_dirs
),$(MAKE
) -C
$(dir) tools
; ) true
661 $(foreach tier
,$(TIERS
),tier_
$(tier
))::
662 @
$(ECHO
) "$@: $($@_staticdirs) $($@_dirs)"
664 $(foreach dir,$($@_staticdirs
),$(MAKE
) -C
$(dir); ) true
668 # Do everything from scratch
673 # Add dummy depend target for tinderboxes
677 all_platforms
:: $(NFSPWD
)
679 if
test ! -d LOGS
; then
rm -rf LOGS
; mkdir LOGS
; else true
; fi
; \
680 for h in
$(PLATFORM_HOSTS
); do \
681 echo
"On $$h: $(MAKE) $(ALL_PLATFORMS) >& LOGS/$$h.log";\
682 rsh
$$h -n
"(chdir $$d; \
683 $(MAKE) $(ALL_PLATFORMS) >& LOGS/$$h.log; \
684 echo DONE) &" 2>&1 > LOGS
/$$h.pid
& \
689 cd
$(@D
); $(MAKE
) $(@F
)
692 # Target to only regenerate makefiles
693 makefiles
: $(SUBMAKEFILES
)
694 ifneq (,$(DIRS
)$(TOOL_DIRS
)$(PARALLEL_DIRS
))
695 +$(LOOP_OVER_PARALLEL_DIRS
)
697 +$(LOOP_OVER_TOOL_DIRS
)
701 export:: $(PARALLEL_SUBMAKEFILES
) |
$(PARALLEL_DIRS_export
)
703 $(PARALLEL_DIRS_export
):: %_export
:
704 +$(MAKE
) -C
$* export
707 export:: $(SUBMAKEFILES
) $(MAKE_DIRS
) $(if
$(EXPORTS
)$(XPIDLSRCS
)$(SDK_HEADERS
)$(SDK_XPIDLSRCS
),$(PUBLIC
)) $(if
$(SDK_HEADERS
)$(SDK_XPIDLSRCS
),$(SDK_PUBLIC
)) $(if
$(XPIDLSRCS
),$(IDL_DIR
)) $(if
$(SDK_XPIDLSRCS
),$(SDK_IDL_DIR
))
709 +$(LOOP_OVER_TOOL_DIRS
)
712 tools
:: $(PARALLEL_SUBMAKEFILES
) |
$(PARALLEL_DIRS_tools
)
714 $(PARALLEL_DIRS_tools
):: %_tools
:
718 tools
:: $(SUBMAKEFILES
) $(MAKE_DIRS
)
722 $(foreach dir,$(TOOL_DIRS
),$(UPDATE_TITLE
) $(MAKE
) -C
$(dir) libs
; ) true
726 # Rule to create list of libraries for final link
732 ifdef BUILD_STATIC_LIBS
733 @
$(PERL
) -I
$(MOZILLA_DIR
)/config
$(MOZILLA_DIR
)/config
/build-list.pl
$(FINAL_LINK_COMPS
) $(LIBRARY_NAME
)
735 @
$(PERL
) -I
$(MOZILLA_DIR
)/config
$(MOZILLA_DIR
)/config
/build-list.pl
$(FINAL_LINK_COMP_NAMES
) $(MODULE_NAME
)
739 $(PERL
) -I
$(MOZILLA_DIR
)/config
$(MOZILLA_DIR
)/config
/build-list.pl
$(FINAL_LINK_LIBS
) $(LIBRARY_NAME
)
741 endif # EXPORT_LIBRARY
744 # Create dependencies on static (and shared EXTRA_DSO_LIBS) libraries
745 LIBS_DEPS
= $(filter %.
$(LIB_SUFFIX
), $(LIBS
))
746 HOST_LIBS_DEPS
= $(filter %.
$(LIB_SUFFIX
), $(HOST_LIBS
))
747 DSO_LDOPTS_DEPS
= $(EXTRA_DSO_LIBS
) $(filter %.
$(LIB_SUFFIX
), $(EXTRA_DSO_LDOPTS
))
749 ##############################################
751 libs
:: $(PARALLEL_SUBMAKEFILES
) |
$(PARALLEL_DIRS_libs
)
753 $(PARALLEL_DIRS_libs
):: %_libs
:
757 libs
:: $(SUBMAKEFILES
) $(MAKE_DIRS
) $(HOST_LIBRARY
) $(LIBRARY
) $(SHARED_LIBRARY
) $(IMPORT_LIBRARY
) $(HOST_PROGRAM
) $(PROGRAM
) $(HOST_SIMPLE_PROGRAMS
) $(SIMPLE_PROGRAMS
) $(JAVA_LIBRARY
)
758 ifndef NO_DIST_INSTALL
760 ifdef EXPORT_LIBRARY
# Stage libs that will be linked into a static build
762 $(INSTALL
) $(IFLAGS1
) $(LIBRARY
) $(DEPTH
)/staticlib
/components
764 $(INSTALL
) $(IFLAGS1
) $(LIBRARY
) $(DEPTH
)/staticlib
766 endif # EXPORT_LIBRARY
769 $(error Shipping static component libs makes no sense.
)
771 $(INSTALL
) $(IFLAGS1
) $(LIBRARY
) $(DIST
)/lib
777 $(INSTALL
) $(IFLAGS2
) $(SHARED_LIBRARY
) $(FINAL_TARGET
)/components
778 $(ELF_DYNSTR_GC
) $(FINAL_TARGET
)/components
/$(SHARED_LIBRARY
)
779 ifdef BEOS_ADDON_WORKAROUND
780 ( cd
$(FINAL_TARGET
)/components
&& $(CC
) -nostart
-o
$(SHARED_LIBRARY
).stub
$(SHARED_LIBRARY
) )
782 else # ! IS_COMPONENT
783 ifneq (,$(filter OS2 WINNT WINCE
,$(OS_ARCH
)))
784 $(INSTALL
) $(IFLAGS2
) $(IMPORT_LIBRARY
) $(DIST
)/lib
786 $(INSTALL
) $(IFLAGS2
) $(SHARED_LIBRARY
) $(DIST
)/lib
788 $(INSTALL
) $(IFLAGS2
) $(SHARED_LIBRARY
) $(FINAL_TARGET
)
789 ifdef BEOS_ADDON_WORKAROUND
790 ( cd
$(FINAL_TARGET
) && $(CC
) -nostart
-o
$(SHARED_LIBRARY
).stub
$(SHARED_LIBRARY
) )
793 endif # SHARED_LIBRARY
795 $(INSTALL
) $(IFLAGS2
) $(PROGRAM
) $(FINAL_TARGET
)
797 ifdef SIMPLE_PROGRAMS
798 $(INSTALL
) $(IFLAGS2
) $(SIMPLE_PROGRAMS
) $(FINAL_TARGET
)
801 $(INSTALL
) $(IFLAGS2
) $(HOST_PROGRAM
) $(DIST
)/host
/bin
803 ifdef HOST_SIMPLE_PROGRAMS
804 $(INSTALL
) $(IFLAGS2
) $(HOST_SIMPLE_PROGRAMS
) $(DIST
)/host
/bin
807 $(INSTALL
) $(IFLAGS1
) $(HOST_LIBRARY
) $(DIST
)/host
/lib
811 $(INSTALL
) $(IFLAGS1
) $(JAVA_LIBRARY
) $(FINAL_TARGET
)/components
813 $(INSTALL
) $(IFLAGS1
) $(JAVA_LIBRARY
) $(FINAL_TARGET
)
816 endif # !NO_DIST_INSTALL
819 ##############################################
821 ifndef NO_PROFILE_GUIDED_OPTIMIZE
822 ifneq (,$(MOZ_PROFILE_GENERATE
)$(MOZ_PROFILE_USE
))
823 ifeq ($(OS_ARCH
)_
$(GNU_CC
)$(INTERNAL_TOOLS
), WINNT_
)
824 # Force re-linking when building with PGO, since
825 # the MSVC linker does all the work. We force re-link
826 # in both stages so you can do depend builds with PGO.
828 $(SHARED_LIBRARY
): FORCE
829 BINARY_BASENAME
= $(SHARED_LIBRARY
:$(DLL_SUFFIX
)=)
833 BINARY_BASENAME
= $(PROGRAM
:$(BIN_SUFFIX
)=)
836 ifdef MOZ_PROFILE_USE
837 # In the second pass, we need to merge the pgc files into the pgd file.
838 # The compiler would do this for us automatically if they were in the right
839 # place, but they're in dist/bin.
840 ifdef BINARY_BASENAME
842 $(PYTHON
) $(topsrcdir
)/build
/win32
/pgomerge.py \
843 $(BINARY_BASENAME
) $(DIST
)/bin
845 endif # MOZ_PROFILE_USE
847 endif # MOZ_PROFILE_GENERATE || MOZ_PROFILE_USE
848 endif # NO_PROFILE_GUIDED_OPTIMIZE
850 ##############################################
853 $(MAKE
) -C
$(topsrcdir
) -f client.mk checkout
855 run_viewer
: $(FINAL_TARGET
)/viewer
856 cd
$(FINAL_TARGET
); \
857 MOZILLA_FIVE_HOME
=`pwd` \
858 LD_LIBRARY_PATH
=".:$(LIBS_PATH):$$LD_LIBRARY_PATH" \
861 clean clobber realclean clobber_all
:: $(SUBMAKEFILES
)
863 -rm -rf
$(ALL_TRASH_DIRS
)
864 +-$(LOOP_OVER_PARALLEL_DIRS
)
866 +-$(LOOP_OVER_STATIC_DIRS
)
867 +-$(LOOP_OVER_TOOL_DIRS
)
869 distclean:: $(SUBMAKEFILES
)
870 +-$(LOOP_OVER_PARALLEL_DIRS
)
872 +-$(LOOP_OVER_STATIC_DIRS
)
873 +-$(LOOP_OVER_TOOL_DIRS
)
874 -rm -rf
$(ALL_TRASH_DIRS
)
875 -rm -f
$(ALL_TRASH
) \
876 Makefile .HSancillary \
877 $(wildcard *.
$(OBJ_SUFFIX
)) $(wildcard *.ho
) $(wildcard host_
*.o
*) \
878 $(wildcard *.
$(LIB_SUFFIX
)) $(wildcard *$(DLL_SUFFIX
)) \
879 $(wildcard *.
$(IMPORT_LIB_SUFFIX
))
880 ifeq ($(OS_ARCH
),OS2
)
881 -rm -f
$(PROGRAM
:.exe
=.map
)
886 find
$(topsrcdir
) -name
dist -prune
-o \
( -name
'*.[hc]' -o
-name
'*.cp' -o
-name
'*.cpp' -o
-name
'*.idl' \
) -print |
$(TAG_PROGRAM
)
890 # creates OBJS, links with LIBS to create Foo
892 $(PROGRAM
): $(PROGOBJS
) $(LIBS_DEPS
) $(EXTRA_DEPS
) $(EXE_DEF_FILE
) $(RESFILE
) Makefile Makefile.in
893 ifeq (WINCE
,$(OS_ARCH
))
894 $(LD
) -NOLOGO
-OUT
:$@
$(WIN32_EXE_LDFLAGS
) $(LDFLAGS
) $(PROGOBJS
) $(RESFILE
) $(LIBS
) $(EXTRA_LIBS
) $(OS_LIBS
)
896 ifeq (_WINNT
,$(GNU_CC
)_
$(OS_ARCH
))
897 $(LD
) -NOLOGO
-OUT
:$@
-PDB
:$(PDBFILE
) $(WIN32_EXE_LDFLAGS
) $(LDFLAGS
) $(PROGOBJS
) $(RESFILE
) $(LIBS
) $(EXTRA_LIBS
) $(OS_LIBS
)
898 ifdef MSMANIFEST_TOOL
899 @if
test -f
$@.manifest
; then \
900 if
test -f
"$(srcdir)/$@.manifest"; then \
901 mt.exe
-NOLOGO
-MANIFEST
"$(win_srcdir)/$@.manifest" $@.manifest
-OUTPUTRESOURCE
:$@\
;1; \
903 mt.exe
-NOLOGO
-MANIFEST
$@.manifest
-OUTPUTRESOURCE
:$@\
;1; \
907 endif # MSVC with manifest tool
909 ifeq ($(CPP_PROG_LINK
),1)
910 $(CCC
) -o
$@
$(CXXFLAGS
) $(WRAP_MALLOC_CFLAGS
) $(PROGOBJS
) $(RESFILE
) $(WIN32_EXE_LDFLAGS
) $(SOLARIS_JEMALLOC_LDFLAGS
) $(LDFLAGS
) $(LIBS_DIR
) $(LIBS
) $(OS_LIBS
) $(EXTRA_LIBS
) $(BIN_FLAGS
) $(WRAP_MALLOC_LIB
) $(PROFILER_LIBS
) $(EXE_DEF_FILE
)
911 else # ! CPP_PROG_LINK
912 $(CC
) -o
$@
$(CFLAGS
) $(PROGOBJS
) $(RESFILE
) $(WIN32_EXE_LDFLAGS
) $(SOLARIS_JEMALLOC_LDFLAGS
) $(LDFLAGS
) $(LIBS_DIR
) $(LIBS
) $(OS_LIBS
) $(EXTRA_LIBS
) $(BIN_FLAGS
) $(EXE_DEF_FILE
)
913 endif # CPP_PROG_LINK
914 endif # WINNT && !GNU_CC
920 ifdef MOZ_POST_PROGRAM_COMMAND
921 $(MOZ_POST_PROGRAM_COMMAND
) $@
923 ifeq ($(OS_ARCH
),BeOS
)
924 ifdef BEOS_PROGRAM_RESOURCE
925 xres
-o
$@
$(BEOS_PROGRAM_RESOURCE
)
930 $(HOST_PROGRAM
): $(HOST_PROGOBJS
) $(HOST_LIBS_DEPS
) $(HOST_EXTRA_DEPS
) Makefile Makefile.in
931 ifeq (WINCE
,$(OS_ARCH
))
932 $(HOST_LD
) -NOLOGO
-OUT
:$@
$(HOST_OBJS
) $(WIN32_EXE_LDFLAGS
) $(HOST_LIBS
) $(HOST_EXTRA_LIBS
)
934 ifeq (_WINNT
,$(GNU_CC
)_
$(HOST_OS_ARCH
))
935 $(HOST_LD
) -NOLOGO
-OUT
:$@
-PDB
:$(PDBFILE
) $(HOST_OBJS
) $(WIN32_EXE_LDFLAGS
) $(HOST_LIBS
) $(HOST_EXTRA_LIBS
)
936 ifdef MSMANIFEST_TOOL
937 @if
test -f
$@.manifest
; then \
938 mt.exe
-NOLOGO
-MANIFEST
$@.manifest
-OUTPUTRESOURCE
:$@\
;1; \
941 endif # MSVC with manifest tool
943 ifeq ($(CPP_PROG_LINK
),1)
944 $(HOST_CXX
) -o
$@
$(HOST_CXXFLAGS
) $(HOST_LDFLAGS
) $(HOST_PROGOBJS
) $(HOST_LIBS
) $(HOST_EXTRA_LIBS
)
946 $(HOST_CC
) -o
$@
$(HOST_CFLAGS
) $(HOST_LDFLAGS
) $(HOST_PROGOBJS
) $(HOST_LIBS
) $(HOST_EXTRA_LIBS
)
947 endif # CPP_PROG_LINK
952 # This is an attempt to support generation of multiple binaries
953 # in one directory, it assumes everything to compile Foo is in
954 # Foo.o (from either Foo.c or Foo.cpp).
956 # SIMPLE_PROGRAMS = Foo Bar
957 # creates Foo.o Bar.o, links with LIBS to create Foo, Bar.
959 $(SIMPLE_PROGRAMS
): %$(BIN_SUFFIX
): %.
$(OBJ_SUFFIX
) $(LIBS_DEPS
) $(EXTRA_DEPS
) Makefile Makefile.in
960 ifeq (WINCE
,$(OS_ARCH
))
961 $(LD
) -nologo
-entry
:main
-out
:$@
$< $(WIN32_EXE_LDFLAGS
) $(LDFLAGS
) $(LIBS
) $(EXTRA_LIBS
) $(OS_LIBS
)
963 ifeq (_WINNT
,$(GNU_CC
)_
$(OS_ARCH
))
964 $(LD
) -nologo
-out
:$@
-pdb
:$(PDBFILE
) $< $(WIN32_EXE_LDFLAGS
) $(LDFLAGS
) $(LIBS
) $(EXTRA_LIBS
) $(OS_LIBS
)
965 ifdef MSMANIFEST_TOOL
966 @if
test -f
$@.manifest
; then \
967 mt.exe
-NOLOGO
-MANIFEST
$@.manifest
-OUTPUTRESOURCE
:$@\
;1; \
970 endif # MSVC with manifest tool
972 ifeq ($(CPP_PROG_LINK
),1)
973 $(CCC
) $(WRAP_MALLOC_CFLAGS
) $(CXXFLAGS
) -o
$@
$< $(WIN32_EXE_LDFLAGS
) $(SOLARIS_JEMALLOC_LDFLAGS
) $(LDFLAGS
) $(LIBS_DIR
) $(LIBS
) $(OS_LIBS
) $(EXTRA_LIBS
) $(WRAP_MALLOC_LIB
) $(PROFILER_LIBS
) $(BIN_FLAGS
)
975 $(CC
) $(WRAP_MALLOC_CFLAGS
) $(CFLAGS
) $(OUTOPTION
)$@
$< $(WIN32_EXE_LDFLAGS
) $(SOLARIS_JEMALLOC_LDFLAGS
) $(LDFLAGS
) $(LIBS_DIR
) $(LIBS
) $(OS_LIBS
) $(EXTRA_LIBS
) $(WRAP_MALLOC_LIB
) $(PROFILER_LIBS
) $(BIN_FLAGS
)
976 endif # CPP_PROG_LINK
977 endif # WINNT && !GNU_CC
983 ifdef MOZ_POST_PROGRAM_COMMAND
984 $(MOZ_POST_PROGRAM_COMMAND
) $@
987 $(HOST_SIMPLE_PROGRAMS
): host_
%$(HOST_BIN_SUFFIX
): host_
%.
$(OBJ_SUFFIX
) $(HOST_LIBS_DEPS
) $(HOST_EXTRA_DEPS
) Makefile Makefile.in
988 ifeq (WINCE
,$(OS_ARCH
))
989 $(HOST_LD
) -NOLOGO
-OUT
:$@
$(WIN32_EXE_LDFLAGS
) $< $(HOST_LIBS
) $(HOST_EXTRA_LIBS
)
991 ifeq (WINNT_
,$(HOST_OS_ARCH
)_
$(GNU_CC
))
992 $(HOST_LD
) -NOLOGO
-OUT
:$@
-PDB
:$(PDBFILE
) $< $(WIN32_EXE_LDFLAGS
) $(HOST_LIBS
) $(HOST_EXTRA_LIBS
)
994 ifneq (,$(HOST_CPPSRCS
)$(USE_HOST_CXX
))
995 $(HOST_CXX
) $(HOST_OUTOPTION
)$@
$(HOST_CXXFLAGS
) $(INCLUDES
) $< $(HOST_LIBS
) $(HOST_EXTRA_LIBS
)
997 $(HOST_CC
) $(HOST_OUTOPTION
)$@
$(HOST_CFLAGS
) $(INCLUDES
) $< $(HOST_LIBS
) $(HOST_EXTRA_LIBS
)
1003 # Purify target. Solaris/sparc only to start.
1004 # Purify does not recognize "egcs" or "c++" so we go with
1005 # "gcc" and "g++" for now.
1008 ifeq ($(CPP_PROG_LINK
),1)
1009 $(PURIFY
) $(CCC
) -o
$^.pure
$(CXXFLAGS
) $(PROGOBJS
) $(LDFLAGS
) $(LIBS_DIR
) $(LIBS
) $(OS_LIBS
) $(EXTRA_LIBS
)
1011 $(PURIFY
) $(CC
) -o
$^.pure
$(CFLAGS
) $(PROGOBJS
) $(LDFLAGS
) $(LIBS_DIR
) $(LIBS
) $(OS_LIBS
) $(EXTRA_LIBS
)
1013 ifndef NO_DIST_INSTALL
1014 $(INSTALL
) $(IFLAGS2
) $^.pure
$(FINAL_TARGET
)
1017 quantify
: $(PROGRAM
)
1018 ifeq ($(CPP_PROG_LINK
),1)
1019 $(QUANTIFY
) $(CCC
) -o
$^.quantify
$(CXXFLAGS
) $(PROGOBJS
) $(LDFLAGS
) $(LIBS_DIR
) $(LIBS
) $(OS_LIBS
) $(EXTRA_LIBS
)
1021 $(QUANTIFY
) $(CC
) -o
$^.quantify
$(CFLAGS
) $(PROGOBJS
) $(LDFLAGS
) $(LIBS_DIR
) $(LIBS
) $(OS_LIBS
) $(EXTRA_LIBS
)
1023 ifndef NO_DIST_INSTALL
1024 $(INSTALL
) $(IFLAGS2
) $^.quantify
$(FINAL_TARGET
)
1028 # This allows us to create static versions of the shared libraries
1029 # that are built using other static libraries. Confused...?
1031 ifdef SHARED_LIBRARY_LIBS
1032 ifeq (,$(GNU_LD
)$(filter-out OS2 WINNT WINCE
, $(OS_ARCH
)))
1033 ifneq (,$(BUILD_STATIC_LIBS
)$(FORCE_STATIC_LIB
))
1034 LOBJS
+= $(SHARED_LIBRARY_LIBS
)
1037 ifneq (,$(filter OSF1 BSD_OS FreeBSD NetBSD OpenBSD SunOS Darwin
,$(OS_ARCH
)))
1038 CLEANUP1
:= | egrep
-v
'(________64ELEL_|__.SYMDEF)'
1039 CLEANUP2
:= rm -f ________64ELEL_ __.SYMDEF
1043 SUB_LOBJS
= $(shell for lib in
$(SHARED_LIBRARY_LIBS
); do
$(AR_LIST
) $${lib} $(CLEANUP1
); done
;)
1046 ifdef MOZILLA_PROBE_LIBS
1047 PROBE_LOBJS
= $(shell for lib in
$(MOZILLA_PROBE_LIBS
); do
$(AR_LIST
) $${lib} $(CLEANUP1
); done
;)
1049 ifdef DTRACE_PROBE_OBJ
1050 EXTRA_DEPS
+= $(DTRACE_PROBE_OBJ
)
1053 $(LIBRARY
): $(OBJS
) $(LOBJS
) $(SHARED_LIBRARY_LIBS
) $(EXTRA_DEPS
) Makefile Makefile.in
1055 ifneq (,$(GNU_LD
)$(filter-out OS2 WINNT WINCE
, $(OS_ARCH
)))
1056 ifdef SHARED_LIBRARY_LIBS
1058 @for lib in
$(SHARED_LIBRARY_LIBS
); do
$(AR_EXTRACT
) $${lib}; $(CLEANUP2
); done
1061 $(AR
) $(AR_FLAGS
) $(OBJS
) $(LOBJS
) $(SUB_LOBJS
)
1063 @
rm -f foodummyfilefoo
$(SUB_LOBJS
)
1065 ifeq (,$(filter-out WINNT WINCE
, $(OS_ARCH
)))
1066 $(IMPORT_LIBRARY
): $(SHARED_LIBRARY
)
1069 ifeq ($(OS_ARCH
),OS2
)
1070 $(DEF_FILE
): $(OBJS
) $(SHARED_LIBRARY_LIBS
)
1072 echo LIBRARY
$(LIBRARY_NAME
) INITINSTANCE TERMINSTANCE
> $@
1074 echo CODE LOADONCALL MOVEABLE DISCARDABLE
>> $@
1075 echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED
>> $@
1077 ifeq ($(IS_COMPONENT
),1)
1078 ifeq ($(HAS_EXTRAEXPORTS
),1)
1079 ifndef MOZ_OS2_USE_DECLSPEC
1080 $(FILTER
) $(OBJS
) $(SHARED_LIBRARY_LIBS
) >> $@
1083 echo _NSGetModule
>> $@
1086 ifndef MOZ_OS2_USE_DECLSPEC
1087 $(FILTER
) $(OBJS
) $(SHARED_LIBRARY_LIBS
) >> $@
1092 ifdef MOZ_OS2_USE_DECLSPEC
1093 $(IMPORT_LIBRARY
): $(SHARED_LIBRARY
)
1095 $(IMPORT_LIBRARY
): $(DEF_FILE
)
1102 $(HOST_LIBRARY
): $(HOST_OBJS
) Makefile
1104 $(HOST_AR
) $(HOST_AR_FLAGS
) $(HOST_OBJS
)
1107 ifdef NO_LD_ARCHIVE_FLAGS
1108 SUB_SHLOBJS
= $(SUB_LOBJS
)
1113 ifdef DTRACE_PROBE_OBJ
1114 ifndef DTRACE_LIB_DEPENDENT
1115 $(DTRACE_PROBE_OBJ
): $(OBJS
)
1116 dtrace
-G
-C
-32 -s
$(MOZILLA_DTRACE_SRC
) -o
$(DTRACE_PROBE_OBJ
) $(OBJS
)
1122 # On Darwin (Mac OS X), dwarf2 debugging uses debug info left in .o files,
1123 # so instead of deleting .o files after repacking them into a dylib, we make
1124 # symlinks back to the originals. The symlinks are a no-op for stabs debugging,
1125 # so no need to conditionalize on OS version or debugging format.
1127 $(SHARED_LIBRARY
): $(OBJS
) $(LOBJS
) $(DEF_FILE
) $(RESFILE
) $(SHARED_LIBRARY_LIBS
) $(EXTRA_DEPS
) $(DSO_LDOPTS_DEPS
) Makefile Makefile.in
1128 ifndef INCREMENTAL_LINKER
1131 ifeq ($(OS_ARCH
),OpenVMS
)
1132 @if
test ! -f
$(VMS_SYMVEC_FILE
); then \
1133 if
test -f
$(VMS_SYMVEC_FILE_MODULE
); then \
1134 echo Creating specific component options file
$(VMS_SYMVEC_FILE
); \
1135 cp
$(VMS_SYMVEC_FILE_MODULE
) $(VMS_SYMVEC_FILE
); \
1139 @if
test ! -f
$(VMS_SYMVEC_FILE
); then \
1140 echo Creating generic component options file
$(VMS_SYMVEC_FILE
); \
1141 cp
$(VMS_SYMVEC_FILE_COMP
) $(VMS_SYMVEC_FILE
); \
1145 ifdef NO_LD_ARCHIVE_FLAGS
1146 ifdef SHARED_LIBRARY_LIBS
1147 @
rm -f
$(SUB_SHLOBJS
)
1148 @for lib in
$(SHARED_LIBRARY_LIBS
); do
$(AR_EXTRACT
) $${lib}; $(CLEANUP2
); done
1149 ifeq ($(OS_ARCH
),Darwin
)
1150 @echo Making symlinks to the original object files in the archive libraries
$(SHARED_LIBRARY_LIBS
)
1151 @for lib in
$(SHARED_LIBRARY_LIBS
); do \
1152 libdir=`echo $$lib|sed -e 's,/[^/]*\.a,,'`; \
1153 ofiles
=`$(AR_LIST) $${lib}`; \
1154 for ofile in
$$ofiles; do \
1155 if
[ -f
$$libdir/$$ofile ]; then \
1157 ln
-s
$$libdir/$$ofile $$ofile; \
1162 endif # SHARED_LIBRARY_LIBS
1163 endif # NO_LD_ARCHIVE_FLAGS
1164 ifdef DTRACE_LIB_DEPENDENT
1165 @
rm -f
$(PROBE_LOBJS
)
1166 @for lib in
$(MOZILLA_PROBE_LIBS
); do
$(AR_EXTRACT
) $${lib}; $(CLEANUP2
); done
1168 dtrace
-G
-C
-32 -s
$(MOZILLA_DTRACE_SRC
) -o
$(DTRACE_PROBE_OBJ
) $(PROBE_LOBJS
)
1170 @for lib in
$(MOZILLA_PROBE_LIBS
); do \
1171 ofiles
=`$(AR_LIST) $${lib}`; \
1172 $(AR_DELETE
) $${lib} $$ofiles; \
1174 $(MKSHLIB
) $(SHLIB_LDSTARTFILE
) $(OBJS
) $(LOBJS
) $(SUB_SHLOBJS
) $(DTRACE_PROBE_OBJ
) $(PROBE_LOBJS
) $(RESFILE
) $(LDFLAGS
) $(EXTRA_DSO_LDOPTS
) $(OS_LIBS
) $(EXTRA_LIBS
) $(DEF_FILE
) $(SHLIB_LDENDFILE
)
1175 @
rm -f
$(PROBE_LOBJS
)
1176 @
rm -f
$(DTRACE_PROBE_OBJ
)
1177 @for lib in
$(MOZILLA_PROBE_LIBS
); do \
1178 if
[ -L
$${lib} ]; then
rm -f
`readlink $${lib}`; fi
; \
1180 @
rm -f
$(MOZILLA_PROBE_LIBS
)
1182 else # ! DTRACE_LIB_DEPENDENT
1183 $(MKSHLIB
) $(SHLIB_LDSTARTFILE
) $(OBJS
) $(DTRACE_PROBE_OBJ
) $(LOBJS
) $(SUB_SHLOBJS
) $(RESFILE
) $(LDFLAGS
) $(EXTRA_DSO_LDOPTS
) $(OS_LIBS
) $(EXTRA_LIBS
) $(DEF_FILE
) $(SHLIB_LDENDFILE
)
1184 endif # DTRACE_LIB_DEPENDENT
1186 ifeq (_WINNT
,$(GNU_CC
)_
$(OS_ARCH
))
1187 ifdef MSMANIFEST_TOOL
1188 ifdef EMBED_MANIFEST_AT
1189 @if
test -f
$@.manifest
; then \
1190 mt.exe
-NOLOGO
-MANIFEST
$@.manifest
-OUTPUTRESOURCE
:$@\
;$(EMBED_MANIFEST_AT
); \
1191 rm -f
$@.manifest
; \
1193 endif # EMBED_MANIFEST_AT
1194 endif # MSVC with manifest tool
1195 endif # WINNT && !GCC
1196 ifeq ($(OS_ARCH
),Darwin
)
1198 @
rm -f
$(SUB_SHLOBJS
)
1200 @
rm -f foodummyfilefoo
$(DELETE_AFTER_LINK
)
1205 ifdef MOZ_POST_DSO_LIB_COMMAND
1206 $(MOZ_POST_DSO_LIB_COMMAND
) $@
1210 ifdef COMPILER_DEPEND
1211 ifeq (__SunOS
,$(GNU_CC
)_
$(GNU_CXX
)_
$(OS_ARCH
))
1212 _MDDEPFILE
= $(MDDEPDIR
)/$(@F
).pp
1214 define MAKE_DEPS_AUTO_CC
1215 if
test -d
$(@D
); then \
1216 echo
"Building deps for $< using Sun Studio cc"; \
1217 $(CC
) $(COMPILE_CFLAGS
) -xM
$< >$(_MDDEPFILE
) ; \
1220 define MAKE_DEPS_AUTO_CXX
1221 if
test -d
$(@D
); then \
1222 echo
"Building deps for $< using Sun Studio CC"; \
1223 $(CXX
) $(COMPILE_CXXFLAGS
) -xM
$< >$(_MDDEPFILE
) ; \
1226 endif # Sun Studio on Solaris
1227 else # COMPILER_DEPEND
1229 # Generate dependencies on the fly
1231 _MDDEPFILE
= $(MDDEPDIR
)/$(@F
).pp
1233 define MAKE_DEPS_AUTO
1234 if
test -d
$(@D
); then \
1235 echo
"Building deps for $<"; \
1236 $(MKDEPEND
) -o
'.$(OBJ_SUFFIX)' -f-
$(DEFINES
) $(ACDEFINES
) $(INCLUDES
) $< 2>/dev
/null | sed
-e
"s|^[^ ]*/||" > $(_MDDEPFILE
) ; \
1240 MAKE_DEPS_AUTO_CC
= $(MAKE_DEPS_AUTO
)
1241 MAKE_DEPS_AUTO_CXX
= $(MAKE_DEPS_AUTO
)
1243 endif # COMPILER_DEPEND
1245 endif # MOZ_AUTO_DEPS
1248 ifeq ($(OS_ARCH
),SunOS
)
1249 SOLARIS_JEMALLOC_LDFLAGS
= $(call EXPAND_LIBNAME_PATH
,jemalloc
,$(DIST
)/lib
)
1253 # Rules for building native targets must come first because of the host_ prefix
1254 host_
%.
$(OBJ_SUFFIX
): %.c Makefile Makefile.in
1256 $(ELOG
) $(HOST_CC
) $(HOST_OUTOPTION
)$@
-c
$(HOST_CFLAGS
) $(INCLUDES
) $(NSPR_CFLAGS
) $(_VPATH_SRCS
)
1258 host_
%.
$(OBJ_SUFFIX
): %.
cpp Makefile Makefile.in
1260 $(ELOG
) $(HOST_CXX
) $(HOST_OUTOPTION
)$@
-c
$(HOST_CXXFLAGS
) $(INCLUDES
) $(NSPR_CFLAGS
) $(_VPATH_SRCS
)
1262 host_
%.
$(OBJ_SUFFIX
): %.
cc Makefile Makefile.in
1264 $(ELOG
) $(HOST_CXX
) $(HOST_OUTOPTION
)$@
-c
$(HOST_CXXFLAGS
) $(INCLUDES
) $(NSPR_CFLAGS
) $(_VPATH_SRCS
)
1266 host_
%.
$(OBJ_SUFFIX
): %.m Makefile Makefile.in
1268 $(ELOG
) $(HOST_CC
) $(HOST_OUTOPTION
)$@
-c
$(HOST_CFLAGS
) $(HOST_CMFLAGS
) $(INCLUDES
) $(NSPR_CFLAGS
) $(_VPATH_SRCS
)
1270 host_
%.
$(OBJ_SUFFIX
): %.mm Makefile Makefile.in
1272 $(ELOG
) $(HOST_CXX
) $(HOST_OUTOPTION
)$@
-c
$(HOST_CXXFLAGS
) $(HOST_CMMFLAGS
) $(INCLUDES
) $(NSPR_CFLAGS
) $(_VPATH_SRCS
)
1274 %: %.c Makefile Makefile.in
1276 @
$(MAKE_DEPS_AUTO_CC
)
1277 $(ELOG
) $(CC
) $(CFLAGS
) $(LDFLAGS
) $(OUTOPTION
)$@
$(_VPATH_SRCS
)
1279 %.
$(OBJ_SUFFIX
): %.c Makefile Makefile.in
1281 @
$(MAKE_DEPS_AUTO_CC
)
1282 $(ELOG
) $(CC
) $(OUTOPTION
)$@
-c
$(COMPILE_CFLAGS
) $(_VPATH_SRCS
)
1284 moc_
%.
cpp: %.h Makefile Makefile.in
1285 $(MOC
) $< $(OUTOPTION
)$@
1288 # The AS_DASH_C_FLAG is needed cause not all assemblers (Solaris) accept
1290 %.
$(OBJ_SUFFIX
): %.
$(ASM_SUFFIX
) Makefile Makefile.in
1291 $(AS
) -o
$@
$(ASFLAGS
) $(AS_DASH_C_FLAG
) $(_VPATH_SRCS
)
1294 %.
$(OBJ_SUFFIX
): %.S Makefile Makefile.in
1295 $(AS
) -o
$@
$(ASFLAGS
) -c
$<
1297 %: %.
cpp Makefile Makefile.in
1298 @
$(MAKE_DEPS_AUTO_CXX
)
1299 $(CCC
) $(OUTOPTION
)$@
$(CXXFLAGS
) $(_VPATH_SRCS
) $(LDFLAGS
)
1302 # Please keep the next two rules in sync.
1304 %.
$(OBJ_SUFFIX
): %.
cc Makefile Makefile.in
1306 @
$(MAKE_DEPS_AUTO_CXX
)
1307 $(ELOG
) $(CCC
) $(OUTOPTION
)$@
-c
$(COMPILE_CXXFLAGS
) $(_VPATH_SRCS
)
1309 %.
$(OBJ_SUFFIX
): %.
cpp Makefile Makefile.in
1311 @
$(MAKE_DEPS_AUTO_CXX
)
1312 ifdef STRICT_CPLUSPLUS_SUFFIX
1313 echo
"#line 1 \"$*.cpp\"" | cat
- $*.
cpp > t_
$*.
cc
1314 $(ELOG
) $(CCC
) -o
$@
-c
$(COMPILE_CXXFLAGS
) t_
$*.
cc
1317 $(ELOG
) $(CCC
) $(OUTOPTION
)$@
-c
$(COMPILE_CXXFLAGS
) $(_VPATH_SRCS
)
1318 endif #STRICT_CPLUSPLUS_SUFFIX
1320 $(OBJ_PREFIX
)%.
$(OBJ_SUFFIX
): %.mm Makefile Makefile.in
1322 @
$(MAKE_DEPS_AUTO_CXX
)
1323 $(ELOG
) $(CCC
) -o
$@
-c
$(COMPILE_CXXFLAGS
) $(COMPILE_CMMFLAGS
) $(_VPATH_SRCS
)
1325 $(OBJ_PREFIX
)%.
$(OBJ_SUFFIX
): %.m Makefile Makefile.in
1327 @
$(MAKE_DEPS_AUTO_CC
)
1328 $(ELOG
) $(CC
) -o
$@
-c
$(COMPILE_CFLAGS
) $(COMPILE_CMFLAGS
) $(_VPATH_SRCS
)
1331 $(CCC
) -S
$(COMPILE_CXXFLAGS
) $(_VPATH_SRCS
)
1334 $(CCC
) -S
$(COMPILE_CXXFLAGS
) $(_VPATH_SRCS
)
1337 $(CC
) -S
$(COMPILE_CFLAGS
) $(_VPATH_SRCS
)
1340 $(CCC
) -C
-E
$(COMPILE_CXXFLAGS
) $(_VPATH_SRCS
) > $*.i
1343 $(CCC
) -C
-E
$(COMPILE_CXXFLAGS
) $(_VPATH_SRCS
) > $*.i
1346 $(CC
) -C
-E
$(COMPILE_CFLAGS
) $(_VPATH_SRCS
) > $*.i
1349 $(CCC
) -C
-E
$(COMPILE_CXXFLAGS
) $(COMPILE_CMMFLAGS
) $(_VPATH_SRCS
) > $*.i
1352 @echo Creating Resource file
: $@
1353 ifeq ($(OS_ARCH
),OS2
)
1354 $(RC
) $(RCFLAGS
:-D
%=-d
%) -i
$(subst /,\
,$(srcdir)) -r
$< $@
1357 $(RC
) $(RCFLAGS
) $(filter-out -U
%,$(DEFINES
)) $(INCLUDES
:-I
%=--include-dir
%) $(OUTOPTION
)$@
$(_VPATH_SRCS
)
1359 $(RC
) $(RCFLAGS
) -r
$(DEFINES
) $(INCLUDES
) $(OUTOPTION
)$@
$(_VPATH_SRCS
)
1363 # need 3 separate lines for OS/2
1370 rm -f
$@
; cp
$< $@
; chmod
+x
$@
1372 # Cancel these implicit rules
1382 ###############################################################################
1384 ###############################################################################
1385 ifneq (,$(filter OS2 WINNT WINCE
,$(OS_ARCH
)))
1392 SPACE
:= $(EMPTY
) $(EMPTY
)
1394 # Cygwin and MSYS have their own special path form, but javac expects the source
1395 # and class paths to be in the DOS form (i.e. e:/builds/...). This function
1396 # does the appropriate conversion on Windows, but is a noop on other systems.
1397 ifeq (,$(filter-out WINNT WINCE
, $(HOST_OS_ARCH
)))
1398 ifdef CYGWIN_WRAPPER
1399 normalizepath
= $(foreach p
,$(1),$(shell cygpath
-m
$(p
)))
1402 # We use 'pwd -W' to get DOS form of the path. However, since the given path
1403 # could be a file or a non-existent path, we cannot call 'pwd -W' directly
1404 # on the path. Instead, we extract the root path (i.e. "c:/"), call 'pwd -W'
1405 # on it, then merge with the rest of the path.
1406 root-path
= $(shell echo
$(1) | sed
-e
"s|\(/[^/]*\)/\?\(.*\)|\1|")
1407 non-root-path
= $(shell echo
$(1) | sed
-e
"s|\(/[^/]*\)/\?\(.*\)|\2|")
1408 normalizepath
= $(foreach p
,$(1),$(if
$(filter /%,$(1)),$(shell cd
$(call root-path
,$(1)) && pwd
-W
)$(call non-root-path
,$(1)),$(1)))
1411 normalizepath
= $(1)
1414 _srcdir
= $(call normalizepath
,$(srcdir))
1415 ifdef JAVA_SOURCEPATH
1416 SP
= $(subst $(SPACE
),$(SEP
),$(call normalizepath
,$(strip $(JAVA_SOURCEPATH
))))
1417 _JAVA_SOURCEPATH
= ".$(SEP)$(_srcdir)$(SEP)$(SP)"
1419 _JAVA_SOURCEPATH
= ".$(SEP)$(_srcdir)"
1422 ifdef JAVA_CLASSPATH
1423 CP
= $(subst $(SPACE
),$(SEP
),$(call normalizepath
,$(strip $(JAVA_CLASSPATH
))))
1424 _JAVA_CLASSPATH
= ".$(SEP)$(CP)"
1433 $(_JAVA_DIR
)/%.class
: %.java Makefile Makefile.in
$(_JAVA_DIR
)
1434 $(CYGWIN_WRAPPER
) $(JAVAC
) $(JAVAC_FLAGS
) -classpath
$(_JAVA_CLASSPATH
) \
1435 -sourcepath
$(_JAVA_SOURCEPATH
) -d
$(_JAVA_DIR
) $(_VPATH_SRCS
)
1437 $(JAVA_LIBRARY
): $(addprefix $(_JAVA_DIR
)/,$(JAVA_SRCS
:.java
=.class
)) Makefile Makefile.in
1438 $(JAR
) cf
$@
-C
$(_JAVA_DIR
) .
1440 GARBAGE_DIRS
+= $(_JAVA_DIR
)
1442 ###############################################################################
1444 ###############################################################################
1446 # In GNU make 3.80, makefiles must use the /cygdrive syntax, even if we're
1447 # processing them with AS perl. See bug 232003
1449 CYGWIN_TOPSRCDIR
= -nowrap
-p
$(topsrcdir
) -wrap
1452 # Note: Passing depth to make-makefile is optional.
1453 # It saves the script some work, though.
1454 Makefile
: Makefile.in
1455 @
$(PERL
) $(AUTOCONF_TOOLS
)/make-makefile
-t
$(topsrcdir
) -d
$(DEPTH
) $(CYGWIN_TOPSRCDIR
)
1458 # VPATH does not work on some machines in this case, so add $(srcdir)
1459 $(SUBMAKEFILES
): % : $(srcdir)/%.in
1460 $(PERL
) $(AUTOCONF_TOOLS
)/make-makefile
-t
$(topsrcdir
) -d
$(DEPTH
) $(CYGWIN_TOPSRCDIR
) $@
1463 ifdef AUTOUPDATE_CONFIGURE
1464 $(topsrcdir
)/configure
: $(topsrcdir
)/configure.in
1465 (cd
$(topsrcdir
) && $(AUTOCONF
)) && (cd
$(DEPTH
) && .
/config.status
--recheck
)
1468 ###############################################################################
1469 # Bunch of things that extend the 'export' rule (in order):
1470 ###############################################################################
1472 ################################################################################
1473 # Copy each element of EXPORTS to $(PUBLIC)
1475 ifneq ($(EXPORTS
)$(XPIDLSRCS
)$(SDK_HEADERS
)$(SDK_XPIDLSRCS
),)
1476 $(SDK_PUBLIC
) $(PUBLIC
)::
1477 @if
test ! -d
$@
; then
$(ECHO
) Creating
$@
; rm -rf
$@
; $(NSINSTALL
) -D
$@
; else true
; fi
1481 ifneq ($(XPIDLSRCS
)$(SDK_XPIDLSRCS
),)
1487 ifneq ($(XPI_NAME
),)
1489 @if
test ! -d
$(FINAL_TARGET
); then echo Creating
$(FINAL_TARGET
); rm -fr
$(FINAL_TARGET
); $(NSINSTALL
) -D
$(FINAL_TARGET
); else true
; fi
1492 ifndef NO_DIST_INSTALL
1494 export:: $(EXPORTS
) $(PUBLIC
)
1495 $(INSTALL
) $(IFLAGS1
) $^
1498 ifneq ($(SDK_HEADERS
),)
1499 export:: $(SDK_HEADERS
) $(SDK_PUBLIC
)
1500 $(INSTALL
) $(IFLAGS1
) $^
1502 export:: $(SDK_HEADERS
) $(PUBLIC
)
1503 $(INSTALL
) $(IFLAGS1
) $^
1505 endif # NO_DIST_INSTALL
1507 ################################################################################
1508 # Copy each element of PREF_JS_EXPORTS
1513 ifneq (,$(XPI_NAME
)$(LIBXUL_SDK
))
1514 PREF_DIR
= defaults
/preferences
1516 PREF_DIR
= defaults
/pref
1520 ifneq ($(PREF_JS_EXPORTS
),)
1521 # on win32, pref files need CRLF line endings... see bug 206029
1522 ifeq (WINNT
,$(OS_ARCH
))
1523 PREF_PPFLAGS
= --line-endings
=crlf
1526 ifndef NO_DIST_INSTALL
1527 libs
:: $(PREF_JS_EXPORTS
)
1528 if
test ! -d
$(FINAL_TARGET
)/$(PREF_DIR
); then
$(NSINSTALL
) -D
$(FINAL_TARGET
)/$(PREF_DIR
); fi
1530 for i in
$(PREF_JS_EXPORTS
); do \
1531 dest
=$(FINAL_TARGET
)/$(PREF_DIR
)/`basename $$i`; \
1533 $(PYTHON
) $(topsrcdir
)/config
/Preprocessor.py
$(PREF_PPFLAGS
) $(DEFINES
) $(ACDEFINES
) $(XULPPFLAGS
) $$i > $$dest; \
1538 ################################################################################
1539 # Copy each element of AUTOCFG_JS_EXPORTS to $(FINAL_TARGET)/defaults/autoconfig
1541 ifneq ($(AUTOCFG_JS_EXPORTS
),)
1542 $(FINAL_TARGET
)/defaults
/autoconfig
::
1543 @if
test ! -d
$@
; then echo Creating
$@
; rm -rf
$@
; $(NSINSTALL
) -D
$@
; else true
; fi
1545 ifndef NO_DIST_INSTALL
1546 export:: $(AUTOCFG_JS_EXPORTS
) $(FINAL_TARGET
)/defaults
/autoconfig
1547 $(INSTALL
) $(IFLAGS1
) $^
1551 ################################################################################
1552 # Export the elements of $(XPIDLSRCS) & $(SDK_XPIDLSRCS),
1553 # generating .h and .xpt files and moving them to the appropriate places.
1555 ifneq ($(XPIDLSRCS
)$(SDK_XPIDLSRCS
),)
1557 export:: $(patsubst %.idl
,$(XPIDL_GEN_DIR
)/%.h
, $(XPIDLSRCS
))
1560 XPIDL_MODULE
= $(MODULE
)
1563 ifeq ($(XPIDL_MODULE
),) # we need $(XPIDL_MODULE) to make $(XPIDL_MODULE).xpt
1566 @echo
"*** Error processing XPIDLSRCS:"
1567 @echo
"Please define MODULE or XPIDL_MODULE when defining XPIDLSRCS,"
1568 @echo
"so we have a module name to use when creating MODULE.xpt."
1569 @echo
; sleep
2; false
1572 $(SDK_IDL_DIR
) $(IDL_DIR
)::
1573 @if
test ! -d
$@
; then echo Creating
$@
; rm -rf
$@
; $(NSINSTALL
) -D
$@
; else true
; fi
1575 # generate .h files from into $(XPIDL_GEN_DIR), then export to $(PUBLIC);
1576 # warn against overriding existing .h file.
1577 $(XPIDL_GEN_DIR
)/.done
:
1578 @if
test ! -d
$(XPIDL_GEN_DIR
); then echo Creating
$(XPIDL_GEN_DIR
)/.done
; rm -rf
$(XPIDL_GEN_DIR
); mkdir
$(XPIDL_GEN_DIR
); fi
1581 # don't depend on $(XPIDL_GEN_DIR), because the modification date changes
1582 # with any addition to the directory, regenerating all .h files -> everything.
1584 $(XPIDL_GEN_DIR
)/%.h
: %.idl
$(XPIDL_COMPILE
) $(XPIDL_GEN_DIR
)/.done
1586 $(ELOG
) $(XPIDL_COMPILE
) -m header
-w
$(XPIDL_FLAGS
) -o
$(XPIDL_GEN_DIR
)/$* $(_VPATH_SRCS
)
1587 @if
test -n
"$(findstring $*.h, $(EXPORTS) $(SDK_HEADERS))"; \
1588 then echo
"*** WARNING: file $*.h generated from $*.idl overrides $(srcdir)/$*.h"; else true
; fi
1591 # generate intermediate .xpt files into $(XPIDL_GEN_DIR), then link
1592 # into $(XPIDL_MODULE).xpt and export it to $(FINAL_TARGET)/components.
1593 $(XPIDL_GEN_DIR
)/%.xpt
: %.idl
$(XPIDL_COMPILE
) $(XPIDL_GEN_DIR
)/.done
1595 $(ELOG
) $(XPIDL_COMPILE
) -m typelib
-w
$(XPIDL_FLAGS
) -e
$@
-d
$(MDDEPDIR
)/$*.pp
$(_VPATH_SRCS
)
1597 # no need to link together if XPIDLSRCS contains only XPIDL_MODULE
1598 ifneq ($(XPIDL_MODULE
).idl
,$(strip $(XPIDLSRCS
)))
1599 $(XPIDL_GEN_DIR
)/$(XPIDL_MODULE
).xpt
: $(patsubst %.idl
,$(XPIDL_GEN_DIR
)/%.xpt
,$(XPIDLSRCS
) $(SDK_XPIDLSRCS
)) Makefile.in Makefile
$(XPIDL_LINK
)
1600 $(XPIDL_LINK
) $(XPIDL_GEN_DIR
)/$(XPIDL_MODULE
).xpt
$(patsubst %.idl
,$(XPIDL_GEN_DIR
)/%.xpt
,$(XPIDLSRCS
) $(SDK_XPIDLSRCS
))
1601 endif # XPIDL_MODULE.xpt != XPIDLSRCS
1603 libs
:: $(XPIDL_GEN_DIR
)/$(XPIDL_MODULE
).xpt
1604 ifndef NO_DIST_INSTALL
1605 $(INSTALL
) $(IFLAGS1
) $(XPIDL_GEN_DIR
)/$(XPIDL_MODULE
).xpt
$(FINAL_TARGET
)/components
1610 GARBAGE_DIRS
+= $(XPIDL_GEN_DIR
)
1612 endif # XPIDLSRCS || SDK_XPIDLSRCS
1614 ifneq ($(XPIDLSRCS
),)
1615 # export .idl files to $(IDL_DIR)
1616 ifndef NO_DIST_INSTALL
1617 export:: $(XPIDLSRCS
) $(IDL_DIR
)
1618 $(INSTALL
) $(IFLAGS1
) $^
1620 export:: $(patsubst %.idl
,$(XPIDL_GEN_DIR
)/%.h
, $(XPIDLSRCS
)) $(PUBLIC
)
1621 $(INSTALL
) $(IFLAGS1
) $^
1622 endif # NO_DIST_INSTALL
1629 # General rules for exporting idl files.
1631 # WORK-AROUND ONLY, for mozilla/tools/module-deps/bootstrap.pl build.
1632 # Bug to fix idl dependency problems w/o this extra build pass is
1633 # http://bugzilla.mozilla.org/show_bug.cgi?id=145777
1636 @if
test ! -d
$@
; then echo Creating
$@
; rm -rf
$@
; $(NSINSTALL
) -D
$@
; else true
; fi
1638 export-idl
:: $(SUBMAKEFILES
) $(MAKE_DIRS
)
1640 ifneq ($(XPIDLSRCS
)$(SDK_XPIDLSRCS
),)
1641 ifndef NO_DIST_INSTALL
1642 export-idl
:: $(XPIDLSRCS
) $(SDK_XPIDLSRCS
) $(IDL_DIR
)
1643 $(INSTALL
) $(IFLAGS1
) $^
1646 +$(LOOP_OVER_PARALLEL_DIRS
)
1648 +$(LOOP_OVER_TOOL_DIRS
)
1653 ifneq ($(SDK_XPIDLSRCS
),)
1654 # export .idl files to $(IDL_DIR) & $(SDK_IDL_DIR)
1655 ifndef NO_DIST_INSTALL
1656 export:: $(SDK_XPIDLSRCS
) $(IDL_DIR
)
1657 $(INSTALL
) $(IFLAGS1
) $^
1659 export:: $(SDK_XPIDLSRCS
) $(SDK_IDL_DIR
)
1660 $(INSTALL
) $(IFLAGS1
) $^
1662 export:: $(patsubst %.idl
,$(XPIDL_GEN_DIR
)/%.h
, $(SDK_XPIDLSRCS
)) $(PUBLIC
)
1663 $(INSTALL
) $(IFLAGS1
) $^
1665 export:: $(patsubst %.idl
,$(XPIDL_GEN_DIR
)/%.h
, $(SDK_XPIDLSRCS
)) $(SDK_PUBLIC
)
1666 $(INSTALL
) $(IFLAGS1
) $^
1669 endif # SDK_XPIDLSRCS
1674 ifneq ($(XPIDLSRCS
)$(SDK_XPIDLSRCS
),)
1676 JAVA_XPIDLSRCS
= $(XPIDLSRCS
) $(SDK_XPIDLSRCS
)
1678 # A single IDL file can contain multiple interfaces, which result in multiple
1679 # Java interface files. So use hidden dependency files.
1680 JAVADEPFILES
= $(addprefix $(JAVA_GEN_DIR
)/.
,$(JAVA_XPIDLSRCS
:.idl
=.java.pp
))
1684 GARBAGE_DIRS
+= $(JAVA_GEN_DIR
)
1686 # generate .java files into _javagen/[package name dirs]
1687 _JAVA_GEN_DIR
= $(JAVA_GEN_DIR
)/$(JAVA_IFACES_PKG_NAME
)
1691 $(JAVA_GEN_DIR
)/.
%.java.pp
: %.idl
$(XPIDL_COMPILE
) $(_JAVA_GEN_DIR
)
1693 $(ELOG
) $(XPIDL_COMPILE
) -m java
-w
-I
$(srcdir) -I
$(IDL_DIR
) -o
$(_JAVA_GEN_DIR
)/$* $(_VPATH_SRCS
)
1696 # "Install" generated Java interfaces. We segregate them based on the XPI_NAME.
1697 # If XPI_NAME is not set, install into the "default" directory.
1698 ifneq ($(XPI_NAME
),)
1699 JAVA_INSTALL_DIR
= $(JAVA_DIST_DIR
)/$(XPI_NAME
)
1701 JAVA_INSTALL_DIR
= $(JAVA_DIST_DIR
)/default
1704 $(JAVA_INSTALL_DIR
):
1707 export:: $(JAVA_DIST_DIR
) $(JAVADEPFILES
) $(JAVA_INSTALL_DIR
)
1708 (cd
$(JAVA_GEN_DIR
) && tar $(TAR_CREATE_FLAGS
) - .
) |
(cd
$(JAVA_INSTALL_DIR
) && tar -xf
-)
1710 endif # XPIDLSRCS || SDK_XPIDLSRCS
1711 endif # MOZ_JAVAXPCOM
1713 ################################################################################
1714 # Copy each element of EXTRA_COMPONENTS to $(FINAL_TARGET)/components
1715 ifdef EXTRA_COMPONENTS
1716 libs
:: $(EXTRA_COMPONENTS
)
1717 ifndef NO_DIST_INSTALL
1718 $(INSTALL
) $(IFLAGS1
) $^
$(FINAL_TARGET
)/components
1723 ifdef EXTRA_PP_COMPONENTS
1724 libs
:: $(EXTRA_PP_COMPONENTS
)
1725 ifndef NO_DIST_INSTALL
1727 $(NSINSTALL
) -D
$(FINAL_TARGET
)/components
; \
1729 dest
=$(FINAL_TARGET
)/components
/`basename $$i`; \
1731 $(PYTHON
) $(topsrcdir
)/config
/Preprocessor.py
$(DEFINES
) $(ACDEFINES
) $(XULPPFLAGS
) $$i > $$dest; \
1737 ################################################################################
1738 # Copy each element of EXTRA_JS_MODULES to $(FINAL_TARGET)/modules
1739 ifdef EXTRA_JS_MODULES
1740 libs
:: $(EXTRA_JS_MODULES
)
1741 ifndef NO_DIST_INSTALL
1742 $(INSTALL
) $(IFLAGS1
) $^
$(FINAL_TARGET
)/modules
1747 ifdef EXTRA_PP_JS_MODULES
1748 libs
:: $(EXTRA_PP_JS_MODULES
)
1749 ifndef NO_DIST_INSTALL
1751 $(NSINSTALL
) -D
$(FINAL_TARGET
)/modules
; \
1753 dest
=$(FINAL_TARGET
)/modules
/`basename $$i`; \
1755 $(PYTHON
) $(topsrcdir
)/config
/Preprocessor.py
$(DEFINES
) $(ACDEFINES
) $(XULPPFLAGS
) $$i > $$dest; \
1761 ################################################################################
1764 ifneq (,$(SDK_LIBRARY
))
1766 @if
test ! -d
$@
; then echo Creating
$@
; rm -rf
$@
; $(NSINSTALL
) -D
$@
; else true
; fi
1768 ifndef NO_DIST_INSTALL
1769 libs
:: $(SDK_LIBRARY
) $(SDK_LIB_DIR
)
1770 $(INSTALL
) $(IFLAGS2
) $^
1775 ifneq (,$(SDK_BINARY
))
1777 @if
test ! -d
$@
; then echo Creating
$@
; rm -rf
$@
; $(NSINSTALL
) -D
$@
; else true
; fi
1779 ifndef NO_DIST_INSTALL
1780 libs
:: $(SDK_BINARY
) $(SDK_BIN_DIR
)
1781 $(INSTALL
) $(IFLAGS2
) $^
1786 ################################################################################
1789 JAR_MANIFEST
:= $(srcdir)/jar.mn
1793 +$(LOOP_OVER_PARALLEL_DIRS
)
1795 +$(LOOP_OVER_TOOL_DIRS
)
1797 libs realchrome
:: $(CHROME_DEPS
)
1798 ifndef NO_DIST_INSTALL
1800 if
test -f
$(JAR_MANIFEST
); then \
1801 if
test ! -d
$(FINAL_TARGET
)/chrome
; then
$(NSINSTALL
) -D
$(FINAL_TARGET
)/chrome
; fi
; \
1802 $(PYTHON
) $(MOZILLA_DIR
)/config
/JarMaker.py \
1803 $(QUIET
) -j
$(FINAL_TARGET
)/chrome \
1804 $(MAKE_JARS_FLAGS
) $(XULPPFLAGS
) $(DEFINES
) $(ACDEFINES
) \
1809 ifneq ($(DIST_FILES
),)
1810 libs
:: $(DIST_FILES
)
1812 for f in
$(DIST_FILES
); do \
1813 dest
=$(FINAL_TARGET
)/`basename $$f`; \
1815 $(PYTHON
) $(MOZILLA_DIR
)/config
/Preprocessor.py \
1816 $(XULAPP_DEFINES
) $(DEFINES
) $(ACDEFINES
) $(XULPPFLAGS
) \
1817 $(srcdir)/$$f > $$dest; \
1821 ifneq ($(DIST_CHROME_FILES
),)
1822 libs
:: $(DIST_CHROME_FILES
)
1824 for f in
$(DIST_CHROME_FILES
); do \
1825 dest
=$(FINAL_TARGET
)/chrome
/`basename $$f`; \
1827 $(PYTHON
) $(MOZILLA_DIR
)/config
/Preprocessor.py \
1828 $(XULAPP_DEFINES
) $(DEFINES
) $(ACDEFINES
) $(XULPPFLAGS
) \
1829 $(srcdir)/$$f > $$dest; \
1833 ifneq ($(XPI_PKGNAME
),)
1837 @echo
"Stripping $(XPI_PKGNAME) package directory..."
1838 @echo
$(FINAL_TARGET
)
1839 @cd
$(FINAL_TARGET
) && find .
! -type d \
1849 ! -name
"*.properties" \
1860 $(PLATFORM_EXCLUDE_LIST
) \
1861 -exec
$(STRIP
) $(STRIP_FLAGS
) {} >/dev
/null
2>&1 \
;
1864 @echo
"Packaging $(XPI_PKGNAME).xpi..."
1865 cd
$(FINAL_TARGET
) && $(ZIP
) -qr ..
/$(XPI_PKGNAME
).xpi
*
1868 ifdef INSTALL_EXTENSION_ID
1870 $(error XPI_NAME must be set for INSTALL_EXTENSION_ID
)
1874 $(RM
) -rf
"$(DIST)/bin/extensions/$(INSTALL_EXTENSION_ID)"
1875 $(NSINSTALL
) -D
"$(DIST)/bin/extensions/$(INSTALL_EXTENSION_ID)"
1876 cd
$(FINAL_TARGET
) && tar $(TAR_CREATE_FLAGS
) - . |
(cd
"../../bin/extensions/$(INSTALL_EXTENSION_ID)" && tar -xf
-)
1880 ifneq (,$(filter flat symlink
,$(MOZ_CHROME_FILE_FORMAT
)))
1881 _JAR_REGCHROME_DISABLE_JAR
=1
1883 _JAR_REGCHROME_DISABLE_JAR
=0
1886 REGCHROME
= $(PERL
) -I
$(MOZILLA_DIR
)/config
$(MOZILLA_DIR
)/config
/add-chrome.pl \
1887 $(if
$(filter gtk2
,$(MOZ_WIDGET_TOOLKIT
)),-x
) \
1888 $(if
$(CROSS_COMPILE
),-o
$(OS_ARCH
)) $(FINAL_TARGET
)/chrome
/installed-chrome.txt \
1889 $(_JAR_REGCHROME_DISABLE_JAR
)
1891 REGCHROME_INSTALL
= $(PERL
) -I
$(MOZILLA_DIR
)/config
$(MOZILLA_DIR
)/config
/add-chrome.pl \
1892 $(if
$(filter gtk2
,$(MOZ_WIDGET_TOOLKIT
)),-x
) \
1893 $(if
$(CROSS_COMPILE
),-o
$(OS_ARCH
)) $(DESTDIR
)$(mozappdir
)/chrome
/installed-chrome.txt \
1894 $(_JAR_REGCHROME_DISABLE_JAR
)
1897 ################################################################################
1898 # Testing frameworks support
1899 ################################################################################
1903 ifdef XPCSHELL_TESTS
1905 $(error Must
define MODULE when defining XPCSHELL_TESTS.
)
1908 # Test file installation
1911 for testdir in
$(XPCSHELL_TESTS
); do \
1913 $(srcdir)/$$testdir/*.js \
1914 $(DEPTH
)/_tests
/xpcshell-simple
/$(MODULE
)/$$testdir; \
1917 # Path formats on Windows are hard. We require a topsrcdir formatted so that
1918 # it may be passed to nsILocalFile.initWithPath (in other words, an absolute
1919 # path of the form X:\path\to\topsrcdir), which we store in NATIVE_TOPSRCDIR.
1920 # We require a forward-slashed path to topsrcdir so that it may be combined
1921 # with a relative forward-slashed path for loading scripts, both dynamically
1922 # and statically for head/test/tail JS files. Of course, on non-Windows none
1923 # of this matters, and things will work correctly because everything's
1924 # forward-slashed, everywhere, always.
1925 ifdef CYGWIN_WRAPPER
1926 NATIVE_TOPSRCDIR
:= `cygpath -wa $(topsrcdir)`
1927 FWDSLASH_TOPSRCDIR
:= `cygpath -ma $(topsrcdir)`
1929 FWDSLASH_TOPSRCDIR
:= $(topsrcdir
)
1930 ifeq ($(HOST_OS_ARCH
),WINNT
)
1931 NATIVE_TOPSRCDIR
:= $(subst /,\\,$(WIN_TOP_SRC
))
1933 NATIVE_TOPSRCDIR
:= $(topsrcdir
)
1935 endif # CYGWIN_WRAPPER
1940 for testdir in
$(XPCSHELL_TESTS
); do \
1941 $(RUN_TEST_PROGRAM
) \
1942 $(topsrcdir
)/tools
/test-harness
/xpcshell-simple
/test_all.sh \
1943 $(DIST
)/bin
/xpcshell \
1944 $(FWDSLASH_TOPSRCDIR
) \
1945 $(NATIVE_TOPSRCDIR
) \
1946 $(DEPTH
)/_tests
/xpcshell-simple
/$(MODULE
)/$$testdir; \
1952 $(RUN_TEST_PROGRAM
) \
1953 $(topsrcdir
)/tools
/test-harness
/xpcshell-simple
/test_one.sh \
1954 $(DIST
)/bin
/xpcshell \
1955 $(FWDSLASH_TOPSRCDIR
) \
1956 $(NATIVE_TOPSRCDIR
) \
1957 $(DEPTH
)/_tests
/xpcshell-simple
/$(MODULE
)/$$testdir \
1963 $(RUN_TEST_PROGRAM
) \
1964 $(topsrcdir
)/tools
/test-harness
/xpcshell-simple
/test_one.sh \
1965 $(DIST
)/bin
/xpcshell \
1966 $(FWDSLASH_TOPSRCDIR
) \
1967 $(NATIVE_TOPSRCDIR
) \
1968 $(DEPTH
)/_tests
/xpcshell-simple
/$(MODULE
)/$$testdir \
1971 endif # XPCSHELL_TESTS
1973 endif # ENABLE_TESTS
1976 #############################################################################
1978 #############################################################################
1979 ifdef COMPILER_DEPEND
1981 @echo
"$(MAKE): No need to run depend target.\
1982 Using compiler-based depend." 1>&2
1983 ifeq ($(GNU_CC
)$(GNU_CXX
),)
1985 @echo
"`echo '$(MAKE):'|sed 's/./ /g'`"\
1986 '(Compiler-based depend was turned on by "--enable-md".)' 1>&2
1989 @space
="`echo '$(MAKE): '|sed 's/./ /g'`";\
1990 echo
"$$space"'Since you are using a GNU compiler,\
1991 it is on by default.' 1>&2; \
1992 echo
"$$space"'To turn it off, pass --disable-md to configure.' 1>&2
1995 else # ! COMPILER_DEPEND
1997 ifndef MOZ_AUTO_DEPS
1999 define MAKE_DEPS_NOAUTO
2000 $(MKDEPEND
) -w1024
-o
'.$(OBJ_SUFFIX)' -f-
$(DEFINES
) $(ACDEFINES
) $(INCLUDES
) $< 2>/dev
/null | sed
-e
"s|^[^ ]*/||" > $@
2003 $(MDDEPDIR
)/%.pp
: %.c
2005 @
$(MAKE_DEPS_NOAUTO
)
2007 $(MDDEPDIR
)/%.pp
: %.
cpp
2009 @
$(MAKE_DEPS_NOAUTO
)
2011 $(MDDEPDIR
)/%.pp
: %.s
2013 @
$(MAKE_DEPS_NOAUTO
)
2015 ifneq (,$(OBJS
)$(XPIDLSRCS
)$(SDK_XPIDLSRCS
)$(SIMPLE_PROGRAMS
))
2016 depend
:: $(SUBMAKEFILES
) $(MAKE_DIRS
) $(MDDEPFILES
)
2018 depend
:: $(SUBMAKEFILES
)
2020 +$(LOOP_OVER_PARALLEL_DIRS
)
2022 +$(LOOP_OVER_TOOL_DIRS
)
2024 dependclean
:: $(SUBMAKEFILES
)
2026 +$(LOOP_OVER_PARALLEL_DIRS
)
2028 +$(LOOP_OVER_TOOL_DIRS
)
2030 endif # MOZ_AUTO_DEPS
2032 endif # COMPILER_DEPEND
2035 #############################################################################
2036 # MDDEPDIR is the subdirectory where all the dependency files are placed.
2037 # This uses a make rule (instead of a macro) to support parallel
2038 # builds (-jN). If this were done in the LOOP_OVER_DIRS macro, two
2039 # processes could simultaneously try to create the same directory.
2042 @if
test ! -d
$@
; then echo Creating
$@
; rm -rf
$@
; mkdir
$@
; else true
; fi
2044 ifneq (,$(filter-out all chrome default
export realchrome tools
clean clobber clobber_all
distclean realclean,$(MAKECMDGOALS
)))
2045 ifneq (,$(OBJS
)$(XPIDLSRCS
)$(SDK_XPIDLSRCS
)$(SIMPLE_PROGRAMS
))
2046 MDDEPEND_FILES
:= $(strip $(wildcard $(MDDEPDIR
)/*.pp
))
2048 ifneq (,$(MDDEPEND_FILES
))
2050 # The script mddepend.pl checks the dependencies and writes to stdout
2051 # one rule to force out-of-date objects. For example,
2052 # foo.o boo.o: FORCE
2053 # The script has an advantage over including the *.pp files directly
2054 # because it handles the case when header files are removed from the build.
2055 # 'make' would complain that there is no way to build missing headers.
2056 ifeq (,$(MAKE_RESTARTS
))
2057 $(MDDEPDIR
)/.
all.pp
: FORCE
2058 @
$(PERL
) $(BUILD_TOOLS
)/mddepend.pl
$@
$(MDDEPEND_FILES
)
2060 -include $(MDDEPDIR
)/.
all.pp
2062 include $(MDDEPEND_FILES
)
2068 #############################################################################
2070 -include $(topsrcdir
)/$(MOZ_BUILD_APP
)/app-rules.mk
2071 -include $(MY_RULES
)
2074 # This speeds up gmake's processing if these files don't exist.
2076 $(MY_CONFIG
) $(MY_RULES
):
2080 # Generate Emacs tags in a file named TAGS if ETAGS was set in $(MY_CONFIG)
2084 ifneq ($(CSRCS
)$(CPPSRCS
)$(HEADERS
),)
2086 TAGS
:: $(CSRCS
) $(CPPSRCS
) $(HEADERS
)
2087 $(ETAGS
) $(CSRCS
) $(CPPSRCS
) $(HEADERS
)
2091 ################################################################################
2092 # Special gmake rules.
2093 ################################################################################
2097 # Disallow parallel builds with MSVC < 8
2099 ifneq (,$(filter 1200 1300 1310,$(_MSC_VER
)))
2104 # Re-define the list of default suffixes, so gmake won't have to churn through
2105 # hundreds of built-in suffix rules for stuff we don't need.
2110 # Fake targets. Always run these rules, even if a file/directory with that
2111 # name already exists.
2113 .PHONY
: all all_platforms alltags boot checkout chrome realchrome
clean clobber clobber_all
export install libs makefiles
realclean run_viewer run_apprunner tools
$(DIRS
) $(TOOL_DIRS
) FORCE
check check-interactive check-one
2115 # Used as a dependency to force targets to rebuild
2118 # Delete target if error occurs when building target
2121 # Properly set LIBPATTERNS for the platform
2122 .LIBPATTERNS
= $(if
$(IMPORT_LIB_SUFFIX
),$(LIB_PREFIX
)%.
$(IMPORT_LIB_SUFFIX
)) $(LIB_PREFIX
)%.
$(LIB_SUFFIX
) $(DLL_PREFIX
)%$(DLL_SUFFIX
)
2126 TAGS
: $(SUBMAKEFILES
) $(CSRCS
) $(CPPSRCS
) $(wildcard *.h
)
2127 -etags
$(CSRCS
) $(CPPSRCS
) $(wildcard *.h
)
2128 +$(LOOP_OVER_PARALLEL_DIRS
)
2146 echo-requires-recursive
::
2147 ifdef _REPORT_ALL_DIRS
2148 @echo
$(subst $(topsrcdir
)/,,$(srcdir)): $(MODULE
): $(REQUIRES
)
2150 @
$(if
$(REQUIRES
),echo
$(subst $(topsrcdir
)/,,$(srcdir)): $(MODULE
): $(REQUIRES
))
2152 +$(LOOP_OVER_PARALLEL_DIRS
)
2156 @
$(topsrcdir
)/build
/unix
/print-depth-path.sh
2159 @
$(topsrcdir
)/build
/package
/rpm
/print-module-name.sh
2161 echo-module-filelist
:
2162 @
$(topsrcdir
)/build
/package
/rpm
/print-module-filelist.sh
2165 ifneq (,$(filter $(PROGRAM
) $(HOST_PROGRAM
) $(SIMPLE_PROGRAMS
) $(HOST_LIBRARY
) $(LIBRARY
) $(SHARED_LIBRARY
),$(TARGETS
)))
2166 @echo
--------------------------------------------------------------------------------
2167 @echo
"PROGRAM = $(PROGRAM)"
2168 @echo
"SIMPLE_PROGRAMS = $(SIMPLE_PROGRAMS)"
2169 @echo
"LIBRARY = $(LIBRARY)"
2170 @echo
"SHARED_LIBRARY = $(SHARED_LIBRARY)"
2171 @echo
"SHARED_LIBRARY_LIBS = $(SHARED_LIBRARY_LIBS)"
2172 @echo
"LIBS = $(LIBS)"
2173 @echo
"DEF_FILE = $(DEF_FILE)"
2174 @echo
"IMPORT_LIBRARY = $(IMPORT_LIBRARY)"
2175 @echo
"STATIC_LIBS = $(STATIC_LIBS)"
2176 @echo
"SHARED_LIBS = $(SHARED_LIBS)"
2177 @echo
"EXTRA_DSO_LIBS = $(EXTRA_DSO_LIBS)"
2178 @echo
"EXTRA_DSO_LDOPTS = $(EXTRA_DSO_LDOPTS)"
2179 @echo
"DEPENDENT_LIBS = $(DEPENDENT_LIBS)"
2180 @echo
--------------------------------------------------------------------------------
2182 +$(LOOP_OVER_PARALLEL_DIRS
)
2186 @echo
"MOZ_BUILD_ROOT = $(MOZ_BUILD_ROOT)"
2187 @echo
"MOZ_WIDGET_TOOLKIT = $(MOZ_WIDGET_TOOLKIT)"
2189 @echo
"CXX = $(CXX)"
2190 @echo
"CCC = $(CCC)"
2191 @echo
"CPP = $(CPP)"
2194 @echo
"IMPLIB = $(IMPLIB)"
2195 @echo
"FILTER = $(FILTER)"
2196 @echo
"MKSHLIB = $(MKSHLIB)"
2197 @echo
"MKCSHLIB = $(MKCSHLIB)"
2199 @echo
"CFLAGS = $(CFLAGS)"
2200 @echo
"OS_CFLAGS = $(OS_CFLAGS)"
2201 @echo
"COMPILE_CFLAGS = $(COMPILE_CFLAGS)"
2202 @echo
"CXXFLAGS = $(CXXFLAGS)"
2203 @echo
"OS_CXXFLAGS = $(OS_CXXFLAGS)"
2204 @echo
"COMPILE_CXXFLAGS = $(COMPILE_CXXFLAGS)"
2205 @echo
"COMPILE_CMFLAGS = $(COMPILE_CMFLAGS)"
2206 @echo
"COMPILE_CMMFLAGS = $(COMPILE_CMMFLAGS)"
2207 @echo
"LDFLAGS = $(LDFLAGS)"
2208 @echo
"OS_LDFLAGS = $(OS_LDFLAGS)"
2209 @echo
"DSO_LDOPTS = $(DSO_LDOPTS)"
2210 @echo
"OS_INCLUDES = $(OS_INCLUDES)"
2211 @echo
"OS_LIBS = $(OS_LIBS)"
2212 @echo
"EXTRA_LIBS = $(EXTRA_LIBS)"
2213 @echo
"BIN_FLAGS = $(BIN_FLAGS)"
2214 @echo
"INCLUDES = $(INCLUDES)"
2215 @echo
"DEFINES = $(DEFINES)"
2216 @echo
"ACDEFINES = $(ACDEFINES)"
2217 @echo
"BIN_SUFFIX = $(BIN_SUFFIX)"
2218 @echo
"LIB_SUFFIX = $(LIB_SUFFIX)"
2219 @echo
"DLL_SUFFIX = $(DLL_SUFFIX)"
2220 @echo
"IMPORT_LIB_SUFFIX = $(IMPORT_LIB_SUFFIX)"
2221 @echo
"INSTALL = $(INSTALL)"
2224 @echo
"HOST_CC = $(HOST_CC)"
2225 @echo
"HOST_CXX = $(HOST_CXX)"
2226 @echo
"HOST_CFLAGS = $(HOST_CFLAGS)"
2227 @echo
"HOST_LDFLAGS = $(HOST_LDFLAGS)"
2228 @echo
"HOST_LIBS = $(HOST_LIBS)"
2229 @echo
"HOST_EXTRA_LIBS = $(HOST_EXTRA_LIBS)"
2230 @echo
"HOST_EXTRA_DEPS = $(HOST_EXTRA_DEPS)"
2231 @echo
"HOST_PROGRAM = $(HOST_PROGRAM)"
2232 @echo
"HOST_OBJS = $(HOST_OBJS)"
2233 @echo
"HOST_PROGOBJS = $(HOST_PROGOBJS)"
2234 @echo
"HOST_LIBRARY = $(HOST_LIBRARY)"
2237 @echo
"Build Modules = $(BUILD_MODULES)"
2238 @echo
"Module dirs = $(BUILD_MODULE_DIRS)"
2241 ifneq (,$(filter $(PROGRAM
) $(SIMPLE_PROGRAMS
) $(LIBRARY
) $(SHARED_LIBRARY
),$(TARGETS
)))
2242 zip
$(DEPTH
)/makefiles
$(subst $(topsrcdir
),$(MOZ_SRC
)/mozilla
,$(srcdir)/Makefile.in
)
2244 +$(LOOP_OVER_PARALLEL_DIRS
)
2249 $(DOXYGEN
) $(DEPTH
)/config
/doxygen.cfg
2251 check:: $(SUBMAKEFILES
) $(MAKE_DIRS
)
2252 +$(LOOP_OVER_PARALLEL_DIRS
)
2254 +$(LOOP_OVER_TOOL_DIRS
)