/toolkit/library/Makefile.in

http://github.com/zpao/v8monkey · Autoconf · 600 lines · 478 code · 104 blank · 18 comment · 0 complexity · 775dae622f65947e5bf6d6383092ff43 MD5 · raw file

  1. # This Source Code Form is subject to the terms of the Mozilla Public
  2. # License, v. 2.0. If a copy of the MPL was not distributed with this file,
  3. # You can obtain one at http://mozilla.org/MPL/2.0/.
  4. DEPTH = ../..
  5. topsrcdir = @top_srcdir@
  6. srcdir = @srcdir@
  7. VPATH = @srcdir@
  8. include $(DEPTH)/config/autoconf.mk
  9. include $(topsrcdir)/rdf/util/src/objs.mk
  10. include $(topsrcdir)/intl/unicharutil/util/objs.mk
  11. MODULE = libxul
  12. LIBRARY_NAME = xul
  13. FORCE_SHARED_LIB = 1
  14. MOZILLA_INTERNAL_API = 1
  15. ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
  16. # This is going to be a framework named "XUL", not an ordinary library named
  17. # "libxul.dylib"
  18. LIBRARY_NAME=XUL
  19. # Setting MAKE_FRAMEWORK makes DLL_PREFIX and DLL_SUFFIX be ignored when
  20. # setting SHARED_LIBRARY; we need to leave DLL_PREFIX and DLL_SUFFIX
  21. # as-is so that dependencies of the form -ltracemalloc still work.
  22. MAKE_FRAMEWORK=1
  23. endif
  24. VPATH += $(topsrcdir)/build/
  25. CPPSRCS += $(STDCXX_COMPAT)
  26. ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_)
  27. CPPSRCS += dlldeps-xul.cpp
  28. endif
  29. ifeq ($(OS_ARCH),OS2)
  30. CPPSRCS += dlldeps-xul.cpp
  31. endif
  32. ifneq (,$(MOZ_ENABLE_GTK2))
  33. DEFINES += -DMOZ_ENABLE_GTK2
  34. endif
  35. SHARED_LIBRARY_LIBS += \
  36. $(DEPTH)/toolkit/xre/$(LIB_PREFIX)xulapp_s.$(LIB_SUFFIX) \
  37. $(NULL)
  38. SHARED_LIBRARY_LIBS += \
  39. $(foreach component,$(COMPONENT_LIBS),$(DEPTH)/staticlib/components/$(LIB_PREFIX)$(component).$(LIB_SUFFIX)) \
  40. $(foreach lib,$(STATIC_LIBS),$(DEPTH)/staticlib/$(LIB_PREFIX)$(lib).$(LIB_SUFFIX)) \
  41. $(NULL)
  42. CPPSRCS += \
  43. nsStaticXULComponents.cpp \
  44. $(NULL)
  45. ifeq ($(OS_ARCH),WINNT)
  46. REQUIRES += widget gfx
  47. CPPSRCS += \
  48. nsDllMain.cpp \
  49. $(NULL)
  50. endif
  51. ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_)
  52. CPPSRCS += \
  53. nsGFXDeps.cpp \
  54. $(NULL)
  55. RCINCLUDE = xulrunner.rc
  56. ifndef MOZ_NATIVE_ZLIB
  57. CPPSRCS += dlldeps-zlib.cpp
  58. endif
  59. LOCAL_INCLUDES += -I$(topsrcdir)/widget/windows
  60. LOCAL_INCLUDES += -I$(topsrcdir)/xpcom/base
  61. endif
  62. ifneq (,$(filter WINNT OS2,$(OS_ARCH)))
  63. DEFINES += -DZLIB_DLL=1
  64. endif
  65. ifeq ($(OS_ARCH),OS2)
  66. REQUIRES += widget gfx
  67. CPPSRCS += \
  68. nsGFXDeps.cpp \
  69. $(NULL)
  70. ifndef MOZ_NATIVE_ZLIB
  71. CPPSRCS += dlldeps-zlib.cpp
  72. endif
  73. RESFILE = xulrunos2.res
  74. RCFLAGS += -i $(topsrcdir)/widget/os2
  75. LOCAL_INCLUDES += -I$(topsrcdir)/widget/os2
  76. LOCAL_INCLUDES += -I$(topsrcdir)/xpcom/base
  77. endif
  78. # dependent libraries
  79. STATIC_LIBS += \
  80. jsipc_s \
  81. domipc_s \
  82. domplugins_s \
  83. mozipc_s \
  84. mozipdlgen_s \
  85. ipcshell_s \
  86. gfx2d \
  87. gfxipc_s \
  88. hal_s \
  89. $(NULL)
  90. ifdef MOZ_B2G_RIL #{
  91. STATIC_LIBS += mozril_s
  92. endif #}
  93. ifdef MOZ_IPDL_TESTS
  94. STATIC_LIBS += ipdlunittest_s
  95. endif
  96. ifeq (Linux,$(OS_ARCH))
  97. ifneq (Android,$(OS_TARGET))
  98. OS_LIBS += -lrt
  99. endif
  100. endif
  101. STATIC_LIBS += \
  102. xpcom_core \
  103. ucvutil_s \
  104. chromium_s \
  105. snappy_s \
  106. $(NULL)
  107. # component libraries
  108. COMPONENT_LIBS += \
  109. necko \
  110. uconv \
  111. i18n \
  112. chardet \
  113. jar$(VERSION_NUMBER) \
  114. startupcache \
  115. pref \
  116. htmlpars \
  117. imglib2 \
  118. gkgfx \
  119. gklayout \
  120. docshell \
  121. embedcomponents \
  122. webbrwsr \
  123. nsappshell \
  124. txmgr \
  125. commandlines \
  126. toolkitcomps \
  127. pipboot \
  128. pipnss \
  129. appcomps \
  130. jsreflect \
  131. composer \
  132. telemetry \
  133. jsinspector \
  134. jsdebugger \
  135. storagecomps \
  136. rdf \
  137. windowds \
  138. $(NULL)
  139. ifdef BUILD_CTYPES
  140. COMPONENT_LIBS += \
  141. jsctypes \
  142. $(NULL)
  143. endif
  144. COMPONENT_LIBS += \
  145. jsperf \
  146. gkplugin \
  147. $(NULL)
  148. ifdef MOZ_XUL
  149. ifdef MOZ_ENABLE_GTK2
  150. COMPONENT_LIBS += \
  151. unixproxy \
  152. $(NULL)
  153. endif
  154. endif
  155. ifneq (,$(filter cocoa,$(MOZ_WIDGET_TOOLKIT)))
  156. COMPONENT_LIBS += \
  157. osxproxy \
  158. $(NULL)
  159. endif
  160. ifdef MOZ_XUL
  161. ifeq (qt,$(MOZ_WIDGET_TOOLKIT))
  162. COMPONENT_LIBS += \
  163. unixproxy \
  164. $(NULL)
  165. endif
  166. endif
  167. ifneq (,$(filter windows,$(MOZ_WIDGET_TOOLKIT)))
  168. COMPONENT_LIBS += \
  169. windowsproxy \
  170. $(NULL)
  171. endif
  172. ifdef MOZ_JSDEBUGGER
  173. DEFINES += -DMOZ_JSDEBUGGER
  174. COMPONENT_LIBS += \
  175. jsd \
  176. $(NULL)
  177. endif
  178. ifdef MOZ_PREF_EXTENSIONS
  179. DEFINES += -DMOZ_PREF_EXTENSIONS
  180. COMPONENT_LIBS += \
  181. autoconfig \
  182. $(NULL)
  183. endif
  184. ifdef MOZ_AUTH_EXTENSION
  185. COMPONENT_LIBS += auth
  186. DEFINES += -DMOZ_AUTH_EXTENSION
  187. endif
  188. ifdef MOZ_PERMISSIONS
  189. COMPONENT_LIBS += cookie permissions
  190. DEFINES += -DMOZ_PERMISSIONS
  191. endif
  192. ifdef MOZ_UNIVERSALCHARDET
  193. COMPONENT_LIBS += universalchardet
  194. DEFINES += -DMOZ_UNIVERSALCHARDET
  195. endif
  196. ifeq (,$(filter android gonk qt os2 cocoa windows,$(MOZ_WIDGET_TOOLKIT)))
  197. ifdef MOZ_XUL
  198. COMPONENT_LIBS += fileview
  199. DEFINES += -DMOZ_FILEVIEW
  200. endif
  201. endif
  202. ifdef MOZ_PLACES
  203. COMPONENT_LIBS += \
  204. places \
  205. $(NULL)
  206. endif
  207. ifdef MOZ_XUL
  208. COMPONENT_LIBS += \
  209. tkautocomplete \
  210. satchel \
  211. pippki \
  212. $(NULL)
  213. endif
  214. ifdef MOZ_ENABLE_GTK2
  215. COMPONENT_LIBS += widget_gtk2
  216. endif
  217. ifdef MOZ_ENABLE_GTK2
  218. ifdef MOZ_X11
  219. STATIC_LIBS += gtkxtbin
  220. endif
  221. endif
  222. # Platform-specific icon channel stuff - supported mostly-everywhere
  223. ifneq (,$(filter windows os2 mac cocoa gtk2 qt android,$(MOZ_WIDGET_TOOLKIT)))
  224. DEFINES += -DICON_DECODER
  225. COMPONENT_LIBS += imgicon
  226. endif
  227. ifeq ($(MOZ_WIDGET_TOOLKIT),android)
  228. COMPONENT_LIBS += widget_android
  229. STATIC_LIBS += skia_npapi
  230. endif
  231. ifeq ($(MOZ_WIDGET_TOOLKIT),gonk)
  232. COMPONENT_LIBS += widget_gonk
  233. endif
  234. STATIC_LIBS += thebes gl ycbcr
  235. COMPONENT_LIBS += profiler
  236. ifeq (windows,$(MOZ_WIDGET_TOOLKIT))
  237. COMPONENT_LIBS += widget_windows
  238. endif
  239. ifeq (os2,$(MOZ_WIDGET_TOOLKIT))
  240. COMPONENT_LIBS += wdgtos2
  241. endif
  242. ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
  243. COMPONENT_LIBS += widget_mac
  244. endif
  245. ifeq (qt,$(MOZ_WIDGET_TOOLKIT))
  246. COMPONENT_LIBS += widget_qt
  247. endif
  248. ifdef ACCESSIBILITY
  249. COMPONENT_LIBS += accessibility
  250. endif
  251. ifdef MOZ_ENABLE_XREMOTE
  252. COMPONENT_LIBS += remoteservice
  253. endif
  254. ifdef MOZ_SPELLCHECK
  255. DEFINES += -DMOZ_SPELLCHECK
  256. COMPONENT_LIBS += spellchecker
  257. endif
  258. ifdef MOZ_ZIPWRITER
  259. DEFINES += -DMOZ_ZIPWRITER
  260. COMPONENT_LIBS += zipwriter
  261. endif
  262. COMPONENT_LIBS += services-crypto
  263. ifdef MOZ_DEBUG
  264. ifdef ENABLE_TESTS
  265. COMPONENT_LIBS += gkdebug
  266. endif
  267. endif
  268. ifdef MOZ_APP_COMPONENT_LIBS
  269. COMPONENT_LIBS += $(MOZ_APP_COMPONENT_LIBS)
  270. endif
  271. ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
  272. OS_LIBS += -framework OpenGL -lcups
  273. endif
  274. EXTRA_DSO_LDOPTS += \
  275. $(LIBS_DIR) \
  276. $(JPEG_LIBS) \
  277. $(PNG_LIBS) \
  278. $(QCMS_LIBS) \
  279. $(MOZ_JS_LIBS) \
  280. $(NSS_LIBS) \
  281. $(MOZ_CAIRO_LIBS) \
  282. $(MOZ_HARFBUZZ_LIBS) \
  283. $(MOZ_APP_EXTRA_LIBS) \
  284. $(SQLITE_LIBS) \
  285. $(NULL)
  286. ifdef MOZ_GRAPHITE
  287. EXTRA_DSO_LDOPTS += $(MOZ_GRAPHITE_LIBS)
  288. endif
  289. ifdef MOZ_NATIVE_ZLIB
  290. EXTRA_DSO_LDOPTS += $(ZLIB_LIBS)
  291. else
  292. EXTRA_DSO_LDOPTS += $(MOZ_ZLIB_LIBS)
  293. endif
  294. ifdef MOZ_NATIVE_HUNSPELL
  295. EXTRA_DSO_LDOPTS += $(MOZ_HUNSPELL_LIBS)
  296. endif
  297. ifdef MOZ_NATIVE_LIBEVENT
  298. EXTRA_DSO_LDOPTS += $(MOZ_LIBEVENT_LIBS)
  299. endif
  300. ifdef MOZ_NATIVE_LIBVPX
  301. EXTRA_DSO_LDOPTS += $(MOZ_LIBVPX_LIBS)
  302. endif
  303. EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,gkmedias,$(DIST)/lib)
  304. ifdef MOZ_SYDNEYAUDIO
  305. ifeq ($(OS_ARCH),Linux)
  306. EXTRA_DSO_LDOPTS += $(MOZ_ALSA_LIBS)
  307. endif
  308. endif
  309. ifdef HAVE_CLOCK_MONOTONIC
  310. EXTRA_DSO_LDOPTS += $(REALTIME_LIBS)
  311. endif
  312. ifdef MOZ_ENABLE_SKIA
  313. EXTRA_DSO_LDOPTS += $(MOZ_SKIA_LIBS)
  314. endif
  315. ifeq (android,$(MOZ_WIDGET_TOOLKIT))
  316. OS_LIBS += -lGLESv2
  317. endif
  318. ifeq (gonk,$(MOZ_WIDGET_TOOLKIT))
  319. OS_LIBS += \
  320. -lui \
  321. -lmedia \
  322. -lhardware_legacy \
  323. -lhardware \
  324. -lutils \
  325. -lcutils \
  326. -lcamera_client \
  327. -lbinder \
  328. -lsensorservice \
  329. $(NULL)
  330. ifdef MOZ_B2G_BT
  331. OS_LIBS += -lbluedroid
  332. endif
  333. endif
  334. EXTRA_DEPS += \
  335. $(topsrcdir)/intl/unicharutil/util/objs.mk \
  336. $(topsrcdir)/rdf/util/src/objs.mk \
  337. $(NULL)
  338. CPPSRCS += \
  339. $(INTL_UNICHARUTIL_UTIL_LCPPSRCS) \
  340. $(RDF_UTIL_SRC_LCPPSRCS) \
  341. $(NULL)
  342. GARBAGE += \
  343. $(INTL_UNICHARUTIL_UTIL_LCPPSRCS) \
  344. $(wildcard *.$(OBJ_SUFFIX)) \
  345. $(RDF_UTIL_SRC_LCPPSRCS) \
  346. $(NULL)
  347. LOCAL_INCLUDES += -I$(topsrcdir)/intl/unicharutil/util \
  348. -I$(topsrcdir)/intl/unicharutil/src
  349. ifneq (,$(filter OS2 WINNT,$(OS_ARCH)))
  350. SDK_LIBRARY = $(IMPORT_LIBRARY)
  351. else
  352. SDK_LIBRARY = $(SHARED_LIBRARY)
  353. endif
  354. # See bug 653662 - some builders are hitting an internal size limit on
  355. # incremental builds. Disable incremental linking for debug builds on VC8 or
  356. # on 32-bit hosts.
  357. # See: http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/c34d5c37-ca4a-4580-9c7c-4379a8c76d1f/
  358. ifeq ($(OS_ARCH),WINNT)
  359. IS_32BIT_HOST := $(if $(filter AMD64,$(PROCESSOR_ARCHITECTURE) $(PROCESSOR_ARCHITEW6432)),,yes)
  360. ifneq (,$(or $(filter 1400,$(_MSC_VER)),$(IS_32BIT_HOST)))
  361. ifdef MOZ_DEBUG
  362. EXTRA_DSO_LDOPTS += -INCREMENTAL:NO
  363. endif
  364. endif
  365. endif
  366. EXTRA_DSO_LDOPTS += $(LIBS_DIR) $(EXTRA_DSO_LIBS)
  367. DEFINES += -DIMPL_XREAPI
  368. EXTRA_DSO_LDOPTS += $(NSPR_LIBS) $(MOZALLOC_LIB)
  369. ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
  370. CXXFLAGS += $(TK_CFLAGS)
  371. OS_LIBS += \
  372. -framework SystemConfiguration \
  373. -framework QuickTime \
  374. -framework IOKit \
  375. -F/System/Library/PrivateFrameworks -framework CoreUI \
  376. $(TK_LIBS) \
  377. $(NULL)
  378. endif
  379. ifeq ($(OS_ARCH),Darwin)
  380. ifdef MOZ_SYDNEYAUDIO
  381. OS_LIBS += \
  382. -framework Carbon \
  383. -framework CoreAudio \
  384. -framework AudioToolbox \
  385. -framework AudioUnit \
  386. -framework IOKit \
  387. -framework Foundation \
  388. -framework AppKit \
  389. $(NULL)
  390. endif
  391. endif
  392. ifneq (,$(filter NetBSD OpenBSD,$(OS_ARCH)))
  393. ifdef MOZ_SYDNEYAUDIO
  394. EXTRA_DSO_LDOPTS += -lossaudio
  395. endif
  396. endif
  397. ifdef MOZ_PLATFORM_MAEMO
  398. EXTRA_DSO_LDOPTS += $(MOZ_PLATFORM_MAEMO_LIBS)
  399. endif
  400. ifdef MOZ_ENABLE_LIBCONIC
  401. EXTRA_DSO_LDOPTS += $(LIBCONIC_LIBS)
  402. endif
  403. ifdef MOZ_ENABLE_DBUS
  404. EXTRA_DSO_LDOPTS += $(MOZ_DBUS_GLIB_LIBS)
  405. endif
  406. ifeq (gtk2,$(MOZ_WIDGET_TOOLKIT))
  407. EXTRA_DSO_LDOPTS += $(XLDFLAGS) $(XLIBS) $(XEXT_LIBS) $(XCOMPOSITE_LIBS) $(MOZ_PANGO_LIBS) $(MOZ_GTK2_LIBS) $(XT_LIBS) -lgthread-2.0
  408. EXTRA_DSO_LDOPTS += $(FT2_LIBS)
  409. endif
  410. ifeq (qt,$(MOZ_WIDGET_TOOLKIT))
  411. EXTRA_DSO_LDOPTS += $(XLDFLAGS) $(XLIBS) $(XT_LIBS) $(MOZ_QT_LIBS) -lgthread-2.0
  412. EXTRA_DSO_LDOPTS += $(FT2_LIBS) $(MOZ_PANGO_LIBS)
  413. EXTRA_DSO_LDOPTS += $(LIBXUL_DIST)/../widget/qt/faststartupqt/$(LIB_PREFIX)faststartupqt.$(LIB_SUFFIX)
  414. endif
  415. ifdef MOZ_TREE_FREETYPE
  416. ifndef MOZ_TREE_CAIRO
  417. EXTRA_DSO_LDOPTS += $(FT2_LIBS)
  418. endif
  419. endif
  420. ifdef MOZ_ENABLE_STARTUP_NOTIFICATION
  421. EXTRA_DSO_LDOPTS += $(MOZ_STARTUP_NOTIFICATION_LIBS)
  422. endif
  423. ifdef MOZ_ENABLE_LIBPROXY
  424. EXTRA_DSO_LDOPTS += $(MOZ_LIBPROXY_LIBS)
  425. endif
  426. ifeq ($(OS_ARCH),SunOS)
  427. ifdef GNU_CC
  428. EXTRA_DSO_LDOPTS += -lelf
  429. else
  430. EXTRA_DSO_LDOPTS += -lelf -ldemangle
  431. endif
  432. endif
  433. ifeq ($(OS_ARCH),WINNT)
  434. OS_LIBS += $(call EXPAND_LIBNAME,shell32 ole32 uuid version winspool comdlg32 imm32 winmm wsock32 msimg32 shlwapi psapi ws2_32 dbghelp rasapi32 rasdlg)
  435. ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC))
  436. OS_LIBS += $(call EXPAND_LIBNAME,imagehlp)
  437. endif
  438. ifdef MOZ_CRASHREPORTER
  439. OS_LIBS += $(call EXPAND_LIBNAME,wininet)
  440. endif
  441. ifdef ACCESSIBILITY
  442. OS_LIBS += $(call EXPAND_LIBNAME,oleacc)
  443. endif
  444. ifdef _MSC_VER
  445. OS_LIBS += $(call EXPAND_LIBNAME,delayimp)
  446. EXTRA_DSO_LDOPTS += \
  447. -DELAYLOAD:gkmedias.dll \
  448. -DELAYLOAD:rasapi32.dll \
  449. -DELAYLOAD:rasdlg.dll \
  450. -DELAYLOAD:comdlg32.dll \
  451. -DELAYLOAD:winspool.drv \
  452. $(NULL)
  453. ifdef ACCESSIBILITY
  454. EXTRA_DSO_LDOPTS += -DELAYLOAD:oleacc.dll
  455. endif
  456. endif
  457. endif # WINNT
  458. ifdef MOZ_JPROF
  459. EXTRA_DSO_LDOPTS += -ljprof
  460. endif
  461. ifdef MOZ_ENABLE_QT
  462. EXTRA_DSO_LDOPTS += $(MOZ_QT_LDFLAGS) $(XEXT_LIBS)
  463. endif
  464. include $(topsrcdir)/config/rules.mk
  465. export:: $(RDF_UTIL_SRC_CPPSRCS) $(INTL_UNICHARUTIL_UTIL_CPPSRCS)
  466. $(INSTALL) $^ .
  467. # need widget/windows for resource.h (included from widget.rc)
  468. LOCAL_INCLUDES += \
  469. -I$(topsrcdir)/config \
  470. -I$(topsrcdir)/widget/windows \
  471. $(NULL)
  472. OS_LIBS += $(LIBICONV)
  473. DEFINES += \
  474. -D_IMPL_NS_COM \
  475. -D_IMPL_NS_STRINGAPI \
  476. -DEXPORT_XPT_API \
  477. -DEXPORT_XPTC_API \
  478. -D_IMPL_NS_GFX \
  479. -D_IMPL_NS_WIDGET \
  480. $(NULL)
  481. ifeq ($(MOZ_WIDGET_TOOLKIT),windows)
  482. OS_LIBS += $(call EXPAND_LIBNAME,usp10 oleaut32)
  483. endif
  484. ifeq ($(OS_ARCH),OpenBSD)
  485. # Needed by nsAuthGSSAPI
  486. EXTRA_DSO_LDOPTS += -lkrb5 -lcrypto
  487. endif
  488. ifdef MOZ_DEBUG
  489. ifdef ENABLE_TESTS
  490. DEFINES += -DENABLE_LAYOUTDEBUG
  491. endif
  492. endif
  493. ifeq (WINNT_1,$(OS_TARGET)_$(MOZ_PROFILE_USE))
  494. # Wrap linker to measure peak virtual memory usage.
  495. LD := $(PYTHON) $(topsrcdir)/build/link.py $(CURDIR)/linker-vsize $(LD)
  496. endif