Serenity Operating System
1AK_OBJS = \
2 ../../AK/FileSystemPath.o \
3 ../../AK/FlyString.o \
4 ../../AK/JsonParser.o \
5 ../../AK/JsonValue.o \
6 ../../AK/LogStream.o \
7 ../../AK/MappedFile.o \
8 ../../AK/SharedBuffer.o \
9 ../../AK/String.o \
10 ../../AK/StringBuilder.o \
11 ../../AK/StringImpl.o \
12 ../../AK/StringUtils.o \
13 ../../AK/StringView.o \
14 ../../AK/URL.o \
15 ../../AK/Utf8View.o
16
17LIBC_OBJS = \
18 stdio.o \
19 unistd.o \
20 string.o \
21 strings.o \
22 mman.o \
23 dirent.o \
24 malloc.o \
25 stdlib.o \
26 time.o \
27 utsname.o \
28 assert.o \
29 signal.o \
30 getopt.o \
31 scanf.o \
32 pwd.o \
33 grp.o \
34 times.o \
35 termcap.o \
36 stat.o \
37 mntent.o \
38 ctype.o \
39 fcntl.o \
40 termios.o \
41 ulimit.o \
42 qsort.o \
43 ioctl.o \
44 utime.o \
45 sys/select.o \
46 sys/socket.o \
47 sys/wait.o \
48 sys/uio.o \
49 sys/ptrace.o \
50 poll.o \
51 locale.o \
52 arpa/inet.o \
53 netdb.o \
54 sched.o \
55 dlfcn.o \
56 libgen.o \
57 wchar.o \
58 serenity.o \
59 syslog.o \
60 cxxabi.o \
61 libcinit.o
62
63ELF_OBJS = \
64 ../LibELF/ELFDynamicObject.o \
65 ../LibELF/ELFDynamicLoader.o \
66 ../LibELF/ELFLoader.o \
67 ../LibELF/ELFImage.o
68
69OBJS = $(AK_OBJS) $(LIBC_OBJS) $(ELF_OBJS)
70
71EXTRA_OBJS = \
72 setjmp.ao \
73 crti.ao \
74 crtn.ao \
75 ../LibELF/Arch/i386/plt_trampoline.ao
76
77crt0.o: crt0.cpp
78
79crtio.o: crti.ao
80 $(QUIET) cp crti.ao crti.o
81
82crtn.o: crtin.ao
83 $(QUIET) cp crtn.ao crtn.o
84
85EXTRA_CLEAN = crt0.d crt0.o
86
87DEFINES = -DSERENITY_LIBC_BUILD $(EXTRA_LIBC_DEFINES)
88
89LIBRARY = libc.a
90
91POST_LIBRARY_BUILD = $(QUIET) $(MAKE) install
92
93all: crt0.o $(EXTRA_OBJS) $(LIBRARY)
94
95install:
96 mkdir -p $(SERENITY_BASE_DIR)/Root/usr/include/sys/
97 mkdir -p $(SERENITY_BASE_DIR)/Root/usr/include/bits/
98 mkdir -p $(SERENITY_BASE_DIR)/Root/usr/include/netinet/
99 mkdir -p $(SERENITY_BASE_DIR)/Root/usr/include/net/
100 mkdir -p $(SERENITY_BASE_DIR)/Root/usr/include/arpa/
101 mkdir -p $(SERENITY_BASE_DIR)/Root/usr/lib/
102 cp *.h $(SERENITY_BASE_DIR)/Root/usr/include/
103 cp sys/*.h $(SERENITY_BASE_DIR)/Root/usr/include/sys/
104 cp bits/*.h $(SERENITY_BASE_DIR)/Root/usr/include/bits/
105 cp arpa/*.h $(SERENITY_BASE_DIR)/Root/usr/include/arpa/
106 cp net/*.h $(SERENITY_BASE_DIR)/Root/usr/include/net/
107 cp netinet/*.h $(SERENITY_BASE_DIR)/Root/usr/include/netinet/
108 cp libc.a $(SERENITY_BASE_DIR)/Root/usr/lib/
109 cp crt0.o $(SERENITY_BASE_DIR)/Root/usr/lib/
110 cp crti.ao $(SERENITY_BASE_DIR)/Root/usr/lib/crti.o
111 cp crtn.ao $(SERENITY_BASE_DIR)/Root/usr/lib/crtn.o
112
113include ../../Makefile.common