Skip to content

Instantly share code, notes, and snippets.

@lv7777
Last active June 2, 2016 09:04
Show Gist options
  • Save lv7777/fcb31789f0210397594c7455a1422610 to your computer and use it in GitHub Desktop.
Save lv7777/fcb31789f0210397594c7455a1422610 to your computer and use it in GitHub Desktop.
mozillaソースコード(mozilla-central)のconfig(mozconfig)の設定一覧。ac_add_options --helpで見れる。解説はそのうち追加。
0:14.42 --enable-cpp-rtti Enable C++ RTTI
実行時に型情報を持って保持。C++における多様性の確保。
___
0:14.42 --enable-gold Enable GNU Gold Linker when it is not already
the default
goldリンカ。googleの人が作っためっちゃ早いリンカ。linux環境のみ?
___
0:14.42 --disable-icf Disable Identical Code Folding
gold linkerについてる。同一コードの畳みこみ。
http://research.google.com/pubs/pub36912.html
___
0:14.42 --enable-dtrace build with dtrace support if available (defau
lt=no)
ダイナミックトレース。D scriptを使う(D言語じゃないよ!)
https://ja.wikipedia.org/wiki/DTrace
freeBSDあたりで標準インストールされてるっぽい
___
0:14.43 --with-linux-headers=DIR
0:14.43 location where the Linux kernel headers can b
e found
0:14.43 --with-pthreads Force use of system pthread library with NSPR
___
0:14.43 --with-libxul-sdk=PFX Use the libXUL SDK at <PFX>
https://developer.mozilla.org/ja/docs/Gecko_SDK
こ↑こ↓に
> It's possible to use the Mozilla Build System with the SDK. This can be done by downloading the source code for Firefox and using the --with-libxul-sdk option to configure.
という記述があるのでGecko SDKのことっぽい。
https://bugzilla.mozilla.org/show_bug.cgi?id=1038639
現在は削除された模様
___
0:14.43 --with-system-libxul Use system installed libxul SDK
上に同じ。
___
0:14.43 --with-system-nspr Use system installed NSPR
0:14.43 --with-nspr-prefix=PFX Prefix where NSPR is installed
0:14.44 --with-nspr-exec-prefix=PFX
0:14.44 Exec prefix where NSPR is installed
0:14.44 --disable-unified-compilation
0:14.44 Disable unified compilation of some C/C++ sou
rces
0:14.44 --with-system-libevent[=PFX]
0:14.44 Use system libevent [installed at prefix PFX]
0:14.45 --with-system-nss Use system installed NSS
0:14.45 --with-nss-prefix=PFX Prefix where NSS is installed
0:14.45 --with-nss-exec-prefix=PFX
0:14.45 Exec prefix where NSS is installed
0:14.45 --with-system-jpeg[=PFX]
0:14.45 Use system libjpeg [installed at prefix PFX]
0:14.46 --with-system-zlib[=PFX]
0:14.46 Use system libz [installed at prefix PFX]
0:14.46 --with-system-bz2[=PFX]
0:14.46 Use system libbz2 [installed at prefix PFX]
0:14.46 --with-system-png[=PFX]
0:14.46 Use system libpng [installed at prefix PFX]
0:14.46 --enable-png-arm-neon-support=TYPE
0:14.47 Options include:
0:14.47 no
0:14.47 check (default)
0:14.47 nocheck (faster but unsafe)
0:14.47 --enable-system-hunspell
0:14.47 Use system hunspell (located with pkgconfig)
0:14.47 --enable-system-ffi Use system libffi (located with pkgconfig)
0:14.48 --enable-shared-js
0:14.48 Create a shared JavaScript library.
0:14.48 --with-java-bin-path=dir
0:14.48 Location of Java binaries (java, javac, jar)
0:14.48 --with-external-source-dir=dir
0:14.48 External directory containing additional buil
d files.
0:14.48 --enable-application=APP
0:14.49 Options include:
0:14.49 browser (Firefox)
0:14.49 xulrunner
0:14.49 tools/update-packaging (AUS-related packagi
ng tools)
0:14.49 --with-xulrunner-stub-name=appname Create the xulrunner stub with t
he given name
0:14.49 --enable-update-channel=CHANNEL
0:14.50 Select application update channel (default=de
fault)
0:14.50 --with-mozilla-api-keyfile=file Use the secret key contained in the
given keyfile for Mozilla API requests
0:14.50 --with-google-api-keyfile=file Use the secret key contained in the
given keyfile for Google API requests
0:14.50 --with-bing-api-keyfile=file Use the client id and secret key conta
ined in the given keyfile for Bing API requests
0:14.50 --with-app-name=APPNAME sets MOZ_APP_NAME to APPNAME
0:14.50 --with-app-basename=BASENAME sets MOZ_APP_BASENAME to BASENAME
0:14.51 --with-android-sdk=DIR
0:14.51 location where the Android SDK can be found (
base directory, e.g. .../android/platforms/android-6)
0:14.51 --enable-default-toolkit=TK
0:14.51 Select default toolkit
0:14.51 Platform specific defaults:
0:14.51 Mac OS X - cairo-cocoa
0:14.51 Win32 - cairo-windows
0:14.52 * - cairo-gtk2
0:14.52 * - cairo-gtk3
0:14.52 * - cairo-qt
0:14.52 --without-x Build without X11
0:14.52 --with-arm-kuser Use kuser helpers (Linux/ARM only -- require
s kernel 2.6.13 or later)
0:14.52 --enable-startup-notification
0:14.53 Enable startup-notification support (default:
disabled)
0:14.53 --disable-printing Disable printing support
0:14.53 --with-qtdir=$dir Specify Qt directory
0:14.53 --enable-ui-locale=ab-CD
0:14.53 Select the user interface locale (default: en
-US)
0:14.53 --enable-official-branding
0:14.53 Enable Official mozilla.org Branding
0:14.54 Do not distribute builds with
0:14.54 --enable-official-branding unless you have
0:14.54 permission to use trademarks per
0:14.54 http://www.mozilla.org/foundation/trademarks/
.
0:14.54 --with-branding=dir Use branding from the specified directory.
0:14.55 --with-distribution-id=ID
0:14.55 Set distribution-specific id (default=org.moz
illa)
0:14.55 --enable-gnomevfs Enable GnomeVFS support (default: disabled)
0:14.55 --disable-gio Disable GIO support
0:14.55 --disable-gconf Disable Gconf support
0:14.55 --enable-libproxy Enable libproxy support
0:14.55 --enable-gnomeui Enable libgnomeui instead of GIO & GTK for ic
on theme support
0:14.56 --disable-dbus Disable dbus support
0:14.56 --disable-websms-backend
0:14.56 Disable WebSMS backend
0:14.56 --enable-android-synthapks Enable synthesized APKs
0:14.56 --disable-jsd Disable JavaScript debug library
0:14.56 --enable-ipdl-tests Enable expensive IPDL tests
0:14.56 --disable-dbm Disable building dbm
0:14.57 --disable-accessibility Disable accessibility support
0:14.57 --disable-webrtc Disable support for WebRTC
0:14.57 --disable-webspeech Disable support for HTML Speech API
0:14.57 --enable-raw Enable support for RAW media
0:14.57 --disable-opus Disable support for Opus audio
0:14.57 --disable-webm Disable support for WebM media (VP8 video and
Vorbis audio)
0:14.57 --disable-directshow Disable support for DirectShow
0:14.58 --disable-wmf Disable support for Windows Media Foundation
0:14.58 --disable-ffmpeg Disable FFmpeg for fragmented H264/AAC decod
ing
0:14.58 --disable-fmp4 Disable support for in built Fragmented MP4 parsing
0:14.58 --enable-media-plugins Enable support for media plugins
0:14.58 --disable-apple-media Disable support for Apple AudioToolbox/VideoTo
olbox
0:14.58 --enable-media-navigator Enable support for getUserMedia
0:14.59 --enable-omx-plugin Enable building OMX plugin (B2G)
0:14.59 --with-system-libvpx Use system libvpx (located with pkgconfig)
0:14.59 --disable-wave Disable Wave decoder support
0:14.59 --enable-alsa Enable Alsa support (default on Linux)
0:14.59 --disable-pulseaudio Disable PulseAudio support
0:14.59 --enable-gstreamer[=0.10] Enable GStreamer support
0:14.59 --disable-permissions Disable permissions (popup and cookie blockin
g)
0:14.60 --disable-negotiateauth Disable GSS-API negotiation
0:14.60 --disable-pref-extensions
0:14.60 Disable pref extensions such as autoconfig
0:14.60 --disable-system-extension-dirs
0:14.60 Disable searching system- and account-global
0:14.61 directories for extensions of any kind; use
0:14.61 only profile-specific extension directories
0:14.61 --disable-universalchardet
0:14.61 Disable universal encoding detection
0:14.61 --disable-webgl Disable building of the WebGL implementation
0:14.61 --enable-require-all-d3dc-versions Require all versions of the D3D co
mpiler needed for supported Windows systems.
0:14.61 --disable-gamepad Disable gamepad support
0:14.62 --disable-crashreporter Disable breakpad crash reporting
0:14.62 --with-crashreporter-enable-percent=NN
0:14.62 Enable sending crash reports by default on NN
% of users. (default=100)
0:14.62 --disable-libjpeg-turbo Disable optimized jpeg decoding routines
0:14.62 --enable-extensions Enable extensions
0:14.62 --enable-tree-freetype Enable Tree FreeType
0:14.62 --disable-webapp-runtime Disable Web App Runtime
0:14.63 --enable-maintenance-service Enable building of maintenanceserv
ice
0:14.63 --enable-bundled-fonts Enable support for bundled fonts on desktop p
latforms
0:14.63 --enable-verify-mar Enable verifying MAR signatures
0:14.63 --enable-signmar Enable building the signmar program
0:14.63 --disable-updater Disable building of updater
0:14.63 --enable-update-packaging
0:14.63 Enable tools/update-packaging
0:14.64 --disable-tests Do not build test libraries & programs
0:14.64 --disable-parental-controls
0:14.64 Do not build parental controls
0:14.64 --enable-content-sandbox Enable sandboxing support for content
-processes
0:14.64 --enable-content-sandbox-reporter Enable syscall reporter to tr
oubleshoot syscalls denied by the content-processes sandbox
0:14.64 --disable-feeds Disable feed handling and processing componen
ts
0:14.65 --enable-system-sqlite Use system sqlite (located with pkgconfig)
0:14.65 --enable-safe-browsing Enable safe browsing (anti-phishing) implemen
tation
0:14.65 --enable-url-classifier Enable url classifier module
0:14.65 --disable-zipwriter Disable zipwriter component
0:14.65 --with-gl-provider=ID
0:14.65 Set GL provider backend type
0:14.65 --enable-faststripe Use faststripe theme
軽量テーマと標準テーマの軽量テーマっぽい。
winstripe(win用のテーマ(UI))pinstripeなどを置き換える
___
0:14.66 --enable-mobile-optimize
0:14.66 Enable mobile optimizations
0:14.66 --disable-optimize Disable compiler optimization
0:14.66 --enable-optimize=[OPT] Specify compiler optimization flags [OPT=-O]
0:14.66 --enable-warnings-as-errors
0:14.66 Enable treating of warnings as errors
0:14.67 --disable-logging Disable logging facilities
0:14.67 --enable-logrefcnt Enable logging of refcounts (default=debug)
0:14.67 --enable-dump-painting Enable paint debugging.
0:14.67 --enable-trace-malloc Enable malloc tracing; also disables DMD and
jemalloc
0:14.67 --enable-dmd Enable DMD; also enables jemalloc and replace
-malloc
0:14.67 --enable-jemalloc Replace memory allocator with jemalloc
0:14.68 --enable-replace-malloc Enable ability to dynamically replace the m
alloc implementation
0:14.68 --enable-wrap-malloc Wrap malloc calls (gnu linker only)
0:14.68 --with-wrap-malloc=DIR Location of malloc wrapper library
0:14.68 --enable-trace-jscalls Enable JS call enter/exit callback (default=n
o)
0:14.69 --enable-js-diagnostics
0:14.69 Enable JS diagnostic assertions and breakpad
data
0:14.69 --disable-gcincremental Disable incremental GC
0:14.69 --disable-exact-rooting Enable use of conservative stack scanning fo
r GC
0:14.70 --disable-gcgenerational Disable generational GC
0:14.70 --enable-gczeal Enable zealous JavaScript GCing
0:14.70 --enable-root-analysis Enable moving GC stack root analysis
0:14.71 --with-ccache[=path/to/ccache]
0:14.71 Enable compiling with ccache
0:14.71 --with-static-checking=path/to/gcc_dehydra.so
0:14.71 Enable static checking of code using GCC-dehy
dra
0:14.71 --enable-clang-plugin Enable building with the mozilla clang plugin
0:14.72 --enable-strip Enable stripping of libs & executables
0:14.72 --enable-install-strip Enable stripping of libs & executables when p
ackaging
0:14.72 --disable-elf-hack Disable elf hacks
0:14.72 --enable-stdcxx-compat Enable compatibility with older libstdc++
0:14.73 --enable-visual-event-tracer Enable visual event tracer instrumenta
tion
0:14.73 --enable-tasktracer Set compile flags necessary for using TaskT
racer
0:14.73 --enable-reflow-perf Enable reflow performance tracing
0:14.73 --disable-startupcache Disable startup cache
0:14.73 --enable-b2g-ril Set compile flags necessary for testing B2G Rad
io Interface Layer via network sockets
0:14.74 --enable-b2g-bt Set compile flags necessary for compiling Blueto
oth API for B2G
0:14.74 --enable-nfc Set compile flags necessary for compiling NFC AP
I
0:14.74 --enable-synth-pico Set compile flags necessary for compiling Pico W
eb Speech API
0:14.74 --enable-b2g-camera Set compile flags necessary for compiling ca
mera API for B2G
0:14.75 --jitreport-granularity=N
0:14.75 Default granularity at which to report JIT c
ode
0:14.75 to external tools
0:14.75 0 - no info
0:14.76 1 - code ranges for whole functions only
0:14.76 2 - per-line information
0:14.76 3 - per-op information
0:14.76 --enable-xterm-updates Update XTERM titles with current command.
0:14.76 --enable-chrome-format=jar|flat|omni
0:14.76 Select FORMAT of chrome files during packagin
g
0:14.77 --enable-devtools-webide Set compile flags necessary for compiling de
vtools webide
0:14.77 --with-default-mozilla-five-home
0:14.77 Set the default value for MOZILLA_FIVE_HOME
0:14.77 --with-user-appdir=DIR Set user-specific appdir (default=.mozilla)
0:14.77 --with-doc-input-dirs=DIRS
0:14.77 Header/idl dirs to create docs from
0:14.78 --with-doc-include-dirs=DIRS
0:14.78 Include dirs to preprocess doc headers
0:14.78 --with-doc-output-dir=DIR
0:14.78 Dir to generate docs into
0:14.78 --enable-skia Enable use of Skia
0:14.78 --enable-system-cairo Use system cairo (located with pkgconfig)
0:14.79 --enable-system-pixman Use system pixman (located with pkgconfig)
0:14.79 --disable-xul Disable XUL
0:14.79 --disable-profilelocking
0:14.79 Disable profile locking
0:14.79 --enable-necko-protocols[={http,ftp,default,all,none}]
0:14.79 Enable/disable specific protocol handlers
0:14.79 --disable-necko-wifi Disable necko wifi scanner
0:14.80 --disable-cookies Disable cookie support
___
0:14.80 --disable-ctypes Disable js-ctypes
xpcom(firefoxの中でも下のレイヤの機能)を呼び出す方法。xpconnectなどと似ているが違う。
自分でC言語で 共有ライブラリを開発してアドオンに同梱し、それをjs-ctypes経由
で呼び出す前者は、従来のアドオン開発における、プラットフォームの共有ライブラリを呼び出たびめだけにブリッジとしてのXPCOMコンポーネントを開発していた場合の置き換え
にあたります。この場合、そもそもバイナリ形式のコンポーネントを用意する必要すら
なくなるため、開発の手間を大きく削減できるでしょう。
後 者は、従来のアドオン開発における、プラットフォームごとのネイティブな実装をXPCOM
コンポーネントとして開発していた場合の置き換えにあたります。この場合、
ビルド環境を整える手間などは従来とあまり変わりませんが、XULRunnerSDK
が必要なかったり、XpCOMの様式に合わせてコンポーネントを開発する必要がなかったり(js-ctypes経由で呼び出 したい関数のインタフェースさえ揃えておけばよい)と、従来
の開発に比べて開発の手間はある程度少なくなるでしょう。
後者の場合のjs-ctypesの利用方法も、呼び出す共有ライブラリの場所が異なるだけで、手続き自体は前者の場合と変わりません。次節では前者の利用形態の具体的な例をあげて、js-ctypesの基本的な使い方を解説します
オライリー(firefox hacks rebootedより引用)
___
0:14.80 --with-macbundlename-prefix=prefix
0:14.80 Prefix for MOZ_MACBUNDLE_NAME
0:14.80 --with-system-icu
0:14.80 Use system ICU (located with pkgconfig)
0:14.81 --with-intl-api, --with-intl-api=build, --without-intl-api
@lv7777
Copy link
Author

lv7777 commented May 8, 2016

ちなみに環境によって変わる

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment