diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 32 |
1 files changed, 19 insertions, 13 deletions
@@ -1,6 +1,6 @@ AR = ar CC = gcc -CFLAGS = -O0 -g -Wall +CFLAGS = -g arch = x86_64 @@ -12,18 +12,18 @@ cflags = -pipe -std=c99 -nostdinc -D_XOPEN_SOURCE=700 \ -Iarch/$(arch) -Iarch/generic -Isrc/include -Isrc/internal \ -Igenerated/include -Iinclude $(CFLAGS) -prefix = / +prefix = /tmp/root includedir = $(prefix)/include libdir = $(prefix)/lib -src_dirs = src/* src/mallocng crt +src_dirs = crt src/* src/mallocng common_src = $(wildcard $(addsuffix /*.c, $(src_dirs))) arch_src = $(wildcard $(addsuffix /$(arch)/*.[csS], $(src_dirs))) common_obj = $(common_src:.c=.o) arch_obj = $(patsubst %, %.o, $(basename $(arch_src))) replaced_obj = $(subst /$(arch)/,/, $(arch_obj)) -all_obj = $(filter-out $(replaced_obj), $(common_obj) $(arch_obj)) +all_obj = $(sort $(filter-out $(replaced_obj), $(common_obj) $(arch_obj))) memops_obj = $(filter %/memcpy.o %/memmove.o %/memcmp.o %/memset.o, $(all_obj)) crt_obj = $(filter crt/%, $(all_obj)) @@ -50,10 +50,10 @@ gcc_prefix = $(dir $(shell gcc -print-libgcc-file-name)) tool_cflags = -Wall -nostdinc -Wno-main \ -ffreestanding -fno-pic -fno-stack-protector \ -Igenerated/include -Iarch/$(arch) \ - -I /usr/lib/clang/17/include \ + -I$(gcc_prefix)include \ -Iarch/generic $(CFLAGS) -.PRECIOUS: $(addprefix tools/, common.o sed.o) +.PRECIOUS: $(addprefix tools/, common.o sed.o make.o) tools/%.o: tools/%.c tools/common.h $(CC) $(tool_cflags) -c -o $@ $< @@ -68,18 +68,16 @@ default: $(lib_obj) $(dirs): mkdir -p $@ -$(generated_headers): | $(dirs) - generated/include/bits/alltypes.h: arch/$(arch)/bits/alltypes.h.in \ - include/alltypes.h.in tools/sed + include/alltypes.h.in tools/sed | $(dirs) cat $(filter %.in, $^) | tools/sed -f tools/mkalltypes.sed >$@ -generated/include/bits/syscall.h: arch/$(arch)/bits/syscall.h.in tools/sed +generated/include/bits/syscall.h: arch/$(arch)/bits/syscall.h.in \ + tools/sed | $(dirs) cp $< $@ tools/sed 's/__NR_/SYS_/' < $< >>$@ src/internal/version.o: cflags += -DVERSION=\"$(shell cat VERSION)\" -crt/crt1.o: arch/$(arch)/crt_arch.h $(memops_obj): cflags += -fno-tree-loop-distribute-patterns $(crt_obj): cflags += -DCRT @@ -96,8 +94,12 @@ install_cmd = install -D -m 644 $< $@ %.o: %.c $(generated_headers) $(implementation_headers) $(cc_cmd) +crt/crt1.o: crt/crt1.c arch/$(arch)/crt_arch.h $(generated_headers) $(implementation_headers) + $(cc_cmd) + %.o: crt/$(arch)/%.o cp $< $@ + %.o: crt/%.o cp $< $@ @@ -124,7 +126,11 @@ install-libs: $(addprefix $(DESTDIR)$(libdir)/, $(lib_obj)) install-headers: $(all_inc:include/%=$(DESTDIR)$(includedir)/%) install: install-libs install-headers +musl-1.2.5-mod.tar.gz: + git archive --format=tar.gz --prefix=musl-1.2.5-mod/ -o $@ HEAD + clean: rm -rf generated - rm -f crt/*.o src/*/*.o libc.a crt1.o crti.o crtn.o - rm -f tools/*.o tools/sed + rm -f crt/*.o crt/*/*.o src/*/*.o src/*/*/*.o libc.a crt*.o + rm -f tools/*.o tools/sed tools/make + rm -f musl-*.tar.gz |