summaryrefslogtreecommitdiffstats
path: root/profiles/amd64-desktop/make.defaults
blob: 05933be8c0717d1832718ea345bc73dc7586404c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# CPU flags
#
# mmx, mmxext:
# sse, sse2, sse3, ssse3, sse4_1, sse4_2: Streaming SIMD Extensions
# popcnt: count number of bits set to 1 (useful in encryption)
CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt"

# LTO flags
#
# Source: https://wiki.gentoo.org/wiki/LTO#Enabling_LTO_System-wide
WARNING_FLAGS="-Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing"
LTO_FLAGS="-flto ${WARNING_FLAGS}"
USE="${USE} lto"

# Common compilation flags
#
# -pipe: use pipes instead of temporary files to pass .s files to the assembler,
#        avoiding unnecessary I/O
# -O2:   O2 optimizations are safe enough in the majority of times
COMMON_FLAGS="-march=x86-64-v3 -O2 -pipe ${LTO_FLAGS}"
RUSTFLAGS="-C target-cpu=x86-64"

CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"

# Distro
#
# Enable: distribution kernel, prebuilt binaries
USE="${USE} dist-kernel bindist"

# Security
#
# Enable: process capabilities, file capabilities, access control lists
# Disable: suid, single-use key
USE="${USE} caps filecaps acl -suid -skey"

# Desktop
#
# Enable: screencast support, fontconfig
USE="${USE} screencast fontconfig"

# Xorg
#
# Disable: X and its extensions
# NOTES: enable them per-package
USE="${USE} -X -xcomposite -xpresent -xinerama -xscreensaver -xv"

# GTK & QT
#
# Enable: introspection and gstreamer for GTK, qml for QT
# Disable: gtk documentation and gtk2, gtk3, qt5, qt6 toolkits
# NOTES: enable them per-package
USE="${USE} introspection gstreamer -gtk2 -gtk3 -gtk-doc"
USE="${USE} qml -qt5 -qt6"


# GNOME & KDE
#
# Disable: disable gnome and kde services/features which are not strictly necessary to run a standalone desktop
USE="${USE} -gnome -eds -gnome-online-accounts -sysprof"
USE="${USE} -kde -plasma -kwallet -kaccounts"

# Audio
#
# Enable: jack, pipewire
USE="${USE} jack pipewire"

# Graphics
#
# Enable: vaapi, vulkan
USE="${USE} vaapi vulkan"

# Misc
#
# Enable: fftw library for calculating fast fourier transformations
USE="${USE} fftw"

# Video cards
#
# Enable: framebuffer device (basic), AMD related video card support
VIDEO_CARDS="fbdev amdgpu radeon radeonsi zink"

# Input devices
#
# Enable: evdev, libinput (manages most common inputs such as mouse, keyboard, touchpad etc)
INPUT_DEVICES="evdev libinput"

# Localization
#
# Enable: english, greek
L10N="en en_GB el"

# Licensing
#
# Enable: nothing except free and binary redistributables
ACCEPT_LICENSE="-* @FREE @BINARY-REDISTRIBUTABLE"