feat: add support for aarch64 timer/interrupts, port MontaukOS userspace
This commit is contained in:
1 parent
8b6379fb7e
commit
8c09ccef66
101 files changed
+1720
-629
No files matched your search
+46
-31
@@ -2,20 +2,19 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
# Target architecture.
|
||||
ARCH := x86_64
|
||||
# Target architecture (ARCH=x86_64 or aarch64) and the cross compiler
|
||||
# from toolchain/local/.
|
||||
include mk/arch.mk
|
||||
|
||||
# Auto-detect cross compiler from toolchain/local/.
|
||||
TOOLCHAIN_PREFIX := $(shell cd .. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CC = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
CC = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
CC := $(TOOLCHAIN_PREFIX)gcc
|
||||
endif
|
||||
|
||||
# Compiler flags. The x86_64-montauk toolchain supplies the target ABI
|
||||
# Compiler flags. The <arch>-montauk toolchain supplies the target ABI
|
||||
# (static ET_EXEC, 4 KiB pages, no red zone) and header paths; system
|
||||
# programs additionally avoid FP/SIMD and their own runtime (-nostdlib).
|
||||
override CXXFLAGS := \
|
||||
@@ -30,10 +29,7 @@ override CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-mno-80387 \
|
||||
-mno-mmx \
|
||||
-mno-sse \
|
||||
-mno-sse2 \
|
||||
$(ARCH_NOFP_FLAGS) \
|
||||
-I include
|
||||
|
||||
# Linker flags: freestanding static ELF.
|
||||
@@ -43,7 +39,7 @@ override LDFLAGS := \
|
||||
-T link.ld
|
||||
|
||||
# Output directory.
|
||||
BINDIR := bin
|
||||
BINDIR := bin$(ARCH_SUFFIX)
|
||||
|
||||
# Discover all programs (each subdirectory under src/ is a program).
|
||||
PROGRAMS := $(notdir $(wildcard src/*))
|
||||
@@ -98,18 +94,34 @@ WPDST := $(patsubst $(WPDIR)/%,$(BINDIR)/os/wallpapers/%,$(WPSRC))
|
||||
|
||||
.PHONY: all clean 2048 files settings fetch wiki wikipedia weather imageviewer fontpreview spreadsheet wordprocessor pdfviewer disks devexplorer installer audio music video bluetooth network display capabilities keyboard sshserver sshd terminal syslog procmgr powermgr calculator charmap login desktop shell paint tcc lua screenshot texteditor mandelbrot printers timezone printd printctl dialogs icons fonts configs osdata bearssl libc tls libjpeg libjpegwrite install-apps libloader crashpad rtlsdr sdr check-syscalls gen-syscalls rust
|
||||
|
||||
all: bearssl libc libjpeg libjpegwrite tls libloader rtlsdr sdr devkit $(TARGETS) files settings fetch wiki wikipedia weather imageviewer fontpreview spreadsheet wordprocessor pdfviewer disks devexplorer installer audio music video bluetooth network display capabilities sshserver terminal syslog procmgr powermgr calculator charmap 2048 paint tcc lua screenshot texteditor mandelbrot printers timezone printd printctl dialogs login desktop shell sshd icons fonts install-apps crashpad rust $(MANDST) $(WWWDST) $(CA_CERTS) $(CONFIGDST) $(OSDATADST) $(FWDST) $(LICDST) $(WPDST)
|
||||
# The on-OS SDK, tcc (an x86 code generator) and the Rust programs exist
|
||||
# for x86_64 only.
|
||||
ifneq ($(ARCH),x86_64)
|
||||
ARCH_SKIP := devkit tcc rust
|
||||
endif
|
||||
|
||||
ALL_TARGETS := bearssl libc libjpeg libjpegwrite tls libloader rtlsdr sdr devkit $(TARGETS) files settings fetch wiki wikipedia weather imageviewer fontpreview spreadsheet wordprocessor pdfviewer disks devexplorer installer audio music video bluetooth network display capabilities sshserver terminal syslog procmgr powermgr calculator charmap 2048 paint tcc lua screenshot texteditor mandelbrot printers timezone printd printctl dialogs login desktop shell sshd icons fonts install-apps crashpad rust $(MANDST) $(WWWDST) $(CA_CERTS) $(CONFIGDST) $(OSDATADST) $(FWDST) $(LICDST) $(WPDST)
|
||||
|
||||
all: $(filter-out $(ARCH_SKIP),$(ALL_TARGETS))
|
||||
|
||||
# Build BearSSL static library (cross-compiled for freestanding x86_64).
|
||||
BEARSSL_INCLUDES := -isystem $(shell cd .. && pwd)/kernel/freestnd-c-hdrs/x86_64/include -isystem $(abspath include/libc)
|
||||
BEARSSL_INCLUDES := -isystem $(shell cd .. && pwd)/kernel/freestnd-c-hdrs/$(ARCH)/include -isystem $(abspath include/libc)
|
||||
ifeq ($(ARCH),x86_64)
|
||||
BEARSSL_ARCH_FLAGS := -m64 -march=x86-64 -mno-80387 -mno-mmx -mno-red-zone -mcmodel=small
|
||||
else
|
||||
BEARSSL_ARCH_FLAGS := $(ARCH_CFLAGS)
|
||||
endif
|
||||
BEARSSL_LIB := lib/bearssl/build$(ARCH_SUFFIX)/libbearssl.a
|
||||
|
||||
lib/bearssl/build/libbearssl.a:
|
||||
$(BEARSSL_LIB):
|
||||
$(MAKE) -C lib/bearssl CONF=MontaukOS \
|
||||
BEARSSL_CC="$(CC)" \
|
||||
BEARSSL_AR="$(TOOLCHAIN_PREFIX)ar" \
|
||||
BUILD=build$(ARCH_SUFFIX) \
|
||||
BEARSSL_ARCH_FLAGS="$(BEARSSL_ARCH_FLAGS)" \
|
||||
BEARSSL_INCLUDES="$(BEARSSL_INCLUDES)"
|
||||
|
||||
bearssl: lib/bearssl/build/libbearssl.a
|
||||
bearssl: $(BEARSSL_LIB)
|
||||
|
||||
# Build shared libc static library.
|
||||
#
|
||||
@@ -120,11 +132,12 @@ bearssl: lib/bearssl/build/libbearssl.a
|
||||
# under -j and silently leaves programs linked against a stale libc.
|
||||
# Grouped target (&:, GNU make 4.3+): one sub-make produces all of them.
|
||||
LIBC_DIR := lib/libc
|
||||
LIBC_LIB := $(LIBC_DIR)/liblibc.a
|
||||
LIBC_LIB := $(LIBC_DIR)/$(ARCH_OUT)liblibc.a
|
||||
LIBC_SRCS := $(wildcard $(LIBC_DIR)/*.c $(LIBC_DIR)/*.h $(LIBC_DIR)/*.S \
|
||||
$(LIBC_DIR)/crt/*.c) $(LIBC_DIR)/Makefile
|
||||
LIBC_OUTPUTS := $(LIBC_LIB) $(LIBC_DIR)/liblibc-full.a \
|
||||
$(LIBC_DIR)/crt1.o $(LIBC_DIR)/crti.o $(LIBC_DIR)/crtn.o
|
||||
LIBC_OUTPUTS := $(LIBC_LIB) $(LIBC_DIR)/$(ARCH_OUT)liblibc-full.a \
|
||||
$(LIBC_DIR)/$(ARCH_OUT)crt1.o $(LIBC_DIR)/$(ARCH_OUT)crti.o \
|
||||
$(LIBC_DIR)/$(ARCH_OUT)crtn.o
|
||||
|
||||
$(LIBC_OUTPUTS) &: $(LIBC_SRCS)
|
||||
$(MAKE) -C $(LIBC_DIR)
|
||||
@@ -282,7 +295,7 @@ login: bearssl libc
|
||||
$(MAKE) -C src/login
|
||||
|
||||
# Build shell via its own Makefile (multi-file build).
|
||||
shell:
|
||||
shell: libc
|
||||
$(MAKE) -C src/shell
|
||||
|
||||
# Build desktop via its own Makefile (depends on libc, libjpeg, bearssl for user.h, dialogs, and registry config files).
|
||||
@@ -291,11 +304,11 @@ desktop: libc libjpeg bearssl libloader dialogs configs
|
||||
|
||||
# Copy SVG icons for the desktop into bin/os/icons/.
|
||||
icons:
|
||||
../scripts/copy_icons.sh
|
||||
PROGRAMS_BIN=$(BINDIR) ../scripts/copy_icons.sh
|
||||
|
||||
# Copy TTF fonts for the desktop into bin/os/fonts/.
|
||||
fonts:
|
||||
../scripts/copy_fonts.sh
|
||||
PROGRAMS_BIN=$(BINDIR) ../scripts/copy_fonts.sh
|
||||
|
||||
# Copy default system config files into bin/config/.
|
||||
configs: $(CONFIGDST)
|
||||
@@ -400,7 +413,7 @@ crashpad: libc
|
||||
|
||||
# Install app bundles (manifests, icons, data files) into bin/apps/<name>/.
|
||||
install-apps: 2048 files settings paint spreadsheet wordprocessor weather wikipedia imageviewer fontpreview pdfviewer disks devexplorer installer audio music video bluetooth network display capabilities keyboard sshserver terminal syslog procmgr powermgr calculator charmap screenshot texteditor mandelbrot printers timezone crashpad
|
||||
../scripts/install_apps.sh
|
||||
PROGRAMS_BIN=$(BINDIR) ../scripts/install_apps.sh
|
||||
|
||||
# Copy man pages into bin/os/man/ so mkramdisk.sh picks them up.
|
||||
$(BINDIR)/os/man/%: $(MANDIR)/%
|
||||
@@ -446,14 +459,16 @@ $(BINDIR)/os/wallpapers/%: $(WPDIR)/%
|
||||
# (montauk/capabilities.h, Api/Syscall.hpp, ...) rebuilds every program that
|
||||
# uses it. A missing depfile matches the empty rule below, which forces a
|
||||
# rebuild; that is how programs built before this tracking existed catch up.
|
||||
$(BINDIR)/os/%.elf: src/%/main.cpp link.ld GNUmakefile $(LIBC_LIB) obj/%/main.elf.d
|
||||
mkdir -p $(BINDIR)/os obj/$*
|
||||
$(CXX) $(CXXFLAGS) -MMD -MP -MT $@ -MF obj/$*/main.elf.d -c src/$*/main.cpp -o obj/$*/main.o
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) obj/$*/main.o $(LIBC_LIB) -o $@
|
||||
OBJ := obj$(ARCH_SUFFIX)
|
||||
|
||||
obj/%/main.elf.d: ;
|
||||
.PRECIOUS: obj/%/main.elf.d
|
||||
-include $(wildcard obj/*/main.elf.d)
|
||||
$(BINDIR)/os/%.elf: src/%/main.cpp link.ld GNUmakefile $(LIBC_LIB) $(OBJ)/%/main.elf.d
|
||||
mkdir -p $(BINDIR)/os $(OBJ)/$*
|
||||
$(CXX) $(CXXFLAGS) -MMD -MP -MT $@ -MF $(OBJ)/$*/main.elf.d -c src/$*/main.cpp -o $(OBJ)/$*/main.o
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJ)/$*/main.o $(LIBC_LIB) -o $@
|
||||
|
||||
$(OBJ)/%/main.elf.d: ;
|
||||
.PRECIOUS: $(OBJ)/%/main.elf.d
|
||||
-include $(wildcard $(OBJ)/*/main.elf.d)
|
||||
|
||||
# ============================================================================
|
||||
# Native development kit (Montauk SDK): binutils built for MontaukOS
|
||||
@@ -524,7 +539,7 @@ else
|
||||
endif
|
||||
|
||||
clean:
|
||||
rm -rf $(BINDIR) obj $(RUST_DIR)/target
|
||||
rm -rf $(BINDIR) $(OBJ) $(RUST_DIR)/target
|
||||
$(MAKE) -C lib/bearssl clean
|
||||
$(MAKE) -C lib/libc clean
|
||||
$(MAKE) -C lib/libjpeg clean
|
||||
|
||||
@@ -13,6 +13,18 @@
|
||||
|
||||
namespace gui {
|
||||
|
||||
// Drain write-combining stores to the scanout buffer before it is flipped
|
||||
// or composited by someone else.
|
||||
inline void wc_store_fence() {
|
||||
#if defined(__x86_64__)
|
||||
asm volatile("sfence" ::: "memory");
|
||||
#elif defined(__aarch64__)
|
||||
asm volatile("dsb st" ::: "memory");
|
||||
#else
|
||||
#error "unsupported architecture"
|
||||
#endif
|
||||
}
|
||||
|
||||
class Framebuffer {
|
||||
uint32_t* hw_fb;
|
||||
uint32_t* hw_fb2; // second scanout buffer (page flip), nullptr if unsupported
|
||||
@@ -322,12 +334,12 @@ public:
|
||||
montauk::memcpy(mirror, src, row_bytes);
|
||||
}
|
||||
}
|
||||
if (hw_mirror) asm volatile("sfence" ::: "memory");
|
||||
if (hw_mirror) wc_store_fence();
|
||||
|
||||
if (hw_fb2) {
|
||||
// Wait for the latch (vsync): the buffer we just left becomes
|
||||
// safe to draw into only once the new one is actually scanning.
|
||||
asm volatile("sfence" ::: "memory");
|
||||
wc_store_fence();
|
||||
int64_t presented = montauk::fb_flip(hw_next, 1);
|
||||
if (presented == hw_next) {
|
||||
hw_next ^= 1;
|
||||
@@ -359,7 +371,7 @@ public:
|
||||
montauk::memcpy(mirror, src, row_bytes);
|
||||
}
|
||||
}
|
||||
asm volatile("sfence" ::: "memory");
|
||||
wc_store_fence();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -419,6 +419,8 @@ typedef struct {
|
||||
Raw syscall wrappers
|
||||
==================================================================== */
|
||||
|
||||
#if defined(__x86_64__)
|
||||
|
||||
static inline long _mtk_syscall0(long nr) {
|
||||
long ret;
|
||||
__asm__ volatile("syscall" : "=a"(ret) : "a"(nr)
|
||||
@@ -491,6 +493,66 @@ static inline long _mtk_syscall5(long nr, long a1, long a2, long a3, long a4, lo
|
||||
return ret;
|
||||
}
|
||||
|
||||
#elif defined(__aarch64__)
|
||||
|
||||
// AArch64: number in x8, arguments in x0-x5, `svc #0`; the kernel
|
||||
// preserves every register except x0, which carries the result.
|
||||
static inline long _mtk_syscall0(long nr) {
|
||||
register long x8 __asm__("x8") = nr;
|
||||
register long x0 __asm__("x0");
|
||||
__asm__ volatile("svc #0" : "=r"(x0) : "r"(x8) : "memory");
|
||||
return x0;
|
||||
}
|
||||
|
||||
static inline long _mtk_syscall1(long nr, long a1) {
|
||||
register long x8 __asm__("x8") = nr;
|
||||
register long x0 __asm__("x0") = a1;
|
||||
__asm__ volatile("svc #0" : "+r"(x0) : "r"(x8) : "memory");
|
||||
return x0;
|
||||
}
|
||||
|
||||
static inline long _mtk_syscall2(long nr, long a1, long a2) {
|
||||
register long x8 __asm__("x8") = nr;
|
||||
register long x0 __asm__("x0") = a1;
|
||||
register long x1 __asm__("x1") = a2;
|
||||
__asm__ volatile("svc #0" : "+r"(x0) : "r"(x8), "r"(x1) : "memory");
|
||||
return x0;
|
||||
}
|
||||
|
||||
static inline long _mtk_syscall3(long nr, long a1, long a2, long a3) {
|
||||
register long x8 __asm__("x8") = nr;
|
||||
register long x0 __asm__("x0") = a1;
|
||||
register long x1 __asm__("x1") = a2;
|
||||
register long x2 __asm__("x2") = a3;
|
||||
__asm__ volatile("svc #0" : "+r"(x0) : "r"(x8), "r"(x1), "r"(x2) : "memory");
|
||||
return x0;
|
||||
}
|
||||
|
||||
static inline long _mtk_syscall4(long nr, long a1, long a2, long a3, long a4) {
|
||||
register long x8 __asm__("x8") = nr;
|
||||
register long x0 __asm__("x0") = a1;
|
||||
register long x1 __asm__("x1") = a2;
|
||||
register long x2 __asm__("x2") = a3;
|
||||
register long x3 __asm__("x3") = a4;
|
||||
__asm__ volatile("svc #0" : "+r"(x0) : "r"(x8), "r"(x1), "r"(x2), "r"(x3) : "memory");
|
||||
return x0;
|
||||
}
|
||||
|
||||
static inline long _mtk_syscall5(long nr, long a1, long a2, long a3, long a4, long a5) {
|
||||
register long x8 __asm__("x8") = nr;
|
||||
register long x0 __asm__("x0") = a1;
|
||||
register long x1 __asm__("x1") = a2;
|
||||
register long x2 __asm__("x2") = a3;
|
||||
register long x3 __asm__("x3") = a4;
|
||||
register long x4 __asm__("x4") = a5;
|
||||
__asm__ volatile("svc #0" : "+r"(x0) : "r"(x8), "r"(x1), "r"(x2), "r"(x3), "r"(x4) : "memory");
|
||||
return x0;
|
||||
}
|
||||
|
||||
#else
|
||||
#error "unsupported architecture"
|
||||
#endif
|
||||
|
||||
/* ====================================================================
|
||||
Process management
|
||||
==================================================================== */
|
||||
|
||||
@@ -7,7 +7,11 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef unsigned long jmp_buf[8];
|
||||
#if defined(__aarch64__)
|
||||
typedef unsigned long jmp_buf[21]; /* x19-x30, sp, d8-d15 */
|
||||
#else
|
||||
typedef unsigned long jmp_buf[8]; /* rbx, rbp, r12-r15, rsp, rip */
|
||||
#endif
|
||||
|
||||
int setjmp(jmp_buf env);
|
||||
void longjmp(jmp_buf env, int val) __attribute__((noreturn));
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* syscall.h
|
||||
* MontaukOS program-side syscall wrappers using SYSCALL instruction
|
||||
* MontaukOS program-side syscall wrappers (x86_64 SYSCALL, AArch64 SVC)
|
||||
* Copyright (c) 2025 Daniel Hammer
|
||||
*/
|
||||
|
||||
@@ -13,6 +13,8 @@ namespace montauk {
|
||||
|
||||
// ---- Raw SYSCALL wrappers ----
|
||||
|
||||
#if defined(__x86_64__)
|
||||
|
||||
// The SYSCALL handler does not restore RDI, RSI, RDX, R10, R8, R9
|
||||
// (they are skipped on the return path). We move arguments into the
|
||||
// correct registers inside the asm block and list ALL argument
|
||||
@@ -108,6 +110,79 @@ namespace montauk {
|
||||
return ret;
|
||||
}
|
||||
|
||||
#elif defined(__aarch64__)
|
||||
|
||||
// AArch64: number in x8, arguments in x0-x5, `svc #0`; the kernel
|
||||
// preserves every register except x0, which carries the result.
|
||||
|
||||
inline int64_t syscall0(uint64_t nr) {
|
||||
register uint64_t x8 asm("x8") = nr;
|
||||
register uint64_t x0 asm("x0");
|
||||
asm volatile("svc #0" : "=r"(x0) : "r"(x8) : "memory");
|
||||
return (int64_t)x0;
|
||||
}
|
||||
|
||||
inline int64_t syscall1(uint64_t nr, uint64_t a1) {
|
||||
register uint64_t x8 asm("x8") = nr;
|
||||
register uint64_t x0 asm("x0") = a1;
|
||||
asm volatile("svc #0" : "+r"(x0) : "r"(x8) : "memory");
|
||||
return (int64_t)x0;
|
||||
}
|
||||
|
||||
inline int64_t syscall2(uint64_t nr, uint64_t a1, uint64_t a2) {
|
||||
register uint64_t x8 asm("x8") = nr;
|
||||
register uint64_t x0 asm("x0") = a1;
|
||||
register uint64_t x1 asm("x1") = a2;
|
||||
asm volatile("svc #0" : "+r"(x0) : "r"(x8), "r"(x1) : "memory");
|
||||
return (int64_t)x0;
|
||||
}
|
||||
|
||||
inline int64_t syscall3(uint64_t nr, uint64_t a1, uint64_t a2, uint64_t a3) {
|
||||
register uint64_t x8 asm("x8") = nr;
|
||||
register uint64_t x0 asm("x0") = a1;
|
||||
register uint64_t x1 asm("x1") = a2;
|
||||
register uint64_t x2 asm("x2") = a3;
|
||||
asm volatile("svc #0" : "+r"(x0) : "r"(x8), "r"(x1), "r"(x2) : "memory");
|
||||
return (int64_t)x0;
|
||||
}
|
||||
|
||||
inline int64_t syscall4(uint64_t nr, uint64_t a1, uint64_t a2, uint64_t a3, uint64_t a4) {
|
||||
register uint64_t x8 asm("x8") = nr;
|
||||
register uint64_t x0 asm("x0") = a1;
|
||||
register uint64_t x1 asm("x1") = a2;
|
||||
register uint64_t x2 asm("x2") = a3;
|
||||
register uint64_t x3 asm("x3") = a4;
|
||||
asm volatile("svc #0" : "+r"(x0) : "r"(x8), "r"(x1), "r"(x2), "r"(x3) : "memory");
|
||||
return (int64_t)x0;
|
||||
}
|
||||
|
||||
inline int64_t syscall5(uint64_t nr, uint64_t a1, uint64_t a2, uint64_t a3, uint64_t a4, uint64_t a5) {
|
||||
register uint64_t x8 asm("x8") = nr;
|
||||
register uint64_t x0 asm("x0") = a1;
|
||||
register uint64_t x1 asm("x1") = a2;
|
||||
register uint64_t x2 asm("x2") = a3;
|
||||
register uint64_t x3 asm("x3") = a4;
|
||||
register uint64_t x4 asm("x4") = a5;
|
||||
asm volatile("svc #0" : "+r"(x0) : "r"(x8), "r"(x1), "r"(x2), "r"(x3), "r"(x4) : "memory");
|
||||
return (int64_t)x0;
|
||||
}
|
||||
|
||||
inline int64_t syscall6(uint64_t nr, uint64_t a1, uint64_t a2, uint64_t a3, uint64_t a4, uint64_t a5, uint64_t a6) {
|
||||
register uint64_t x8 asm("x8") = nr;
|
||||
register uint64_t x0 asm("x0") = a1;
|
||||
register uint64_t x1 asm("x1") = a2;
|
||||
register uint64_t x2 asm("x2") = a3;
|
||||
register uint64_t x3 asm("x3") = a4;
|
||||
register uint64_t x4 asm("x4") = a5;
|
||||
register uint64_t x5 asm("x5") = a6;
|
||||
asm volatile("svc #0" : "+r"(x0) : "r"(x8), "r"(x1), "r"(x2), "r"(x3), "r"(x4), "r"(x5) : "memory");
|
||||
return (int64_t)x0;
|
||||
}
|
||||
|
||||
#else
|
||||
#error "unsupported architecture"
|
||||
#endif
|
||||
|
||||
// ---- Typed wrappers ----
|
||||
|
||||
// Process
|
||||
|
||||
+17
-18
@@ -6,7 +6,7 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CC := $(TOOLCHAIN_PREFIX)gcc
|
||||
AR := $(TOOLCHAIN_PREFIX)ar
|
||||
@@ -20,7 +20,7 @@ endif
|
||||
# ---- Paths ----
|
||||
|
||||
LIBC_INC := ../../include/libc
|
||||
OBJDIR := obj
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
CRTDIR := crt
|
||||
ASM_OBJS := $(OBJDIR)/setjmp.o
|
||||
|
||||
@@ -38,12 +38,8 @@ CFLAGS := \
|
||||
-fno-PIC \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-m64 \
|
||||
-march=x86-64 \
|
||||
-msse \
|
||||
-msse2 \
|
||||
-mno-red-zone \
|
||||
-mcmodel=small \
|
||||
$(ARCH_CFLAGS) \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-isystem $(LIBC_INC) \
|
||||
-isystem $(shell $(CC) -print-file-name=include)
|
||||
|
||||
@@ -55,18 +51,16 @@ CRT_CFLAGS := \
|
||||
-fno-stack-protector \
|
||||
-fno-stack-check \
|
||||
-fno-PIC \
|
||||
-m64 \
|
||||
-march=x86-64 \
|
||||
-mno-red-zone \
|
||||
$(ARCH_CFLAGS) \
|
||||
-fno-tree-loop-distribute-patterns \
|
||||
-isystem $(LIBC_INC) \
|
||||
-isystem $(shell $(CC) -print-file-name=include)
|
||||
|
||||
# ---- Target ----
|
||||
|
||||
TARGET := liblibc.a
|
||||
SDK_TARGET := liblibc-full.a
|
||||
CRT_OBJS := crt1.o crti.o crtn.o
|
||||
TARGET := $(ARCH_OUT)liblibc.a
|
||||
SDK_TARGET := $(ARCH_OUT)liblibc-full.a
|
||||
CRT_OBJS := $(ARCH_OUT)crt1.o $(ARCH_OUT)crti.o $(ARCH_OUT)crtn.o
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
@@ -77,6 +71,7 @@ all: $(TARGET) $(SDK_TARGET) $(CRT_OBJS)
|
||||
# a float leave the decimal-conversion and pow/exp/log code behind. Programs
|
||||
# that do need %e/%f/%g must link with -Wl,-u,_pf_putfloat to force it in.
|
||||
$(TARGET): $(OBJDIR)/libc.o $(OBJDIR)/printf_float.o $(ASM_OBJS)
|
||||
@mkdir -p $(dir $@)
|
||||
$(AR) rcs $@ $^
|
||||
|
||||
$(OBJDIR)/libc.o: libc.c printf_internal.h Makefile
|
||||
@@ -87,7 +82,7 @@ $(OBJDIR)/printf_float.o: printf_float.c printf_internal.h Makefile
|
||||
@mkdir -p $(OBJDIR)
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
$(OBJDIR)/setjmp.o: setjmp.S Makefile
|
||||
$(OBJDIR)/setjmp.o: arch/setjmp-$(ARCH).S Makefile
|
||||
@mkdir -p $(OBJDIR)
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
@@ -97,18 +92,22 @@ $(OBJDIR)/setjmp.o: setjmp.S Makefile
|
||||
# compiled ON MontaukOS. Function-level --gc-sections still applies to the
|
||||
# rest; only the float path is pinned. Image size is not a concern here.
|
||||
$(SDK_TARGET): $(OBJDIR)/libc-merged.o $(ASM_OBJS)
|
||||
@mkdir -p $(dir $@)
|
||||
$(AR) rcs $@ $^
|
||||
|
||||
$(OBJDIR)/libc-merged.o: $(OBJDIR)/libc.o $(OBJDIR)/printf_float.o
|
||||
$(LD) -r -o $@ $(OBJDIR)/libc.o $(OBJDIR)/printf_float.o
|
||||
|
||||
crt1.o: $(CRTDIR)/crt1.c Makefile
|
||||
$(ARCH_OUT)crt1.o: $(CRTDIR)/crt1.c Makefile
|
||||
@mkdir -p $(dir $@)
|
||||
$(CC) $(CRT_CFLAGS) -c $< -o $@
|
||||
|
||||
crti.o: $(CRTDIR)/crti.c Makefile
|
||||
$(ARCH_OUT)crti.o: $(CRTDIR)/crti.c Makefile
|
||||
@mkdir -p $(dir $@)
|
||||
$(CC) $(CRT_CFLAGS) -c $< -o $@
|
||||
|
||||
crtn.o: $(CRTDIR)/crtn.c Makefile
|
||||
$(ARCH_OUT)crtn.o: $(CRTDIR)/crtn.c Makefile
|
||||
@mkdir -p $(dir $@)
|
||||
$(CC) $(CRT_CFLAGS) -c $< -o $@
|
||||
|
||||
clean:
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* setjmp-aarch64.S
|
||||
* setjmp/longjmp for AArch64 MontaukOS userspace
|
||||
* Copyright (c) 2026 Daniel Hammer
|
||||
*/
|
||||
|
||||
/* jmp_buf: x19-x28, x29 (fp), x30 (lr), sp, d8-d15 -- everything AAPCS64
|
||||
requires a callee to preserve. */
|
||||
|
||||
.text
|
||||
|
||||
.global setjmp
|
||||
.type setjmp, %function
|
||||
setjmp:
|
||||
stp x19, x20, [x0, #0]
|
||||
stp x21, x22, [x0, #16]
|
||||
stp x23, x24, [x0, #32]
|
||||
stp x25, x26, [x0, #48]
|
||||
stp x27, x28, [x0, #64]
|
||||
stp x29, x30, [x0, #80]
|
||||
mov x2, sp
|
||||
str x2, [x0, #96]
|
||||
stp d8, d9, [x0, #104]
|
||||
stp d10, d11, [x0, #120]
|
||||
stp d12, d13, [x0, #136]
|
||||
stp d14, d15, [x0, #152]
|
||||
mov w0, #0
|
||||
ret
|
||||
.size setjmp, . - setjmp
|
||||
|
||||
.global longjmp
|
||||
.type longjmp, %function
|
||||
longjmp:
|
||||
ldp x19, x20, [x0, #0]
|
||||
ldp x21, x22, [x0, #16]
|
||||
ldp x23, x24, [x0, #32]
|
||||
ldp x25, x26, [x0, #48]
|
||||
ldp x27, x28, [x0, #64]
|
||||
ldp x29, x30, [x0, #80]
|
||||
ldr x2, [x0, #96]
|
||||
mov sp, x2
|
||||
ldp d8, d9, [x0, #104]
|
||||
ldp d10, d11, [x0, #120]
|
||||
ldp d12, d13, [x0, #136]
|
||||
ldp d14, d15, [x0, #152]
|
||||
cmp w1, #0
|
||||
csinc w0, w1, wzr, ne
|
||||
ret
|
||||
.size longjmp, . - longjmp
|
||||
File renamed without changes.
@@ -8,6 +8,8 @@
|
||||
* calls main(), then exits with main()'s return code.
|
||||
*/
|
||||
|
||||
#if defined(__x86_64__)
|
||||
|
||||
static inline long _sys1(long nr, long a1) {
|
||||
long ret;
|
||||
__asm__ volatile(
|
||||
@@ -31,6 +33,27 @@ static inline long _sys2(long nr, long a1, long a2) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
#elif defined(__aarch64__)
|
||||
|
||||
static inline long _sys1(long nr, long a1) {
|
||||
register long x8 __asm__("x8") = nr;
|
||||
register long x0 __asm__("x0") = a1;
|
||||
__asm__ volatile("svc #0" : "+r"(x0) : "r"(x8) : "memory");
|
||||
return x0;
|
||||
}
|
||||
|
||||
static inline long _sys2(long nr, long a1, long a2) {
|
||||
register long x8 __asm__("x8") = nr;
|
||||
register long x0 __asm__("x0") = a1;
|
||||
register long x1 __asm__("x1") = a2;
|
||||
__asm__ volatile("svc #0" : "+r"(x0) : "r"(x8), "r"(x1) : "memory");
|
||||
return x0;
|
||||
}
|
||||
|
||||
#else
|
||||
#error "unsupported architecture"
|
||||
#endif
|
||||
|
||||
#define SYS_EXIT 0
|
||||
#define SYS_GETARGS 25
|
||||
#define SYS_GETEXECPATH 151
|
||||
|
||||
@@ -32,6 +32,8 @@
|
||||
Raw syscall wrappers (C versions matching kernel ABI)
|
||||
======================================================================== */
|
||||
|
||||
#if defined(__x86_64__)
|
||||
|
||||
static inline long _mtk_syscall0(long nr) {
|
||||
long ret;
|
||||
__asm__ volatile("syscall" : "=a"(ret) : "a"(nr)
|
||||
@@ -89,6 +91,55 @@ static inline long _mtk_syscall4(long nr, long a1, long a2, long a3, long a4) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
#elif defined(__aarch64__)
|
||||
|
||||
// AArch64: number in x8, arguments in x0-x5, `svc #0`; the kernel
|
||||
// preserves every register except x0, which carries the result.
|
||||
static inline long _mtk_syscall0(long nr) {
|
||||
register long x8 __asm__("x8") = nr;
|
||||
register long x0 __asm__("x0");
|
||||
__asm__ volatile("svc #0" : "=r"(x0) : "r"(x8) : "memory");
|
||||
return x0;
|
||||
}
|
||||
|
||||
static inline long _mtk_syscall1(long nr, long a1) {
|
||||
register long x8 __asm__("x8") = nr;
|
||||
register long x0 __asm__("x0") = a1;
|
||||
__asm__ volatile("svc #0" : "+r"(x0) : "r"(x8) : "memory");
|
||||
return x0;
|
||||
}
|
||||
|
||||
static inline long _mtk_syscall2(long nr, long a1, long a2) {
|
||||
register long x8 __asm__("x8") = nr;
|
||||
register long x0 __asm__("x0") = a1;
|
||||
register long x1 __asm__("x1") = a2;
|
||||
__asm__ volatile("svc #0" : "+r"(x0) : "r"(x8), "r"(x1) : "memory");
|
||||
return x0;
|
||||
}
|
||||
|
||||
static inline long _mtk_syscall3(long nr, long a1, long a2, long a3) {
|
||||
register long x8 __asm__("x8") = nr;
|
||||
register long x0 __asm__("x0") = a1;
|
||||
register long x1 __asm__("x1") = a2;
|
||||
register long x2 __asm__("x2") = a3;
|
||||
__asm__ volatile("svc #0" : "+r"(x0) : "r"(x8), "r"(x1), "r"(x2) : "memory");
|
||||
return x0;
|
||||
}
|
||||
|
||||
static inline long _mtk_syscall4(long nr, long a1, long a2, long a3, long a4) {
|
||||
register long x8 __asm__("x8") = nr;
|
||||
register long x0 __asm__("x0") = a1;
|
||||
register long x1 __asm__("x1") = a2;
|
||||
register long x2 __asm__("x2") = a3;
|
||||
register long x3 __asm__("x3") = a4;
|
||||
__asm__ volatile("svc #0" : "+r"(x0) : "r"(x8), "r"(x1), "r"(x2), "r"(x3) : "memory");
|
||||
return x0;
|
||||
}
|
||||
|
||||
#else
|
||||
#error "unsupported architecture"
|
||||
#endif
|
||||
|
||||
/* Syscall numbers */
|
||||
#define SYS_EXIT 0
|
||||
#define SYS_YIELD 1
|
||||
|
||||
@@ -6,7 +6,7 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CC := $(TOOLCHAIN_PREFIX)gcc
|
||||
AR := $(TOOLCHAIN_PREFIX)ar
|
||||
@@ -19,8 +19,7 @@ endif
|
||||
|
||||
LIBC_INC := ../../include/libc
|
||||
PROG_INC := ../../include
|
||||
OBJDIR := obj
|
||||
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
# ---- Compiler flags ----
|
||||
|
||||
CFLAGS := \
|
||||
@@ -36,25 +35,22 @@ CFLAGS := \
|
||||
-fno-PIC \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-m64 \
|
||||
-march=x86-64 \
|
||||
-msse \
|
||||
-msse2 \
|
||||
-mno-red-zone \
|
||||
-mcmodel=small \
|
||||
$(ARCH_CFLAGS) \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(LIBC_INC) \
|
||||
-isystem $(shell $(CC) -print-file-name=include)
|
||||
|
||||
# ---- Target ----
|
||||
|
||||
TARGET := libjpeg.a
|
||||
TARGET := $(ARCH_OUT)libjpeg.a
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJDIR)/stb_image_impl.o
|
||||
@mkdir -p $(dir $@)
|
||||
$(AR) rcs $@ $^
|
||||
|
||||
$(OBJDIR)/stb_image_impl.o: stb_image_impl.c Makefile
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -6,7 +6,7 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CC := $(TOOLCHAIN_PREFIX)gcc
|
||||
AR := $(TOOLCHAIN_PREFIX)ar
|
||||
@@ -19,8 +19,7 @@ endif
|
||||
|
||||
LIBC_INC := ../../include/libc
|
||||
PROG_INC := ../../include
|
||||
OBJDIR := obj
|
||||
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
# ---- Compiler flags ----
|
||||
|
||||
CFLAGS := \
|
||||
@@ -37,25 +36,22 @@ CFLAGS := \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-fno-tree-loop-distribute-patterns \
|
||||
-m64 \
|
||||
-march=x86-64 \
|
||||
-msse \
|
||||
-msse2 \
|
||||
-mno-red-zone \
|
||||
-mcmodel=small \
|
||||
$(ARCH_CFLAGS) \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(LIBC_INC) \
|
||||
-isystem $(shell $(CC) -print-file-name=include)
|
||||
|
||||
# ---- Target ----
|
||||
|
||||
TARGET := libjpegwrite.a
|
||||
TARGET := $(ARCH_OUT)libjpegwrite.a
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJDIR)/stb_image_write_impl.o
|
||||
@mkdir -p $(dir $@)
|
||||
$(AR) rcs $@ $^
|
||||
|
||||
$(OBJDIR)/stb_image_write_impl.o: stb_image_write_impl.c Makefile
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -6,7 +6,7 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
AR := $(TOOLCHAIN_PREFIX)ar
|
||||
@@ -20,8 +20,7 @@ endif
|
||||
BEARSSL := ../bearssl
|
||||
LIBC_INC := ../../include/libc
|
||||
PROG_INC := ../../include
|
||||
OBJDIR := obj
|
||||
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
# ---- Compiler flags ----
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -39,29 +38,24 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-m64 \
|
||||
-march=x86-64 \
|
||||
-mno-80387 \
|
||||
-mno-mmx \
|
||||
-mno-sse \
|
||||
-mno-sse2 \
|
||||
-mno-red-zone \
|
||||
-mcmodel=small \
|
||||
$(ARCH_CFLAGS) \
|
||||
$(ARCH_NOFP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(LIBC_INC) \
|
||||
-I $(BEARSSL)/inc \
|
||||
-isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \
|
||||
-isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include
|
||||
-isystem ../../../kernel/freestnd-c-hdrs/$(ARCH)/include \
|
||||
-isystem ../../../kernel/freestnd-cxx-hdrs/$(ARCH)/include
|
||||
|
||||
# ---- Target ----
|
||||
|
||||
TARGET := libtls.a
|
||||
TARGET := $(ARCH_OUT)libtls.a
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJDIR)/tls.o
|
||||
@mkdir -p $(dir $@)
|
||||
$(AR) rcs $@ $^
|
||||
|
||||
$(OBJDIR)/tls.o: tls.cpp Makefile
|
||||
|
||||
Binary file not shown.
Binary file not shown.
+2
-3
@@ -3,11 +3,10 @@
|
||||
* Linker script for MontaukOS userspace programs
|
||||
* Copyright (c) 2025 Daniel Hammer
|
||||
*
|
||||
* Programs are loaded at a standard user-space address.
|
||||
* Programs are loaded at a standard user-space address. The output
|
||||
* format is the toolchain's default (x86_64-montauk or aarch64-montauk).
|
||||
*/
|
||||
|
||||
OUTPUT_FORMAT(elf64-x86-64)
|
||||
|
||||
ENTRY(_start)
|
||||
|
||||
SECTIONS
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
# arch.mk - Target architecture settings shared by every userspace Makefile
|
||||
# Copyright (c) 2026 Daniel Hammer
|
||||
#
|
||||
# Included by programs/GNUmakefile and the per-program/per-library
|
||||
# Makefiles. Pass ARCH=aarch64 (the top-level build does) to build for ARM.
|
||||
#
|
||||
# x86_64 keeps the historical layout: objects in obj/, programs in bin/,
|
||||
# libraries next to their sources. Other architectures build side by side:
|
||||
# obj-<arch>/, bin-<arch>/ and lib/<name>/build-<arch>/.
|
||||
|
||||
ARCH ?= x86_64
|
||||
|
||||
ifeq ($(filter $(ARCH),x86_64 aarch64),)
|
||||
$(error Unsupported ARCH '$(ARCH)' for userspace)
|
||||
endif
|
||||
|
||||
MONTAUK_ROOT := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))/../..)
|
||||
|
||||
ifeq ($(ARCH),x86_64)
|
||||
ARCH_SUFFIX :=
|
||||
ARCH_OUT :=
|
||||
else
|
||||
ARCH_SUFFIX := -$(ARCH)
|
||||
ARCH_OUT := build-$(ARCH)/
|
||||
endif
|
||||
|
||||
TOOLCHAIN_PREFIX := $(MONTAUK_ROOT)/toolchain/local/bin/$(ARCH)-montauk-
|
||||
TOOLCHAIN_MISSING := $(ARCH)-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh $(ARCH) first
|
||||
|
||||
# ARCH_FP_FLAGS: programs that use floating point / SIMD (GUI apps)
|
||||
# ARCH_NOFP_FLAGS: system programs that must not touch FP/SIMD registers
|
||||
# ARCH_CFLAGS: code-model flags the libraries pass explicitly
|
||||
ifeq ($(ARCH),x86_64)
|
||||
ARCH_FP_FLAGS := -msse -msse2
|
||||
ARCH_NOFP_FLAGS := -mno-80387 -mno-mmx -mno-sse -mno-sse2
|
||||
ARCH_CFLAGS := -m64 -march=x86-64 -mno-red-zone -mcmodel=small
|
||||
ARCH_LD_EMULATION := elf_x86_64
|
||||
else
|
||||
ARCH_FP_FLAGS :=
|
||||
ARCH_NOFP_FLAGS := -mgeneral-regs-only
|
||||
ARCH_CFLAGS := -mcmodel=small
|
||||
ARCH_LD_EMULATION := aarch64elf
|
||||
endif
|
||||
@@ -4,17 +4,17 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -31,8 +31,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-MMD -MP \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
@@ -46,8 +45,8 @@ SRCS := main.cpp stb_truetype_impl.cpp
|
||||
OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o))
|
||||
|
||||
TARGET := $(BINDIR)/apps/2048/2048.elf
|
||||
LOADER_LIB := $(LIBDIR)/libloader/liblibloader.a
|
||||
LIBC_LIB := $(LIBDIR)/libc/liblibc.a
|
||||
LOADER_LIB := $(LIBDIR)/libloader/$(ARCH_OUT)liblibloader.a
|
||||
LIBC_LIB := $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -17,8 +17,8 @@ endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
# ---- Compiler flags ----
|
||||
@@ -37,8 +37,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
|
||||
@@ -62,9 +61,9 @@ TARGET := $(BINDIR)/apps/audio/audio.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/apps/audio
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -17,8 +17,8 @@ endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
# ---- Compiler flags ----
|
||||
@@ -37,8 +37,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
|
||||
@@ -62,9 +61,9 @@ TARGET := $(BINDIR)/apps/bluetooth/bluetooth.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/apps/bluetooth
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -17,8 +17,8 @@ endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
# ---- Compiler flags ----
|
||||
@@ -37,8 +37,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
|
||||
@@ -62,9 +61,9 @@ TARGET := $(BINDIR)/apps/calculator/calculator.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/apps/calculator
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -31,8 +31,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-MMD -MP \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
@@ -46,7 +45,7 @@ SRCS := main.cpp stb_truetype_impl.cpp
|
||||
OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o))
|
||||
|
||||
TARGET := $(BINDIR)/apps/capabilities/capabilities.elf
|
||||
LIBS := $(LIBDIR)/libc/liblibc.a
|
||||
LIBS := $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -17,8 +17,8 @@ endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
# ---- Compiler flags ----
|
||||
@@ -37,8 +37,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
|
||||
@@ -62,9 +61,9 @@ TARGET := $(BINDIR)/apps/charmap/charmap.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/apps/charmap
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -31,8 +31,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-MMD -MP \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc \
|
||||
@@ -47,7 +46,7 @@ SRCS := main.cpp stb_truetype_impl.cpp font_data.cpp
|
||||
OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o))
|
||||
|
||||
TARGET := $(BINDIR)/apps/crashpad/crashpad.elf
|
||||
LIBS := $(LIBDIR)/libc/liblibc.a
|
||||
LIBS := $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -19,11 +19,10 @@ PROG_INC := ../../include
|
||||
JPEG_LIB := ../../lib/libjpeg
|
||||
LIBC_LIB := ../../lib/libc
|
||||
BEARSSL := ../../lib/bearssl
|
||||
LOADER_LIB := ../../lib/libloader/liblibloader.a
|
||||
LOADER_LIB := ../../lib/libloader/$(ARCH_OUT)liblibloader.a
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
# ---- C++ compiler flags ----
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -40,8 +39,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-MMD -MP \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc \
|
||||
@@ -71,7 +69,7 @@ all: $(TARGET)
|
||||
|
||||
# ---- Libraries ----
|
||||
|
||||
LIBS := $(LOADER_LIB) $(JPEG_LIB)/libjpeg.a $(BEARSSL)/libbearssl.a $(LIBC_LIB)/liblibc.a
|
||||
LIBS := $(LOADER_LIB) $(JPEG_LIB)/$(ARCH_OUT)libjpeg.a $(BEARSSL)/build$(ARCH_SUFFIX)/libbearssl.a $(LIBC_LIB)/$(ARCH_OUT)liblibc.a
|
||||
|
||||
$(TARGET): $(OBJS) $(LIBS) $(LINK_LD) Makefile
|
||||
mkdir -p $(BINDIR)/os
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -17,8 +17,8 @@ endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
# ---- Compiler flags ----
|
||||
@@ -37,8 +37,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc \
|
||||
-I ../../lib/bearssl/inc
|
||||
@@ -63,9 +62,9 @@ TARGET := $(BINDIR)/apps/devexplorer/devexplorer.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/apps/devexplorer
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CC = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
LD = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
STRIP = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CC = $(error $(TOOLCHAIN_MISSING))
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
LD = $(error $(TOOLCHAIN_MISSING))
|
||||
STRIP = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CC := $(TOOLCHAIN_PREFIX)gcc
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
@@ -18,9 +18,9 @@ else
|
||||
endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LIBOUTDIR := ../../bin/os
|
||||
OBJDIR := obj
|
||||
LEGACY_APPDIR := ../../bin/apps/dialogs
|
||||
LIBOUTDIR := ../../bin$(ARCH_SUFFIX)/os
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LEGACY_APPDIR := ../../bin$(ARCH_SUFFIX)/apps/dialogs
|
||||
LIBC_SRC := ../../lib/libc/libc.c
|
||||
GCC_INCLUDE := $(shell $(CC) -print-file-name=include)
|
||||
|
||||
@@ -40,8 +40,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-MMD -MP \
|
||||
-DGUI_DIALOGS_LIBRARY_BUILD \
|
||||
-I $(PROG_INC) \
|
||||
@@ -55,7 +54,7 @@ LDFLAGS := \
|
||||
--hash-style=sysv \
|
||||
-u dialogs_run_request \
|
||||
-u dialogs_message_box \
|
||||
-m elf_x86_64
|
||||
-m $(ARCH_LD_EMULATION)
|
||||
|
||||
LIBC_CFLAGS := \
|
||||
-std=gnu11 \
|
||||
@@ -69,8 +68,7 @@ LIBC_CFLAGS := \
|
||||
-fvisibility=hidden \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-isystem $(PROG_INC)/libc \
|
||||
-isystem $(GCC_INCLUDE)
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -17,8 +17,8 @@ endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
# ---- Compiler flags ----
|
||||
@@ -37,8 +37,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
|
||||
@@ -62,9 +61,9 @@ TARGET := $(BINDIR)/apps/disks/disks.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/apps/disks
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -31,8 +31,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-MMD -MP \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
@@ -46,7 +45,7 @@ SRCS := main.cpp stb_truetype_impl.cpp
|
||||
OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o))
|
||||
|
||||
TARGET := $(BINDIR)/apps/display/display.elf
|
||||
LIBS := $(LIBDIR)/libc/liblibc.a
|
||||
LIBS := $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -21,9 +21,8 @@ LIBC_LIB := ../../lib/libc
|
||||
LIBC_INC := ../../include/libc
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
# ---- Compiler flags ----
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -39,10 +38,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-mno-80387 \
|
||||
-mno-mmx \
|
||||
-mno-sse \
|
||||
-mno-sse2 \
|
||||
$(ARCH_NOFP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(LIBC_INC) \
|
||||
-I $(BEARSSL)/inc
|
||||
@@ -56,7 +52,7 @@ LDFLAGS := \
|
||||
|
||||
# ---- Libraries ----
|
||||
|
||||
LIBS := $(TLS_LIB)/libtls.a $(BEARSSL)/libbearssl.a $(LIBC_LIB)/liblibc.a
|
||||
LIBS := $(TLS_LIB)/$(ARCH_OUT)libtls.a $(BEARSSL)/build$(ARCH_SUFFIX)/libbearssl.a $(LIBC_LIB)/$(ARCH_OUT)liblibc.a
|
||||
|
||||
# ---- Target ----
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -17,8 +17,8 @@ endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
BEARSSL := ../../lib/bearssl
|
||||
JPEG_LIB := ../../lib/libjpeg
|
||||
@@ -39,8 +39,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc \
|
||||
-I $(BEARSSL)/inc
|
||||
@@ -65,7 +64,7 @@ TARGET := $(BINDIR)/apps/files/files.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
LIBS := $(JPEG_LIB)/libjpeg.a $(BEARSSL)/libbearssl.a $(LIBDIR)/libc/liblibc.a
|
||||
LIBS := $(JPEG_LIB)/$(ARCH_OUT)libjpeg.a $(BEARSSL)/build$(ARCH_SUFFIX)/libbearssl.a $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBS)
|
||||
mkdir -p $(BINDIR)/apps/files
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -18,9 +18,8 @@ endif
|
||||
LIBC_LIB := ../../lib/libc
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
# ---- Compiler flags ----
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -37,8 +36,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC)
|
||||
|
||||
# ---- Linker flags ----
|
||||
@@ -50,7 +48,7 @@ LDFLAGS := \
|
||||
|
||||
# ---- Libraries ----
|
||||
|
||||
LIBS := $(LIBC_LIB)/liblibc.a
|
||||
LIBS := $(LIBC_LIB)/$(ARCH_OUT)liblibc.a
|
||||
|
||||
# ---- Source files ----
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -20,9 +20,8 @@ LIBC_LIB := ../../lib/libc
|
||||
LIBC_INC := ../../include/libc
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
# ---- Compiler flags ----
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -39,8 +38,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(LIBC_INC)
|
||||
|
||||
@@ -53,7 +51,7 @@ LDFLAGS := \
|
||||
|
||||
# ---- Libraries ----
|
||||
|
||||
LIBS := $(JPEG_LIB)/libjpeg.a $(LIBC_LIB)/liblibc.a
|
||||
LIBS := $(JPEG_LIB)/$(ARCH_OUT)libjpeg.a $(LIBC_LIB)/$(ARCH_OUT)liblibc.a
|
||||
|
||||
# ---- Source files ----
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -17,8 +17,8 @@ endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
# ---- Compiler flags ----
|
||||
@@ -37,8 +37,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-MMD -MP \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
@@ -63,9 +62,9 @@ TARGET := $(BINDIR)/apps/installer/installer.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/apps/installer
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -3,29 +3,29 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
CXXFLAGS := -std=gnu++20 -g -O2 -pipe -Wall -Wextra -Wno-unused-parameter \
|
||||
-Wno-unused-function -ffreestanding -fno-stack-protector -fno-stack-check \
|
||||
-fno-rtti -fno-exceptions -ffunction-sections -fdata-sections -msse -msse2 \
|
||||
-fno-rtti -fno-exceptions -ffunction-sections -fdata-sections $(ARCH_FP_FLAGS) \
|
||||
-MMD -MP -I $(PROG_INC) -isystem $(PROG_INC)/libc
|
||||
LDFLAGS := -nostdlib -Wl,--gc-sections -T $(LINK_LD)
|
||||
|
||||
SRCS := main.cpp stb_truetype_impl.cpp
|
||||
OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o))
|
||||
TARGET := $(BINDIR)/apps/keyboard/keyboard.elf
|
||||
LIBS := $(LIBDIR)/libc/liblibc.a
|
||||
LIBS := $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
|
||||
.PHONY: all clean
|
||||
all: $(TARGET)
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
# Makefile for libloader
|
||||
|
||||
ARCH := x86_64
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
AR := $(TOOLCHAIN_PREFIX)ar
|
||||
|
||||
@@ -18,29 +16,26 @@ override CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-mno-80387 \
|
||||
-mno-mmx \
|
||||
-mno-sse \
|
||||
-mno-sse2 \
|
||||
$(ARCH_NOFP_FLAGS) \
|
||||
-I ../../include \
|
||||
-isystem ../../include/libc \
|
||||
-isystem ../../include/montauk
|
||||
|
||||
LIBDIR := ../../lib/libloader
|
||||
LEGACY_BINDIR := ../../bin
|
||||
LEGACY_BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
|
||||
.PHONY: all clean remove-legacy
|
||||
|
||||
all: remove-legacy $(LIBDIR)/liblibloader.a
|
||||
all: remove-legacy $(LIBDIR)/$(ARCH_OUT)liblibloader.a
|
||||
|
||||
remove-legacy:
|
||||
rm -f $(LEGACY_BINDIR)/liblibloader.a
|
||||
|
||||
$(LIBDIR)/liblibloader.a: libloader.cpp
|
||||
@mkdir -p $(LIBDIR)
|
||||
$(LIBDIR)/$(ARCH_OUT)liblibloader.a: libloader.cpp
|
||||
@mkdir -p $(LIBDIR)/$(ARCH_OUT)
|
||||
$(CXX) $(CXXFLAGS) -c libloader.cpp -o libloader.o
|
||||
$(AR) rcs $(LIBDIR)/liblibloader.a libloader.o
|
||||
$(AR) rcs $(LIBDIR)/$(ARCH_OUT)liblibloader.a libloader.o
|
||||
rm -f libloader.o
|
||||
|
||||
clean:
|
||||
rm -f $(LIBDIR)/liblibloader.a $(LEGACY_BINDIR)/liblibloader.a
|
||||
rm -f $(LIBDIR)/$(ARCH_OUT)liblibloader.a $(LEGACY_BINDIR)/$(ARCH_OUT)liblibloader.a
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -20,9 +20,8 @@ LIBC_LIB := ../../lib/libc
|
||||
JPEG_LIB := ../../lib/libjpeg
|
||||
BEARSSL := ../../lib/bearssl
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
# ---- Compiler flags ----
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -39,8 +38,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc \
|
||||
-I $(BEARSSL)/inc
|
||||
@@ -73,7 +71,7 @@ TARGET := $(BINDIR)/os/login.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
LIBS := $(JPEG_LIB)/libjpeg.a $(BEARSSL)/libbearssl.a $(LIBC_LIB)/liblibc.a
|
||||
LIBS := $(JPEG_LIB)/$(ARCH_OUT)libjpeg.a $(BEARSSL)/build$(ARCH_SUFFIX)/libbearssl.a $(LIBC_LIB)/$(ARCH_OUT)liblibc.a
|
||||
|
||||
$(TARGET): $(OBJS) $(LIBS) $(LINK_LD) Makefile
|
||||
mkdir -p $(BINDIR)/os
|
||||
|
||||
+11
-12
@@ -1,20 +1,20 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CC = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
AR = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CC = $(error $(TOOLCHAIN_MISSING))
|
||||
AR = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CC := $(TOOLCHAIN_PREFIX)gcc
|
||||
AR := $(TOOLCHAIN_PREFIX)ar
|
||||
endif
|
||||
|
||||
SRCDIR := src
|
||||
OBJDIR := obj
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBC_DIR := ../../lib/libc
|
||||
BINDIR := ../../bin/os
|
||||
LIBDIR := ../../bin/sdk/lua
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)/os
|
||||
LIBDIR := ../../bin$(ARCH_SUFFIX)/sdk/lua
|
||||
|
||||
CFLAGS := \
|
||||
-std=gnu11 \
|
||||
@@ -31,8 +31,7 @@ CFLAGS := \
|
||||
-fno-stack-check \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-D__MONTAUKOS__=1 \
|
||||
-DLUA_COMPAT_5_3 \
|
||||
-I$(SRCDIR) \
|
||||
@@ -74,15 +73,15 @@ STAGE_HEADERS := \
|
||||
|
||||
all: $(TARGET_LIB) $(TARGET_BIN) $(STAGE_HEADERS)
|
||||
|
||||
$(TARGET_LIB): $(BASE_OBJS) $(LIBC_DIR)/liblibc.a
|
||||
$(TARGET_LIB): $(BASE_OBJS) $(LIBC_DIR)/$(ARCH_OUT)liblibc.a
|
||||
@mkdir -p $(LIBDIR)
|
||||
$(AR) rcs $@ $(BASE_OBJS)
|
||||
|
||||
$(TARGET_BIN): $(LUA_MAIN) $(TARGET_LIB) $(LIBC_DIR)/liblibc.a $(LIBC_DIR)/crt1.o $(LIBC_DIR)/crti.o $(LIBC_DIR)/crtn.o
|
||||
$(TARGET_BIN): $(LUA_MAIN) $(TARGET_LIB) $(LIBC_DIR)/$(ARCH_OUT)liblibc.a $(LIBC_DIR)/$(ARCH_OUT)crt1.o $(LIBC_DIR)/$(ARCH_OUT)crti.o $(LIBC_DIR)/$(ARCH_OUT)crtn.o
|
||||
@mkdir -p $(BINDIR)
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) \
|
||||
$(LIBC_DIR)/crt1.o $(LIBC_DIR)/crti.o \
|
||||
$(LUA_MAIN) $(TARGET_LIB) $(LIBC_DIR)/liblibc.a $(LIBC_DIR)/crtn.o \
|
||||
$(LIBC_DIR)/$(ARCH_OUT)crt1.o $(LIBC_DIR)/$(ARCH_OUT)crti.o \
|
||||
$(LUA_MAIN) $(TARGET_LIB) $(LIBC_DIR)/$(ARCH_OUT)liblibc.a $(LIBC_DIR)/$(ARCH_OUT)crtn.o \
|
||||
-lgcc -o $@
|
||||
|
||||
$(LIBDIR)/include/%: $(SRCDIR)/%
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -17,8 +17,8 @@ endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
# ---- Compiler flags ----
|
||||
@@ -37,8 +37,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
|
||||
@@ -62,9 +61,9 @@ TARGET := $(BINDIR)/apps/mandelbrot/mandelbrot.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/apps/mandelbrot
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -17,8 +17,8 @@ endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
# ---- Compiler flags ----
|
||||
@@ -37,8 +37,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-I . \
|
||||
-isystem $(PROG_INC)/libc
|
||||
@@ -63,9 +62,9 @@ TARGET := $(BINDIR)/apps/music/music.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/apps/music
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -31,8 +31,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-MMD -MP \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
@@ -46,7 +45,7 @@ SRCS := main.cpp stb_truetype_impl.cpp
|
||||
OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o))
|
||||
|
||||
TARGET := $(BINDIR)/apps/network/network.elf
|
||||
LIBS := $(LIBDIR)/libc/liblibc.a
|
||||
LIBS := $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -17,8 +17,8 @@ endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
# ---- Compiler flags ----
|
||||
@@ -37,8 +37,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
|
||||
@@ -62,9 +61,9 @@ TARGET := $(BINDIR)/apps/paint/paint.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/apps/paint
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -17,10 +17,10 @@ endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
JPEG_LIB := $(LIBDIR)/libjpeg/libjpeg.a
|
||||
JPEG_LIB := $(LIBDIR)/libjpeg/$(ARCH_OUT)libjpeg.a
|
||||
|
||||
# ---- Compiler flags ----
|
||||
|
||||
@@ -38,8 +38,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
|
||||
@@ -58,15 +57,15 @@ OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o))
|
||||
# ---- Target ----
|
||||
|
||||
TARGET := $(BINDIR)/apps/pdfviewer/pdfviewer.elf
|
||||
LOADER_LIB := $(LIBDIR)/libloader/liblibloader.a
|
||||
LOADER_LIB := $(LIBDIR)/libloader/$(ARCH_OUT)liblibloader.a
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LOADER_LIB) $(JPEG_LIB) $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LOADER_LIB) $(JPEG_LIB) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/apps/pdfviewer
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LOADER_LIB) $(JPEG_LIB) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LOADER_LIB) $(JPEG_LIB) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
HEADERS := pdfviewer.h
|
||||
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -31,8 +31,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-MMD -MP \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
@@ -51,9 +50,9 @@ TARGET := $(BINDIR)/apps/powermgr/powermgr.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/apps/powermgr
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -15,9 +15,8 @@ LIBC_LIB := ../../lib/libc
|
||||
BEARSSL := ../../lib/bearssl
|
||||
TLS_LIB := ../../lib/tls
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
CXXFLAGS := \
|
||||
-std=gnu++20 \
|
||||
-g -O2 -pipe \
|
||||
@@ -31,10 +30,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-mno-80387 \
|
||||
-mno-mmx \
|
||||
-mno-sse \
|
||||
-mno-sse2 \
|
||||
$(ARCH_NOFP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc \
|
||||
-I $(BEARSSL)/inc
|
||||
@@ -51,9 +47,9 @@ DEPS := $(OBJDIR)/main.d
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJDIR)/main.o $(LINK_LD) Makefile $(LIBC_LIB)/liblibc.a
|
||||
$(TARGET): $(OBJDIR)/main.o $(LINK_LD) Makefile $(LIBC_LIB)/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/os
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJDIR)/main.o $(TLS_LIB)/libtls.a $(BEARSSL)/libbearssl.a $(LIBC_LIB)/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJDIR)/main.o $(TLS_LIB)/$(ARCH_OUT)libtls.a $(BEARSSL)/build$(ARCH_SUFFIX)/libbearssl.a $(LIBC_LIB)/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
$(OBJDIR)/main.o: main.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -16,9 +16,8 @@ TLS_LIB := ../../lib/tls
|
||||
BEARSSL := ../../lib/bearssl
|
||||
JPEGWRITE := ../../lib/libjpegwrite
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
CXXFLAGS := \
|
||||
-std=gnu++20 \
|
||||
-g -O2 -pipe \
|
||||
@@ -32,8 +31,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc \
|
||||
-I $(BEARSSL)/inc
|
||||
@@ -45,7 +43,7 @@ LDFLAGS := \
|
||||
|
||||
SRCS := main.cpp test_page_jpeg.cpp font_data.cpp stb_truetype_impl.cpp
|
||||
OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o))
|
||||
LIBS := $(TLS_LIB)/libtls.a $(BEARSSL)/libbearssl.a $(JPEGWRITE)/libjpegwrite.a $(LIBC_LIB)/liblibc.a
|
||||
LIBS := $(TLS_LIB)/$(ARCH_OUT)libtls.a $(BEARSSL)/build$(ARCH_SUFFIX)/libbearssl.a $(JPEGWRITE)/$(ARCH_OUT)libjpegwrite.a $(LIBC_LIB)/$(ARCH_OUT)liblibc.a
|
||||
TARGET := $(BINDIR)/os/printd.elf
|
||||
DEPS := $(OBJS:.o=.d)
|
||||
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -31,8 +31,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-MMD -MP \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc \
|
||||
@@ -47,7 +46,7 @@ SRCS := main.cpp stb_truetype_impl.cpp font_data.cpp
|
||||
OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o))
|
||||
|
||||
TARGET := $(BINDIR)/apps/printers/printers.elf
|
||||
LIBS := $(LIBDIR)/tls/libtls.a $(LIBDIR)/bearssl/libbearssl.a $(LIBDIR)/libc/liblibc.a
|
||||
LIBS := $(LIBDIR)/tls/$(ARCH_OUT)libtls.a $(LIBDIR)/bearssl/build$(ARCH_SUFFIX)/libbearssl.a $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -31,8 +31,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-MMD -MP \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
@@ -51,9 +50,9 @@ TARGET := $(BINDIR)/apps/procmgr/procmgr.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/apps/procmgr
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
CC := $(TOOLCHAIN_PREFIX)gcc
|
||||
LD := $(TOOLCHAIN_PREFIX)ld
|
||||
STRIP := $(TOOLCHAIN_PREFIX)strip
|
||||
PROG_INC := ../../include
|
||||
OBJDIR := obj
|
||||
LIBOUTDIR := ../../bin/os
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBOUTDIR := ../../bin$(ARCH_SUFFIX)/os
|
||||
LIBC_SRC := ../../lib/libc/libc.c
|
||||
GCC_INCLUDE := $(shell $(CC) -print-file-name=include)
|
||||
CXXFLAGS := -std=gnu++20 -g -O2 -pipe -Wall -Wextra -ffreestanding -fno-stack-protector -fno-stack-check -fPIC -fvisibility=hidden -fno-rtti -fno-exceptions -ffunction-sections -fdata-sections -mno-80387 -mno-mmx -mno-sse -mno-sse2 -MMD -MP -I $(PROG_INC) -isystem $(PROG_INC)/libc
|
||||
CXXFLAGS := -std=gnu++20 -g -O2 -pipe -Wall -Wextra -ffreestanding -fno-stack-protector -fno-stack-check -fPIC -fvisibility=hidden -fno-rtti -fno-exceptions -ffunction-sections -fdata-sections $(ARCH_NOFP_FLAGS) -MMD -MP -I $(PROG_INC) -isystem $(PROG_INC)/libc
|
||||
LIBC_CFLAGS := -std=gnu11 -O2 -ffreestanding -fno-stack-protector -fno-stack-check -fPIC -fvisibility=hidden -ffunction-sections -fdata-sections -isystem $(PROG_INC)/libc -isystem $(GCC_INCLUDE)
|
||||
LDFLAGS := -shared --build-id=none --gc-sections --hash-style=sysv -m elf_x86_64
|
||||
LDFLAGS := -shared --build-id=none --gc-sections --hash-style=sysv -m $(ARCH_LD_EMULATION)
|
||||
OBJS := $(OBJDIR)/rtlsdr.o $(OBJDIR)/r820t.o
|
||||
TARGET := $(LIBOUTDIR)/rtlsdr.lib
|
||||
.PHONY: all clean
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -23,8 +23,7 @@ LIBC_LIB := $(PROGRAMS)/lib/libc
|
||||
PROG_INC := $(PROGRAMS)/include
|
||||
LINK_LD := $(PROGRAMS)/link.ld
|
||||
BINDIR := $(PROGRAMS)/bin
|
||||
OBJDIR := obj
|
||||
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
# ---- Compiler flags ----
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -41,8 +40,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-MMD -MP \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
@@ -56,7 +54,7 @@ LDFLAGS := \
|
||||
|
||||
# ---- Libraries ----
|
||||
|
||||
LIBS := $(JPEGWRITE_LIB)/libjpegwrite.a $(LOADER_LIB)/liblibloader.a $(LIBC_LIB)/liblibc.a
|
||||
LIBS := $(JPEGWRITE_LIB)/$(ARCH_OUT)libjpegwrite.a $(LOADER_LIB)/$(ARCH_OUT)liblibloader.a $(LIBC_LIB)/$(ARCH_OUT)liblibc.a
|
||||
|
||||
# ---- Source files ----
|
||||
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
OBJDIR := obj
|
||||
TARGET := ../../bin/os/sdr.elf
|
||||
LIBS := ../../lib/libloader/liblibloader.a ../../lib/libc/liblibc.a
|
||||
CXXFLAGS := -std=gnu++20 -g -O2 -pipe -Wall -Wextra -ffreestanding -fno-stack-protector -fno-stack-check -fno-rtti -fno-exceptions -ffunction-sections -fdata-sections -mno-80387 -mno-mmx -mno-sse -mno-sse2 -I $(PROG_INC) -isystem $(PROG_INC)/libc
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
TARGET := ../../bin$(ARCH_SUFFIX)/os/sdr.elf
|
||||
LIBS := ../../lib/libloader/$(ARCH_OUT)liblibloader.a ../../lib/libc/$(ARCH_OUT)liblibc.a
|
||||
CXXFLAGS := -std=gnu++20 -g -O2 -pipe -Wall -Wextra -ffreestanding -fno-stack-protector -fno-stack-check -fno-rtti -fno-exceptions -ffunction-sections -fdata-sections $(ARCH_NOFP_FLAGS) -I $(PROG_INC) -isystem $(PROG_INC)/libc
|
||||
LDFLAGS := -nostdlib -Wl,--gc-sections -T $(LINK_LD)
|
||||
.PHONY: all clean
|
||||
all: $(TARGET)
|
||||
$(TARGET): $(OBJDIR)/main.o $(LIBS) $(LINK_LD) Makefile
|
||||
mkdir -p ../../bin/os
|
||||
mkdir -p ../../bin$(ARCH_SUFFIX)/os
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJDIR)/main.o $(LIBS) -o $@
|
||||
$(OBJDIR)/main.o: main.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -3,23 +3,23 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
BEARSSL := ../../lib/bearssl
|
||||
|
||||
CXXFLAGS := -std=gnu++20 -g -O2 -pipe -Wall -Wextra -Wno-unused-parameter \
|
||||
-Wno-unused-function -ffreestanding -fno-stack-protector -fno-stack-check \
|
||||
-fno-rtti -fno-exceptions -ffunction-sections -fdata-sections -msse -msse2 \
|
||||
-fno-rtti -fno-exceptions -ffunction-sections -fdata-sections $(ARCH_FP_FLAGS) \
|
||||
-MMD -MP -I $(PROG_INC) -isystem $(PROG_INC)/libc \
|
||||
-I $(BEARSSL)/inc
|
||||
LDFLAGS := -nostdlib -Wl,--gc-sections -T $(LINK_LD)
|
||||
@@ -28,7 +28,7 @@ SRCS := main.cpp stb_truetype_impl.cpp
|
||||
OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o))
|
||||
TARGET := $(BINDIR)/apps/settings/settings.elf
|
||||
# bearssl: montauk/user.h (account records) needs its headers and hashes.
|
||||
LIBS := $(BEARSSL)/libbearssl.a $(LIBDIR)/libc/liblibc.a
|
||||
LIBS := $(BEARSSL)/build$(ARCH_SUFFIX)/libbearssl.a $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
|
||||
.PHONY: all clean
|
||||
all: $(TARGET)
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -17,10 +17,9 @@ endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
OBJDIR := obj
|
||||
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
# ---- C++ compiler flags ----
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -36,10 +35,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-mno-80387 \
|
||||
-mno-mmx \
|
||||
-mno-sse \
|
||||
-mno-sse2 \
|
||||
$(ARCH_NOFP_FLAGS) \
|
||||
-MMD -MP \
|
||||
-I . \
|
||||
-I $(PROG_INC)
|
||||
@@ -64,9 +60,9 @@ TARGET := $(BINDIR)/os/shell.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/os
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp shell.h Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -17,8 +17,8 @@ endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
# ---- Compiler flags ----
|
||||
@@ -37,8 +37,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
|
||||
@@ -57,15 +56,15 @@ OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o))
|
||||
# ---- Target ----
|
||||
|
||||
TARGET := $(BINDIR)/apps/spreadsheet/spreadsheet.elf
|
||||
LOADER_LIB := $(LIBDIR)/libloader/liblibloader.a
|
||||
LOADER_LIB := $(LIBDIR)/libloader/$(ARCH_OUT)liblibloader.a
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LOADER_LIB) $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LOADER_LIB) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/apps/spreadsheet
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LOADER_LIB) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LOADER_LIB) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
PROG_INC := ../../include
|
||||
LIBDIR := ../../lib
|
||||
LINK_LD := ../../link.ld
|
||||
OBJDIR := obj
|
||||
TARGET := ../../bin/os/sshd.elf
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
TARGET := ../../bin$(ARCH_SUFFIX)/os/sshd.elf
|
||||
CXXFLAGS := -std=gnu++20 -g -O2 -pipe -Wall -Wextra -ffreestanding \
|
||||
-fno-stack-protector -fno-stack-check -fno-rtti -fno-exceptions \
|
||||
-ffunction-sections -fdata-sections -mno-80387 -mno-mmx -mno-sse -mno-sse2 \
|
||||
-ffunction-sections -fdata-sections $(ARCH_NOFP_FLAGS) \
|
||||
-MMD -MP -I $(PROG_INC) -I $(LIBDIR)/bearssl/inc -isystem $(PROG_INC)/libc
|
||||
LDFLAGS := -nostdlib -Wl,--gc-sections -T $(LINK_LD)
|
||||
LIBS := $(LIBDIR)/bearssl/libbearssl.a $(LIBDIR)/libc/liblibc.a
|
||||
LIBS := $(LIBDIR)/bearssl/build$(ARCH_SUFFIX)/libbearssl.a $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
.PHONY: all clean
|
||||
all: $(TARGET)
|
||||
$(TARGET): $(OBJDIR)/main.o $(LIBS) $(LINK_LD) Makefile
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
CXXFLAGS := -std=gnu++20 -g -O2 -pipe -Wall -Wextra -Wno-unused-parameter \
|
||||
-ffreestanding -fno-stack-protector -fno-stack-check -fno-rtti -fno-exceptions \
|
||||
-ffunction-sections -fdata-sections -msse -msse2 -MMD -MP -I $(PROG_INC) \
|
||||
-ffunction-sections -fdata-sections $(ARCH_FP_FLAGS) -MMD -MP -I $(PROG_INC) \
|
||||
-I $(LIBDIR)/bearssl/inc -isystem $(PROG_INC)/libc
|
||||
LDFLAGS := -nostdlib -Wl,--gc-sections -T $(LINK_LD)
|
||||
SRCS := main.cpp stb_truetype_impl.cpp
|
||||
OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o))
|
||||
TARGET := $(BINDIR)/apps/sshserver/sshserver.elf
|
||||
LIBS := $(LIBDIR)/bearssl/libbearssl.a $(LIBDIR)/libc/liblibc.a
|
||||
LIBS := $(LIBDIR)/bearssl/build$(ARCH_SUFFIX)/libbearssl.a $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
.PHONY: all clean
|
||||
all: $(TARGET)
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBS)
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -31,8 +31,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
|
||||
@@ -51,9 +50,9 @@ TARGET := $(BINDIR)/apps/syslog/syslog.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/liblibc.a $(LIBDIR)/libloader/liblibloader.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a $(LIBDIR)/libloader/$(ARCH_OUT)liblibloader.a
|
||||
mkdir -p $(BINDIR)/apps/syslog
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/liblibc.a $(LIBDIR)/libloader/liblibloader.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a $(LIBDIR)/libloader/$(ARCH_OUT)liblibloader.a -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
+12
-13
@@ -6,11 +6,11 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CC = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
AR = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CC = $(error $(TOOLCHAIN_MISSING))
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
AR = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CC := $(TOOLCHAIN_PREFIX)gcc
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
@@ -21,8 +21,8 @@ endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LIBDIR := ../../lib
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin/os
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)/os
|
||||
|
||||
# ---- Compiler flags ----
|
||||
|
||||
@@ -42,8 +42,7 @@ CFLAGS := \
|
||||
-fno-stack-check \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-fno-tree-loop-distribute-patterns \
|
||||
-D__MONTAUKOS__=1 \
|
||||
-DONE_SOURCE=0 \
|
||||
@@ -93,7 +92,7 @@ TARGET := $(BINDIR)/tcc.elf
|
||||
# ---- CRT objects (staged from shared libc) ----
|
||||
|
||||
SHARED_CRT_DIR := $(LIBDIR)/libc
|
||||
CRT_DIR := ../../bin/sdk/tcc/lib
|
||||
CRT_DIR := ../../bin$(ARCH_SUFFIX)/sdk/tcc/lib
|
||||
CRT_OBJS := $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtn.o
|
||||
|
||||
# ---- Rules ----
|
||||
@@ -102,9 +101,9 @@ CRT_OBJS := $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtn.o
|
||||
|
||||
all: $(TARGET) $(CRT_OBJS) $(CRT_DIR)/libc.a
|
||||
|
||||
$(TARGET): $(ALL_OBJS) $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(ALL_OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
@mkdir -p $(BINDIR)
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) $(ALL_OBJS) $(LIBDIR)/libc/liblibc.a -lgcc -o $@
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) $(ALL_OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -lgcc -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.c Makefile config.h montauk_compat.h
|
||||
@mkdir -p $(OBJDIR)
|
||||
@@ -114,7 +113,7 @@ $(OBJDIR)/%.o: %.S Makefile
|
||||
@mkdir -p $(OBJDIR)
|
||||
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
|
||||
|
||||
$(SHARED_CRT_DIR)/liblibc.a $(SHARED_CRT_DIR)/liblibc-full.a $(SHARED_CRT_DIR)/crt1.o $(SHARED_CRT_DIR)/crti.o $(SHARED_CRT_DIR)/crtn.o:
|
||||
$(SHARED_CRT_DIR)/$(ARCH_OUT)liblibc.a $(SHARED_CRT_DIR)/liblibc-full.a $(SHARED_CRT_DIR)/crt1.o $(SHARED_CRT_DIR)/crti.o $(SHARED_CRT_DIR)/crtn.o:
|
||||
$(MAKE) -C $(SHARED_CRT_DIR)
|
||||
|
||||
$(CRT_DIR)/crt1.o: $(SHARED_CRT_DIR)/crt1.o
|
||||
@@ -132,7 +131,7 @@ $(CRT_DIR)/crtn.o: $(SHARED_CRT_DIR)/crtn.o
|
||||
# liblibc-full.a, not liblibc.a: programs compiled on-OS with tcc cannot pass
|
||||
# -u _pf_putfloat, so this sysroot ships the variant with the printf float path
|
||||
# already bound in. See lib/libc/Makefile.
|
||||
$(CRT_DIR)/libc.a: $(LIBDIR)/libc/liblibc-full.a
|
||||
$(CRT_DIR)/libc.a: $(LIBDIR)/libc/$(ARCH_OUT)liblibc-full.a
|
||||
@mkdir -p $(CRT_DIR)
|
||||
cp $< $@
|
||||
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -31,8 +31,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
|
||||
@@ -51,9 +50,9 @@ TARGET := $(BINDIR)/apps/terminal/terminal.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/apps/terminal
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -17,8 +17,8 @@ endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
# ---- Compiler flags ----
|
||||
@@ -37,8 +37,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
|
||||
@@ -57,15 +56,15 @@ OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o))
|
||||
# ---- Target ----
|
||||
|
||||
TARGET := $(BINDIR)/apps/texteditor/texteditor.elf
|
||||
LOADER_LIB := $(LIBDIR)/libloader/liblibloader.a
|
||||
LOADER_LIB := $(LIBDIR)/libloader/$(ARCH_OUT)liblibloader.a
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LOADER_LIB) $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LOADER_LIB) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/apps/texteditor
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LOADER_LIB) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LOADER_LIB) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp Makefile
|
||||
mkdir -p $(OBJDIR)
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -31,8 +31,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-MMD -MP \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc
|
||||
@@ -46,7 +45,7 @@ SRCS := main.cpp stb_truetype_impl.cpp font_data.cpp
|
||||
OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o))
|
||||
|
||||
TARGET := $(BINDIR)/apps/timezone/timezone.elf
|
||||
LIBS := $(LIBDIR)/libc/liblibc.a
|
||||
LIBS := $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -31,8 +31,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-I . \
|
||||
-isystem $(PROG_INC)/libc
|
||||
@@ -51,9 +50,9 @@ TARGET := $(BINDIR)/apps/video/video.elf
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/liblibc.a
|
||||
$(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
mkdir -p $(BINDIR)/apps/video
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/liblibc.a -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a -o $@
|
||||
|
||||
HEADERS := avi.hpp
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -21,9 +21,8 @@ LIBC_LIB := ../../lib/libc
|
||||
LIBC_INC := ../../include/libc
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
# ---- Compiler flags ----
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -40,8 +39,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(LIBC_INC) \
|
||||
-I $(BEARSSL)/inc
|
||||
@@ -55,7 +53,7 @@ LDFLAGS := \
|
||||
|
||||
# ---- Libraries ----
|
||||
|
||||
LIBS := $(TLS_LIB)/libtls.a $(BEARSSL)/libbearssl.a $(LIBC_LIB)/liblibc.a
|
||||
LIBS := $(TLS_LIB)/$(ARCH_OUT)libtls.a $(BEARSSL)/build$(ARCH_SUFFIX)/libbearssl.a $(LIBC_LIB)/$(ARCH_OUT)liblibc.a
|
||||
|
||||
# ---- Source files ----
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -21,9 +21,8 @@ LIBC_LIB := ../../lib/libc
|
||||
LIBC_INC := ../../include/libc
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
# ---- Compiler flags ----
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -39,10 +38,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-mno-80387 \
|
||||
-mno-mmx \
|
||||
-mno-sse \
|
||||
-mno-sse2 \
|
||||
$(ARCH_NOFP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(LIBC_INC) \
|
||||
-I $(BEARSSL)/inc
|
||||
@@ -56,7 +52,7 @@ LDFLAGS := \
|
||||
|
||||
# ---- Libraries ----
|
||||
|
||||
LIBS := $(TLS_LIB)/libtls.a $(BEARSSL)/libbearssl.a $(LIBC_LIB)/liblibc.a
|
||||
LIBS := $(TLS_LIB)/$(ARCH_OUT)libtls.a $(BEARSSL)/build$(ARCH_SUFFIX)/libbearssl.a $(LIBC_LIB)/$(ARCH_OUT)liblibc.a
|
||||
|
||||
# ---- Target ----
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ MAKEFLAGS += -rR
|
||||
|
||||
# ---- Toolchain ----
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
@@ -21,9 +21,8 @@ LIBC_LIB := ../../lib/libc
|
||||
LIBC_INC := ../../include/libc
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
# ---- Compiler flags ----
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -40,8 +39,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(LIBC_INC) \
|
||||
-I $(BEARSSL)/inc
|
||||
@@ -55,7 +53,7 @@ LDFLAGS := \
|
||||
|
||||
# ---- Libraries ----
|
||||
|
||||
LIBS := $(TLS_LIB)/libtls.a $(BEARSSL)/libbearssl.a $(LIBC_LIB)/liblibc.a
|
||||
LIBS := $(TLS_LIB)/$(ARCH_OUT)libtls.a $(BEARSSL)/build$(ARCH_SUFFIX)/libbearssl.a $(LIBC_LIB)/$(ARCH_OUT)liblibc.a
|
||||
|
||||
# ---- Source files ----
|
||||
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
|
||||
TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk-
|
||||
include ../../mk/arch.mk
|
||||
ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),)
|
||||
CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first)
|
||||
CXX = $(error $(TOOLCHAIN_MISSING))
|
||||
else
|
||||
CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
endif
|
||||
|
||||
PROG_INC := ../../include
|
||||
LINK_LD := ../../link.ld
|
||||
BINDIR := ../../bin
|
||||
OBJDIR := obj
|
||||
BINDIR := ../../bin$(ARCH_SUFFIX)
|
||||
OBJDIR := obj$(ARCH_SUFFIX)
|
||||
LIBDIR := ../../lib
|
||||
|
||||
CXXFLAGS := \
|
||||
@@ -31,8 +31,7 @@ CXXFLAGS := \
|
||||
-fno-exceptions \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-msse \
|
||||
-msse2 \
|
||||
$(ARCH_FP_FLAGS) \
|
||||
-I $(PROG_INC) \
|
||||
-isystem $(PROG_INC)/libc \
|
||||
-I ../../lib/bearssl/inc
|
||||
@@ -44,8 +43,8 @@ LDFLAGS := \
|
||||
|
||||
SRCS := main.cpp document.cpp render.cpp input.cpp print_export.cpp stb_truetype_impl.cpp
|
||||
OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o))
|
||||
LOADER_LIB := $(LIBDIR)/libloader/liblibloader.a
|
||||
LIBS := $(LOADER_LIB) $(LIBDIR)/tls/libtls.a $(LIBDIR)/bearssl/libbearssl.a $(LIBDIR)/libjpegwrite/libjpegwrite.a $(LIBDIR)/libc/liblibc.a
|
||||
LOADER_LIB := $(LIBDIR)/libloader/$(ARCH_OUT)liblibloader.a
|
||||
LIBS := $(LOADER_LIB) $(LIBDIR)/tls/$(ARCH_OUT)libtls.a $(LIBDIR)/bearssl/build$(ARCH_SUFFIX)/libbearssl.a $(LIBDIR)/libjpegwrite/$(ARCH_OUT)libjpegwrite.a $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a
|
||||
|
||||
TARGET := $(BINDIR)/apps/wordprocessor/wordprocessor.elf
|
||||
|
||||
|
||||
Reference in new issue
Block a user