はじめに
- 先日、firefox をソースから build してみた
- ディレクトリ構成ってどのようになっている?って疑問
ディレクトリ構成を概観する
- tree コマンドでディレクトリ構成を可視化
% tree | tee tree.out-all | wc -l
356994
% tree -d | tee tree.out-dir | wc -l
23248
- ディレクトリだけ出力しても巨大(23,248行)
- あきらかに不要な以下のディレクトリを除去してみたが、それほど減らないね
- '__pycache__'
% tree -d | grep -v '__pycache__' | tee tree.out-dir | wc -l
23020
- 出力階層(Level)を3に制限してみたら、かなり減った
% tree -d -L 3 | grep -v '__pycache__' | tee tree.out-dir3 | wc -l
3079
- それでも見るには多いので、出力階層(Level)を2に制限してみた結果(607行)がこれ↓
.
├── accessible
│ ├── android
│ ├── aom
│ ├── atk
│ ├── base
│ ├── generic
│ ├── html
│ ├── interfaces
│ ├── ipc
│ ├── mac
│ ├── other
│ ├── tests
│ ├── windows
│ ├── xpcom
│ └── xul
├── browser
│ ├── actors
│ ├── app
│ ├── base
│ ├── branding
│ ├── components
│ ├── config
│ ├── docs
│ ├── extensions
│ ├── fonts
│ ├── fxr
│ ├── installer
│ ├── locales
│ ├── modules
│ ├── themes
│ └── tools
├── build
│ ├── autoconf
│ ├── build-clang
│ ├── build-infer
│ ├── clang-plugin
│ ├── compare-mozconfig
│ ├── debian-packages
│ ├── docs
│ ├── gyp_includes
│ ├── liblowercase
│ ├── macosx
│ ├── mobile
│ ├── moz.configure
│ ├── package
│ ├── pgo
│ ├── sanitizers
│ ├── sparse-profiles
│ ├── tests
│ ├── unix
│ ├── valgrind
│ ├── win32
│ ├── win64
│ ├── win64-aarch64
│ └── workspace-hack
├── caps
│ └── tests
├── chrome
│ └── test
├── config
│ ├── external
│ ├── faster
│ ├── makefiles
│ ├── mozunit
│ └── tests
├── devtools
│ ├── client
│ ├── docs
│ ├── platform
│ ├── server
│ ├── shared
│ └── startup
├── docs
│ ├── _static
│ ├── bug-mgmt
│ ├── code-quality
│ ├── contributing
│ ├── crash-reporting
│ ├── setup
│ ├── testing-rust-code
│ └── writing-rust-code
├── docshell
│ ├── base
│ ├── build
│ ├── resources
│ ├── shistory
│ └── test
├── dom
│ ├── abort
│ ├── animation
│ ├── audiochannel
│ ├── base
│ ├── battery
│ ├── bindings
│ ├── broadcastchannel
│ ├── browser-element
│ ├── cache
│ ├── canvas
│ ├── chrome-webidl
│ ├── clients
│ ├── commandhandler
│ ├── console
│ ├── credentialmanagement
│ ├── crypto
│ ├── debugger
│ ├── docs
│ ├── encoding
│ ├── events
│ ├── fetch
│ ├── file
│ ├── filehandle
│ ├── filesystem
│ ├── flex
│ ├── gamepad
│ ├── geolocation
│ ├── grid
│ ├── html
│ ├── imptests
│ ├── indexedDB
│ ├── interfaces
│ ├── ipc
│ ├── jsurl
│ ├── l10n
│ ├── locales
│ ├── localstorage
│ ├── manifest
│ ├── mathml
│ ├── media
│ ├── messagechannel
│ ├── midi
│ ├── network
│ ├── notification
│ ├── offline
│ ├── payments
│ ├── performance
│ ├── permission
│ ├── plugins
│ ├── power
│ ├── presentation
│ ├── prio
│ ├── promise
│ ├── prototype
│ ├── push
│ ├── quota
│ ├── reporting
│ ├── res
│ ├── script
│ ├── security
│ ├── serviceworkers
│ ├── simpledb
│ ├── smil
│ ├── storage
│ ├── svg
│ ├── system
│ ├── tests
│ ├── u2f
│ ├── url
│ ├── vr
│ ├── webauthn
│ ├── webbrowserpersist
│ ├── webgpu
│ ├── webidl
│ ├── webshare
│ ├── websocket
│ ├── workers
│ ├── worklet
│ ├── xhr
│ ├── xml
│ ├── xslt
│ └── xul
├── editor
│ ├── composer
│ ├── libeditor
│ ├── reftests
│ ├── spellchecker
│ └── txmgr
├── extensions
│ ├── auth
│ ├── permissions
│ ├── pref
│ ├── spellcheck
│ └── universalchardet
├── gfx
│ ├── 2d
│ ├── angle
│ ├── cairo
│ ├── config
│ ├── docs
│ ├── gl
│ ├── graphite2
│ ├── harfbuzz
│ ├── ipc
│ ├── layers
│ ├── ots
│ ├── qcms
│ ├── sfntly
│ ├── skia
│ ├── src
│ ├── tests
│ ├── thebes
│ ├── vr
│ ├── webrender_bindings
│ ├── wgpu
│ ├── wgpu_bindings
│ ├── wr
│ └── ycbcr
├── gradle
│ └── wrapper
├── hal
│ ├── android
│ ├── cocoa
│ ├── fallback
│ ├── linux
│ ├── sandbox
│ └── windows
├── image
│ ├── build
│ ├── decoders
│ ├── encoders
│ └── test
├── intl
│ ├── build
│ ├── docs
│ ├── encoding_glue
│ ├── gtest
│ ├── hyphenation
│ ├── icu
│ ├── icu-patches
│ ├── l10n
│ ├── locale
│ ├── locales
│ ├── lwbrk
│ ├── strres
│ ├── tzdata
│ ├── uconv
│ └── unicharutil
├── ipc
│ ├── app
│ ├── chromium
│ ├── contentproc
│ ├── glue
│ ├── gtest
│ ├── ipdl
│ ├── mscom
│ └── testshell
├── js
│ ├── ductwork
│ ├── examples
│ ├── public
│ ├── rust
│ ├── src
│ └── xpconnect
├── layout
│ ├── base
│ ├── build
│ ├── docs
│ ├── forms
│ ├── generic
│ ├── inspector
│ ├── ipc
│ ├── mathml
│ ├── media
│ ├── painting
│ ├── printing
│ ├── reftests
│ ├── style
│ ├── svg
│ ├── tables
│ ├── tools
│ └── xul
├── media
│ ├── audioipc
│ ├── ffvpx
│ ├── gmp-clearkey
│ ├── kiss_fft
│ ├── libaom
│ ├── libcubeb
│ ├── libdav1d
│ ├── libjpeg
│ ├── libmkv
│ ├── libnestegg
│ ├── libogg
│ ├── libopus
│ ├── libpng
│ ├── libsoundtouch
│ ├── libspeex_resampler
│ ├── libtheora
│ ├── libtremor
│ ├── libvorbis
│ ├── libvpx
│ ├── libwebp
│ ├── libyuv
│ ├── mp4parse-rust
│ ├── openmax_dl
│ ├── openmax_il
│ ├── psshparser
│ └── webrtc
├── memory
│ ├── build
│ ├── gtest
│ ├── mozalloc
│ ├── replace
│ └── volatile
├── mfbt
│ ├── double-conversion
│ ├── lz4
│ └── tests
├── mobile
│ ├── android
│ └── locales
├── modules
│ ├── brotli
│ ├── fdlibm
│ ├── freetype2
│ ├── libjar
│ ├── libmar
│ ├── libpref
│ ├── woff2
│ ├── xz-embedded
│ └── zlib
├── mozglue
│ ├── android
│ ├── baseprofiler
│ ├── build
│ ├── dllservices
│ ├── linker
│ ├── misc
│ ├── static
│ └── tests
├── netwerk
│ ├── base
│ ├── build
│ ├── cache
│ ├── cache2
│ ├── cookie
│ ├── dns
│ ├── ipc
│ ├── locales
│ ├── mime
│ ├── protocol
│ ├── sctp
│ ├── socket
│ ├── srtp
│ ├── streamconv
│ ├── system
│ ├── test
│ ├── url-classifier
│ └── wifi
├── nsprpub
│ ├── admin
│ ├── automation
│ ├── build
│ ├── config
│ ├── lib
│ ├── pkg
│ ├── pr
│ └── tools
├── obj-x86_64-apple-darwin19.6.0
│ ├── _build_manifests
│ ├── _tests
│ ├── _virtualenvs
│ ├── accessible
│ ├── browser
│ ├── build
│ ├── caps
│ ├── chrome
│ ├── config
│ ├── config.statusd
│ ├── devtools
│ ├── dist
│ ├── docshell
│ ├── dom
│ ├── editor
│ ├── extensions
│ ├── faster
│ ├── gfx
│ ├── hal
│ ├── image
│ ├── intl
│ ├── ipc
│ ├── js
│ ├── layout
│ ├── media
│ ├── memory
│ ├── mfbt
│ ├── modules
│ ├── mozglue
│ ├── netwerk
│ ├── other-licenses
│ ├── parser
│ ├── python
│ ├── release
│ ├── remote
│ ├── security
│ ├── services
│ ├── startupcache
│ ├── storage
│ ├── taskcluster
│ ├── testing
│ ├── third_party
│ ├── tmp
│ ├── toolkit
│ ├── tools
│ ├── uriloader
│ ├── view
│ ├── widget
│ ├── x86_64-apple-darwin
│ ├── xpcom
│ └── xpfe
├── other-licenses
│ ├── 7zstub
│ ├── atk-1.0
│ ├── bsdiff
│ ├── ia2
│ ├── nsis
│ └── snappy
├── parser
│ ├── expat
│ ├── html
│ ├── htmlparser
│ ├── prototype
│ └── xml
├── python
│ ├── devtools
│ ├── docs
│ ├── gdbpp
│ ├── l10n
│ ├── lldbutils
│ ├── mach
│ ├── mozboot
│ ├── mozbuild
│ ├── mozlint
│ ├── mozperftest
│ ├── mozrelease
│ ├── mozterm
│ └── mozversioncontrol
├── remote
│ ├── doc
│ ├── domains
│ ├── observers
│ ├── server
│ ├── sessions
│ ├── startup
│ ├── targets
│ └── test
├── security
│ ├── apps
│ ├── certverifier
│ ├── ct
│ ├── mac
│ ├── manager
│ ├── nss
│ └── sandbox
├── services
│ ├── automation
│ ├── common
│ ├── crypto
│ ├── fxaccounts
│ ├── interfaces
│ ├── settings
│ └── sync
├── servo
│ ├── components
│ ├── ports
│ └── tests
├── startupcache
│ └── test
├── storage
│ ├── build
│ ├── rust
│ ├── test
│ └── variant
├── taskcluster
│ ├── ci
│ ├── docker
│ ├── docs
│ ├── scripts
│ ├── taskgraph
│ └── test
├── testing
│ ├── awsy
│ ├── condprofile
│ ├── config
│ ├── crashtest
│ ├── docs
│ ├── extensions
│ ├── firefox-ui
│ ├── geckodriver
│ ├── gtest
│ ├── jsshell
│ ├── marionette
│ ├── mochitest
│ ├── modules
│ ├── mozbase
│ ├── mozharness
│ ├── perfdocs
│ ├── performance
│ ├── profiles
│ ├── raptor
│ ├── runtimes
│ ├── specialpowers
│ ├── talos
│ ├── tools
│ ├── tps
│ ├── web-platform
│ ├── webdriver
│ └── xpcshell
├── third_party
│ ├── WinToast
│ ├── aom
│ ├── cups
│ ├── dav1d
│ ├── js
│ ├── libwebrtc
│ ├── msgpack
│ ├── prio
│ ├── python
│ ├── rlbox
│ ├── rust
│ ├── sipcc
│ ├── sqlite3
│ └── webkit
├── toolkit
│ ├── actors
│ ├── components
│ ├── content
│ ├── crashreporter
│ ├── docs
│ ├── library
│ ├── locales
│ ├── modules
│ ├── mozapps
│ ├── pluginproblem
│ ├── profile
│ ├── system
│ ├── themes
│ └── xre
├── tools
│ ├── bloatview
│ ├── browsertime
│ ├── clang-tidy
│ ├── code-coverage
│ ├── compare-locales
│ ├── coverity
│ ├── crashreporter
│ ├── fuzzing
│ ├── github-sync
│ ├── infer
│ ├── jprof
│ ├── leak-gauge
│ ├── lint
│ ├── moztreedocs
│ ├── performance
│ ├── phabricator
│ ├── power
│ ├── profiler
│ ├── quitter
│ ├── rb
│ ├── rewriting
│ ├── sanitizer
│ ├── tryselect
│ ├── update-packaging
│ ├── update-programs
│ ├── update-verify
│ └── vcs
├── uriloader
│ ├── base
│ ├── docs
│ ├── exthandler
│ ├── prefetch
│ └── preload
├── view
│ └── crashtests
├── widget
│ ├── android
│ ├── cocoa
│ ├── crashtests
│ ├── gtk
│ ├── headless
│ ├── reftests
│ ├── tests
│ ├── uikit
│ ├── windows
│ └── x11
├── xpcom
│ ├── base
│ ├── build
│ ├── components
│ ├── doc
│ ├── ds
│ ├── glue
│ ├── idl-parser
│ ├── io
│ ├── libxpt
│ ├── reflect
│ ├── rust
│ ├── string
│ ├── system
│ ├── tests
│ ├── threads
│ ├── windbgdlg
│ └── xpidl
└── xpfe
└── appshell
612 directories