mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-04 20:58:23 +03:00
27263b6172
While working on the ELF loader I was trying to keep binaries as simple as possible so I could understand them easily. Now that the ELF loader is mature and working fine, we can move closer towards ld defaults.
81 lines
1.9 KiB
Makefile
81 lines
1.9 KiB
Makefile
AK_OBJS = \
|
|
../AK/StringImpl.o \
|
|
../AK/String.o \
|
|
../AK/StringBuilder.o \
|
|
../AK/FileSystemPath.o \
|
|
../AK/kmalloc.o
|
|
|
|
SHAREDGRAPHICS_OBJS = \
|
|
../SharedGraphics/Painter.o \
|
|
../SharedGraphics/Font.o \
|
|
../SharedGraphics/Rect.o \
|
|
../SharedGraphics/GraphicsBitmap.o \
|
|
../SharedGraphics/CharacterBitmap.o \
|
|
../SharedGraphics/Color.o
|
|
|
|
LIBC_OBJS = \
|
|
stdio.o \
|
|
unistd.o \
|
|
string.o \
|
|
mman.o \
|
|
dirent.o \
|
|
stdlib.o \
|
|
time.o \
|
|
utsname.o \
|
|
assert.o \
|
|
signal.o \
|
|
getopt.o \
|
|
scanf.o \
|
|
pwd.o \
|
|
grp.o \
|
|
times.o \
|
|
termcap.o \
|
|
setjmp.o \
|
|
stat.o \
|
|
mntent.o \
|
|
ctype.o \
|
|
fcntl.o \
|
|
termios.o \
|
|
ulimit.o \
|
|
qsort.o \
|
|
ioctl.o \
|
|
math.o \
|
|
utime.o \
|
|
gui.o \
|
|
sys/select.o \
|
|
poll.o \
|
|
entry.o
|
|
|
|
OBJS = $(AK_OBJS) $(WIDGETS_OBJS) $(LIBC_OBJS) $(SHAREDGRAPHICS_OBJS)
|
|
|
|
LIBRARY = LibC.a
|
|
ARCH_FLAGS =
|
|
STANDARD_FLAGS = -std=c++17 -nostdinc++ -nostdlib -nostdinc
|
|
LIBC_FLAGS = -ffreestanding -fno-stack-protector -fno-ident
|
|
WARNING_FLAGS = -Wextra -Wall -Wundef -Wcast-qual -Wwrite-strings
|
|
FLAVOR_FLAGS = -fomit-frame-pointer -mregparm=3 -march=i386 -m32 -fno-exceptions -fno-rtti -ffunction-sections -fdata-sections -fmerge-all-constants -fno-unroll-loops -fno-pie -fno-pic
|
|
OPTIMIZATION_FLAGS = -O2 -fno-asynchronous-unwind-tables
|
|
INCLUDE_FLAGS = -I.. -I.
|
|
|
|
DEFINES = -DSERENITY -DUSERLAND -DSANITIZE_PTRS
|
|
|
|
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(LIBC_FLAGS) $(FLAVOR_FLAGS) $(ARCH_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
|
CXX = clang
|
|
LD = ld
|
|
AR = ar
|
|
LDFLAGS = -T linker.ld --strip-debug -melf_i386 --gc-sections
|
|
|
|
all: $(LIBRARY)
|
|
|
|
$(LIBRARY): $(OBJS)
|
|
@echo "LIB $@"; $(AR) rcs $@ $(OBJS)
|
|
|
|
.cpp.o:
|
|
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
|
|
|
-include $(OBJS:%.o=%.d)
|
|
|
|
clean:
|
|
@echo "CLEAN"; rm -f $(LIBRARY) $(OBJS) *.d
|
|
|