Makefile 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. # $OpenBSD: Makefile,v 1.325 2017/06/03 15:01:46 espie Exp $
  2. USE_WXNEEDED= Yes
  3. ONLY_FOR_ARCHS= i386 amd64
  4. DPB_PROPERTIES= parallel
  5. COMMENT= Chromium browser
  6. V= 58.0.3029.110
  7. DISTNAME= chromium-${V}
  8. DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
  9. CATEGORIES= www
  10. HOMEPAGE= https://www.chromium.org/Home
  11. MAINTAINER= Robert Nagy <robert@openbsd.org>
  12. EXTRACT_SUFX= .tar.xz
  13. FLAVORS= debug
  14. FLAVOR?=
  15. # BSD-like
  16. PERMIT_PACKAGE_CDROM= patents
  17. PERMIT_PACKAGE_FTP = Yes
  18. MASTER_SITES= https://commondatastorage.googleapis.com/chromium-browser-official/
  19. MASTER_SITES0= http://nerd.hu/distfiles/
  20. MODULES= lang/python
  21. COMPILER = clang gcc
  22. MODPY_RUNDEP= No
  23. PATCHORIG= .orig.port
  24. # uses pledge()
  25. WANTLIB += X11 Xext Xfixes Xrender Xss c cairo cups dbus-1 event
  26. WANTLIB += execinfo expat fontconfig freetype gconf-2 gdk-x11-2.0
  27. WANTLIB += gdk_pixbuf-2.0 glib-2.0 gobject-2.0 gtk-x11-2.0
  28. WANTLIB += m pango-1.0 pangocairo-1.0
  29. WANTLIB += png pthread
  30. WANTLIB += xml2 xslt
  31. WANTLIB += sndio
  32. WANTLIB += Xcomposite
  33. WANTLIB += ${LIBECXX}
  34. WANTLIB += Xi Xtst
  35. WANTLIB += Xdamage
  36. WANTLIB += Xcursor Xrandr gio-2.0
  37. WANTLIB += nspr4 nss3 nssutil3 smime3
  38. WANTLIB += atk-1.0 gmodule-2.0
  39. WANTLIB += X11-xcb xcb
  40. RUN_DEPENDS= devel/xdg-utils \
  41. devel/desktop-file-utils \
  42. fonts/noto/fonts \
  43. graphics/libexif \
  44. x11/gnome/libgnome-keyring \
  45. x11/gtk+3,-guic
  46. BUILD_DEPENDS= archivers/bzip2 \
  47. devel/gperf \
  48. devel/bison \
  49. lang/node \
  50. devel/yasm \
  51. shells/bash \
  52. sysutils/flock \
  53. sysutils/pciutils \
  54. x11/gnome/libgnome-keyring \
  55. devel/ninja \
  56. x11/gtk+3 \
  57. ${MODGCC4_CPPDEP}
  58. LIB_DEPENDS= devel/libexecinfo \
  59. security/nss \
  60. devel/gconf2 \
  61. textproc/libxslt \
  62. x11/gtk+2 \
  63. print/cups,-libs \
  64. ${MODGCC4_CPPLIBDEP}
  65. .include <bsd.own.mk>
  66. # Set BUILDTYPE to Debug for a debug build
  67. .if ${FLAVOR:Mdebug}
  68. BUILDTYPE= Debug
  69. .else
  70. BUILDTYPE= Release
  71. .endif
  72. ALL_TARGET= chrome
  73. TEST_TARGET= base_unittests
  74. CONFIGURE_STYLE=none # prevent python MODULE from overriding do-build
  75. BUILDDIR= ${WRKSRC}/out/${BUILDTYPE}
  76. # These libraries are used from the system and the build infrastructure
  77. # removes them from the bundled third_party directory and replaces them
  78. # with hooks to use them from the system.
  79. GN_SYSTEM_LIBS= libevent \
  80. libxml \
  81. libxslt \
  82. yasm
  83. GN_ARGS= enable_nacl=false \
  84. is_debug=false \
  85. enable_webrtc=false \
  86. enable_one_click_signin=true \
  87. use_kerberos=false \
  88. use_sndio=true \
  89. use_cups=true \
  90. use_experimental_allocator_shim=false \
  91. is_clang=true \
  92. use_sysroot=false \
  93. treat_warnings_as_errors=false \
  94. clang_use_chrome_plugins=false \
  95. use_allocator=\"none\" \
  96. is_official_build=true \
  97. fieldtrial_testing_like_official_build=true \
  98. extra_cppflags=\"-idirafter ${LOCALBASE}/include -idirafter ${X11BASE}/include\" \
  99. extra_ldflags=\"-L${LOCALBASE}/lib -L${X11BASE}/lib\"
  100. # Note: these keys are for OpenBSD use ONLY. For your own distribution,
  101. # please get your own set of keys. It's free!
  102. GN_ARGS+= google_api_key=\"AIzaSyA015yecfJyWi8UQpneQVrNzIKlxjv4MhI\" \
  103. google_default_client_id=\"451220141585.apps.googleusercontent.com\" \
  104. google_default_client_secret=\"nQcDyaBvDyCeDrsRqKIWSHJn\" \
  105. ffmpeg_branding=\"Chrome\" \
  106. proprietary_codecs=true
  107. .if ${FLAVOR:Mdebug}
  108. GN_ARGS+= remove_webcore_debug_symbols=true
  109. MAKE_ENV+= V=1
  110. .endif
  111. pre-configure:
  112. @ln -sf ${MODPY_BIN} ${WRKDIR}/bin/python
  113. .for _arch in x64 ia32
  114. . for _dir in avcodec avformat avutil
  115. @cp -pR ${WRKSRC}/third_party/ffmpeg/chromium/config/Chrome/linux/${_arch}/lib${_dir} \
  116. ${WRKSRC}/third_party/ffmpeg/chromium/config/Chrome/openbsd/${_arch}/lib${_dir}
  117. . endfor
  118. .endfor
  119. @mkdir -p ${WRKSRC}/media/audio/sndio ${WRKSRC}/media/audio/openbsd
  120. @cp ${FILESDIR}/sndio_{out,in}put.{cc,h} ${WRKSRC}/media/audio/sndio
  121. @cp ${FILESDIR}/audio_manager_openbsd.{cc,h} ${WRKSRC}/media/audio/openbsd
  122. @mkdir -p ${WRKSRC}/third_party/node/openbsd/node-openbsd/bin
  123. @ln -sf ${TRUEPREFIX}/bin/node ${WRKSRC}/third_party/node/openbsd/node-openbsd/bin/node
  124. # Configuration consists of three steps:
  125. # 1. replace the specified bundled libraries with hooks to use the system libs
  126. # 2. bootstrap gn, the tool to generate ninja files
  127. # 3. run gn with the appropriate configuration arguments
  128. do-configure:
  129. @cd ${WRKSRC} && env -i ${MAKE_ENV} build/linux/unbundle/replace_gn_files.py \
  130. --system-libraries ${GN_SYSTEM_LIBS}
  131. @cd ${WRKSRC}/tools/gn && env -i ${MAKE_ENV} LDFLAGS=-L${LOCALBASE}/lib ${MODPY_BIN} bootstrap/bootstrap.py \
  132. --no-clean -s --gn-gen-args "${GN_ARGS}"
  133. @cd ${WRKSRC} && env -i ${CONFIGURE_ENV} ${WRKSRC}/out/${BUILDTYPE}/gn \
  134. gen --args="${GN_ARGS}" out/Release
  135. do-build:
  136. @cd ${WRKSRC} && env -i ${MAKE_ENV} ninja \
  137. -j ${MAKE_JOBS} -C out/${BUILDTYPE} ${ALL_TARGET}
  138. do-install:
  139. ${INSTALL_DATA_DIR} ${PREFIX}/chrome
  140. ${INSTALL_PROGRAM} ${BUILDDIR}/chrome ${PREFIX}/chrome
  141. ${SUBST_PROGRAM} ${FILESDIR}/chrome ${PREFIX}/bin/chrome
  142. ${INSTALL_MAN} ${BUILDDIR}/chrome.1 ${PREFIX}/man/man1
  143. ${INSTALL_DATA} ${BUILDDIR}/*.pak ${PREFIX}/chrome
  144. ${INSTALL_DATA_DIR} ${PREFIX}/chrome/locales
  145. ${INSTALL_DATA} ${BUILDDIR}/locales/* ${PREFIX}/chrome/locales
  146. ${INSTALL_DATA} ${BUILDDIR}/*.png ${PREFIX}/chrome
  147. ${INSTALL_DATA} ${BUILDDIR}/*.service ${PREFIX}/chrome
  148. ${INSTALL_DATA_DIR} ${PREFIX}/chrome/resources
  149. @cp -Rp ${BUILDDIR}/resources/* ${PREFIX}/chrome/resources
  150. @chown -R ${SHAREOWN}:${SHAREGRP} ${PREFIX}/chrome/resources
  151. .for f in protoc icudtl.dat mksnapshot natives_blob.bin snapshot_blob.bin
  152. ${INSTALL_DATA} ${BUILDDIR}/${f} ${PREFIX}/chrome
  153. .endfor
  154. .for s in 22 24 48 64 128 256
  155. ${INSTALL_DATA_DIR} ${PREFIX}/share/icons/hicolor/${s}x${s}/apps
  156. ${INSTALL_DATA} ${WRKSRC}/chrome/app/theme/chromium/product_logo_${s}.png \
  157. ${PREFIX}/share/icons/hicolor/${s}x${s}/apps/chrome.png
  158. .endfor
  159. ${INSTALL_DATA_DIR} ${PREFIX}/share/applications
  160. ${INSTALL_DATA} ${FILESDIR}/chromium-browser.desktop \
  161. ${PREFIX}/share/applications/chromium-browser.desktop
  162. .include <bsd.port.mk>