cosmopolitan/libc/crt/BUILD.mk
Jōshin 3a8e01a77a
more modeline errata (#1019)
Somehow or another, I previously had missed `BUILD.mk` files.

In the process I found a few straggler cases where the modeline was
different from the file, including one very involved manual fix where a
file had been treated like it was ts=2 and ts=8 on separate occasions.

The commit history in the PR shows the gory details; the BUILD.mk was
automated, everything else was mostly manual.
2023-12-16 23:07:10 -05:00

35 lines
1.2 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#-*-mode:makefile-gmake;indent-tabs-mode:t;tab-width:8;coding:utf-8-*-┐
#── vi: set noet ft=make ts=8 sw=8 fenc=utf-8 :vi ────────────────────┘
#
# SYNOPSIS
#
# Cosmopolitan C Runtime.
#
# OVERVIEW
#
# This is a special object library defining the Cosmopolitan SysV
# userspace runtime entrypoint, i.e. _start(). The $(CRT) argument
# should come first in the link order when building ELF binaries;
# becauseo it's the lowest level function; it wraps main(); and it
# decides which runtime support libraries get schlepped into builds.
#
# Please note that, when building an αcτµαlly pδrταblε εxεcµταblε,
# lower-level entrypoints exist and as such, $(CRT) will generally
# come second in link-order after $(APE).
PKGS += CRT
CRT_ARTIFACTS += CRT
CRT = o/$(MODE)/libc/crt/crt.o
CRT_FILES = libc/crt/crt.S
CRT_SRCS = libc/crt/crt.S
CRT_OBJS = o/$(MODE)/libc/crt/crt.o
$(CRT_OBJS): $(BUILD_FILES) libc/crt/BUILD.mk
# these assembly files are safe to build on aarch64
o/$(MODE)/libc/crt/crt.o: libc/crt/crt.S
@$(COMPILE) -AOBJECTIFY.S $(OBJECTIFY.S) $(OUTPUT_OPTION) -c $<
.PHONY: o/$(MODE)/libc/crt
o/$(MODE)/libc/crt: $(CRT)