mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 15:40:19 +00:00
3af59dfed1
The LibC build is a bit complicated, since the toolchain depends on it. During the toolchain bootstrap, after we've built parts of GCC, we have to stop and build Serenity's LibC, so that the rest of GCC can use it. This means that during that specific LibC build, we don't yet have access to things like std::initializer_list. For now we solve this by defining SERENITY_LIBC_BUILD during the LibC build and excluding the Vector/initializer_list support inside LibC.
93 lines
1.9 KiB
Makefile
93 lines
1.9 KiB
Makefile
include ../Makefile.common
|
|
|
|
AK_OBJS = \
|
|
../AK/StringImpl.o \
|
|
../AK/String.o \
|
|
../AK/StringView.o \
|
|
../AK/StringBuilder.o \
|
|
../AK/FileSystemPath.o \
|
|
../AK/StdLibExtras.o \
|
|
../AK/JsonValue.o \
|
|
../AK/JsonArray.o \
|
|
../AK/JsonObject.o \
|
|
../AK/JsonParser.o \
|
|
../AK/MappedFile.o
|
|
|
|
LIBC_OBJS = \
|
|
SharedBuffer.o \
|
|
stdio.o \
|
|
unistd.o \
|
|
string.o \
|
|
strings.o \
|
|
mman.o \
|
|
dirent.o \
|
|
malloc.o \
|
|
stdlib.o \
|
|
time.o \
|
|
utsname.o \
|
|
assert.o \
|
|
signal.o \
|
|
getopt.o \
|
|
scanf.o \
|
|
pwd.o \
|
|
grp.o \
|
|
times.o \
|
|
termcap.o \
|
|
stat.o \
|
|
mntent.o \
|
|
ctype.o \
|
|
fcntl.o \
|
|
termios.o \
|
|
ulimit.o \
|
|
qsort.o \
|
|
ioctl.o \
|
|
utime.o \
|
|
sys/select.o \
|
|
sys/socket.o \
|
|
sys/wait.o \
|
|
sys/uio.o \
|
|
poll.o \
|
|
locale.o \
|
|
arpa/inet.o \
|
|
netdb.o \
|
|
sched.o \
|
|
dlfcn.o
|
|
|
|
ASM_OBJS = setjmp.ao crti.ao crtn.ao
|
|
|
|
CPP_OBJS = $(AK_OBJS) $(WIDGETS_OBJS) $(LIBC_OBJS)
|
|
|
|
LIBRARY = libc.a
|
|
DEFINES += -DUSERLAND -DSERENITY_LIBC_BUILD
|
|
|
|
all: $(LIBRARY) startfiles
|
|
|
|
startfiles:
|
|
@echo "CXX crt0.o"; $(CXX) $(CXXFLAGS) -o crt0.o -c crt0.cpp
|
|
cp crti.ao crti.o
|
|
cp crtn.ao crtn.o
|
|
|
|
$(LIBRARY): $(CPP_OBJS) $(ASM_OBJS)
|
|
@echo "LIB $@"; $(AR) rcs $@ $(CPP_OBJS) $(ASM_OBJS)
|
|
|
|
.cpp.o:
|
|
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
|
|
|
%.ao: %.S
|
|
@echo "AS $@"; $(AS) -o $@ $<
|
|
|
|
-include $(OBJS:%.o=%.d)
|
|
|
|
clean:
|
|
@echo "CLEAN"; rm -f $(LIBRARY) $(CPP_OBJS) $(ASM_OBJS) *.d
|
|
|
|
install: $(LIBRARY) startfiles
|
|
mkdir -p ../Root/usr/include
|
|
mkdir -p ../Root/usr/lib
|
|
# Copy headers
|
|
rsync -r -a --include '*/' --include '*.h' --exclude '*' . ../Root/usr/include
|
|
# Install the library
|
|
cp $(LIBRARY) ../Root/usr/lib
|
|
cp crt0.o ../Root/usr/lib/
|
|
cp crti.ao ../Root/usr/lib/crti.o
|
|
cp crtn.ao ../Root/usr/lib/crtn.o
|