mirror of https://gitlab.com/nakst/essence
organize bin folder
This commit is contained in:
parent
5b427808df
commit
d479a5e352
|
@ -7,4 +7,4 @@ needs_native_toolchain=1
|
||||||
|
|
||||||
[build]
|
[build]
|
||||||
source=apps/posix_launcher.cpp
|
source=apps/posix_launcher.cpp
|
||||||
link_flags=-Lroot/Applications/POSIX/lib -lc bin/crtglue.o bin/crt1.o
|
link_flags=-Lroot/Applications/POSIX/lib -lc "bin/Object Files/crtglue.o" "bin/Object Files/crt1.o"
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
#include <shared/common.cpp>
|
#include <shared/common.cpp>
|
||||||
|
|
||||||
struct EnumString { const char *cName; int value; };
|
struct EnumString { const char *cName; int value; };
|
||||||
#include <bin/enum_strings_array.h>
|
#include <bin/Generated Code/enum_strings_array.h>
|
||||||
|
|
||||||
#define DESKTOP_MSG_SET_TITLE (1)
|
#define DESKTOP_MSG_SET_TITLE (1)
|
||||||
#define DESKTOP_MSG_SET_ICON (2)
|
#define DESKTOP_MSG_SET_ICON (2)
|
||||||
|
@ -264,7 +264,7 @@ struct APIInstance {
|
||||||
|
|
||||||
#ifndef NO_API_TABLE
|
#ifndef NO_API_TABLE
|
||||||
const void *const apiTable[] = {
|
const void *const apiTable[] = {
|
||||||
#include <bin/api_array.h>
|
#include <bin/Generated Code/api_array.h>
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -533,7 +533,7 @@ void KDeviceCloseHandle(KDevice *device); // The device creator is responsible f
|
||||||
void KDeviceRemoved(KDevice *device); // Call when a child device is removed. Must be called only once!
|
void KDeviceRemoved(KDevice *device); // Call when a child device is removed. Must be called only once!
|
||||||
void KDeviceSendConnectedMessage(KDevice *device, EsDeviceType type); // Send a message to Desktop to inform it the device was connected.
|
void KDeviceSendConnectedMessage(KDevice *device, EsDeviceType type); // Send a message to Desktop to inform it the device was connected.
|
||||||
|
|
||||||
#include <bin/kernel_config.h>
|
#include <bin/Generated Code/kernel_config.h>
|
||||||
|
|
||||||
struct KClockDevice : KDevice {
|
struct KClockDevice : KDevice {
|
||||||
EsError (*read)(KClockDevice *device, EsDateComponents *components, uint64_t *linearMs);
|
EsError (*read)(KClockDevice *device, EsDateComponents *components, uint64_t *linearMs);
|
||||||
|
|
|
@ -15,7 +15,7 @@ struct ExportedKernelFunction {
|
||||||
};
|
};
|
||||||
|
|
||||||
const ExportedKernelFunction exportedKernelFunctions[] = {
|
const ExportedKernelFunction exportedKernelFunctions[] = {
|
||||||
#include <bin/kernel_symbols.h>
|
#include <bin/Generated Code/kernel_symbols.h>
|
||||||
};
|
};
|
||||||
|
|
||||||
static uintptr_t linkOffset;
|
static uintptr_t linkOffset;
|
||||||
|
|
|
@ -1725,7 +1725,7 @@ SYSCALL_IMPLEMENT(ES_SYSCALL_DEBUG_COMMAND) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const SyscallFunction syscallFunctions[ES_SYSCALL_COUNT + 1] {
|
const SyscallFunction syscallFunctions[ES_SYSCALL_COUNT + 1] {
|
||||||
#include <bin/syscall_array.h>
|
#include <bin/Generated Code/syscall_array.h>
|
||||||
};
|
};
|
||||||
|
|
||||||
#pragma GCC diagnostic pop
|
#pragma GCC diagnostic pop
|
||||||
|
|
|
@ -2,7 +2,7 @@ if [ ! -d "bin/freetype" ]; then
|
||||||
echo "Downloading FreeType..."
|
echo "Downloading FreeType..."
|
||||||
|
|
||||||
if [ ! -f "bin/cache/freetype-2.9.tar" ]; then
|
if [ ! -f "bin/cache/freetype-2.9.tar" ]; then
|
||||||
curl https://mirrors.up.pt/pub/nongnu/freetype/freetype-2.9.tar.gz > bin/cache/freetype-2.9.tar.gz 2> bin/freetype_dl.txt
|
curl https://mirrors.up.pt/pub/nongnu/freetype/freetype-2.9.tar.gz > bin/cache/freetype-2.9.tar.gz 2> bin/Logs/freetype_dl.txt
|
||||||
gunzip bin/cache/freetype-2.9.tar.gz
|
gunzip bin/cache/freetype-2.9.tar.gz
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ if [ "$1" = "x86_64" ]; then
|
||||||
rm -f objs/.libs/libfreetype.a
|
rm -f objs/.libs/libfreetype.a
|
||||||
./configure --without-zlib --without-bzip2 --without-png --without-harfbuzz \
|
./configure --without-zlib --without-bzip2 --without-png --without-harfbuzz \
|
||||||
CC=x86_64-essence-gcc CFLAGS="-g -ffreestanding -Wno-unused-function -O3" \
|
CC=x86_64-essence-gcc CFLAGS="-g -ffreestanding -Wno-unused-function -O3" \
|
||||||
LDFLAGS="-nostdlib -lgcc" --host=x86_64-essence > ../freetype_configure.txt 2>&1
|
LDFLAGS="-nostdlib -lgcc" --host=x86_64-essence > ../Logs/freetype_configure.txt 2>&1
|
||||||
make ANSIFLAGS="" > /dev/null
|
make ANSIFLAGS="" > /dev/null
|
||||||
cp objs/.libs/libfreetype.a libfreetype_x86_64.a
|
cp objs/.libs/libfreetype.a libfreetype_x86_64.a
|
||||||
cd ../..
|
cd ../..
|
||||||
|
@ -38,7 +38,7 @@ if [ "$1" = "x86_32" ]; then
|
||||||
rm -f objs/.libs/libfreetype.a
|
rm -f objs/.libs/libfreetype.a
|
||||||
./configure --without-zlib --without-bzip2 --without-png --without-harfbuzz \
|
./configure --without-zlib --without-bzip2 --without-png --without-harfbuzz \
|
||||||
CC=i686-elf-gcc CFLAGS="-g -ffreestanding -Wno-unused-function -O3 -I$INC" \
|
CC=i686-elf-gcc CFLAGS="-g -ffreestanding -Wno-unused-function -O3 -I$INC" \
|
||||||
LDFLAGS="-nostdlib -lgcc" --host=i686-elf > ../freetype_configure.txt 2>&1
|
LDFLAGS="-nostdlib -lgcc" --host=i686-elf > ../Logs/freetype_configure.txt 2>&1
|
||||||
sed -i '/define FT_USE_AUTOCONF_SIZEOF_TYPES/d' builds/unix/ftconfig.h
|
sed -i '/define FT_USE_AUTOCONF_SIZEOF_TYPES/d' builds/unix/ftconfig.h
|
||||||
make ANSIFLAGS="" > /dev/null
|
make ANSIFLAGS="" > /dev/null
|
||||||
cp objs/.libs/libfreetype.a libfreetype_x86_32.a
|
cp objs/.libs/libfreetype.a libfreetype_x86_32.a
|
||||||
|
|
|
@ -57,7 +57,7 @@ if [ ! -d "bin/harfbuzz" ]; then
|
||||||
echo "Downloading Harfbuzz..."
|
echo "Downloading Harfbuzz..."
|
||||||
|
|
||||||
if [ ! -f "bin/cache/harfbuzz-2.6.4.tar" ]; then
|
if [ ! -f "bin/cache/harfbuzz-2.6.4.tar" ]; then
|
||||||
curl https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-2.6.4.tar.xz > bin/cache/harfbuzz-2.6.4.tar.xz 2> bin/harfbuzz_dl.txt
|
curl https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-2.6.4.tar.xz > bin/cache/harfbuzz-2.6.4.tar.xz 2> bin/Logs/harfbuzz_dl.txt
|
||||||
xz -d bin/cache/harfbuzz-2.6.4.tar.xz
|
xz -d bin/cache/harfbuzz-2.6.4.tar.xz
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ if [ ! -d "bin/harfbuzz" ]; then
|
||||||
|
|
||||||
cd bin/harfbuzz
|
cd bin/harfbuzz
|
||||||
./configure --with-glib=no --with-icu=no --with-freetype=no --with-cairo=no --with-fontconfig=no --enable-shared \
|
./configure --with-glib=no --with-icu=no --with-freetype=no --with-cairo=no --with-fontconfig=no --enable-shared \
|
||||||
CFLAGS="-g -O3 -DHB_TINY" CXXFLAGS="-g -O3 -DHB_TINY" > ../harfbuzz_configure.txt
|
CFLAGS="-g -O3 -DHB_TINY" CXXFLAGS="-g -O3 -DHB_TINY" > ../Logs/harfbuzz_configure.txt
|
||||||
cd ../..
|
cd ../..
|
||||||
|
|
||||||
cp ports/harfbuzz/essence-config.h bin/harfbuzz/config.h
|
cp ports/harfbuzz/essence-config.h bin/harfbuzz/config.h
|
||||||
|
|
4
start.sh
4
start.sh
|
@ -3,8 +3,8 @@
|
||||||
# Set the current directory to the source root.
|
# Set the current directory to the source root.
|
||||||
cd "$(dirname "$0")"
|
cd "$(dirname "$0")"
|
||||||
|
|
||||||
# Create the bin and download cache directories.
|
# Create the bin directories.
|
||||||
mkdir -p bin bin/cache
|
mkdir -p bin bin/Dependency\ Files bin/Logs bin/cache
|
||||||
|
|
||||||
# Check that we are running on a sensible platform.
|
# Check that we are running on a sensible platform.
|
||||||
uname -o | grep Cygwin > /dev/null
|
uname -o | grep Cygwin > /dev/null
|
||||||
|
|
42
util/build.c
42
util/build.c
|
@ -144,7 +144,7 @@ int CallSystemF(const char *format, ...) {
|
||||||
void BuildAPIDependencies() {
|
void BuildAPIDependencies() {
|
||||||
if (CheckDependencies("API Header")) {
|
if (CheckDependencies("API Header")) {
|
||||||
CallSystem("bin/build_core headers");
|
CallSystem("bin/build_core headers");
|
||||||
ParseDependencies("bin/api_header.d", "API Header", false);
|
ParseDependencies("bin/Dependency Files/api_header.d", "API Header", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
CallSystem("ports/musl/build.sh " TARGET_NAME);
|
CallSystem("ports/musl/build.sh " TARGET_NAME);
|
||||||
|
@ -172,7 +172,7 @@ void OutputStartOfBuildINI(FILE *f, bool forceDebugBuildOff) {
|
||||||
"nasm=%s\n"
|
"nasm=%s\n"
|
||||||
"convert_svg=bin/render_svg\n"
|
"convert_svg=bin/render_svg\n"
|
||||||
"linker_scripts=util/\n"
|
"linker_scripts=util/\n"
|
||||||
"crt_objects=bin/\n"
|
"crt_objects=bin/Object Files/\n"
|
||||||
"compiler_objects=%s/../lib/gcc/" TOOLCHAIN_PREFIX "/" GCC_VERSION "\n"
|
"compiler_objects=%s/../lib/gcc/" TOOLCHAIN_PREFIX "/" GCC_VERSION "\n"
|
||||||
"\n[general]\nsystem_build=1\nminimal_rebuild=1\ncolored_output=%d\nthread_count=%d\n"
|
"\n[general]\nsystem_build=1\nminimal_rebuild=1\ncolored_output=%d\nthread_count=%d\n"
|
||||||
"target=" TARGET_NAME "\nskip_header_generation=1\nverbose=%d\ncommon_compile_flags=",
|
"target=" TARGET_NAME "\nskip_header_generation=1\nverbose=%d\ncommon_compile_flags=",
|
||||||
|
@ -361,8 +361,8 @@ void BuildUtilities() {
|
||||||
|
|
||||||
#define BUILD_UTILITY(x, y, z) \
|
#define BUILD_UTILITY(x, y, z) \
|
||||||
if (CheckDependencies("Utilities." x)) { \
|
if (CheckDependencies("Utilities." x)) { \
|
||||||
if (!CallSystem("gcc -MMD util/" z x ".c -o bin/" x " -g " WARNING_FLAGS " " y)) { \
|
if (!CallSystem("gcc -MMD -MF \"bin/Dependency Files/" x ".d\" " "util/" z x ".c -o bin/" x " -g " WARNING_FLAGS " " y)) { \
|
||||||
ParseDependencies("bin/" x ".d", "Utilities." x, false); \
|
ParseDependencies("bin/Dependency Files/" x ".d", "Utilities." x, false); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -373,8 +373,9 @@ void BuildUtilities() {
|
||||||
BUILD_UTILITY("config_editor", "-lX11 -Wno-unused-parameter", "");
|
BUILD_UTILITY("config_editor", "-lX11 -Wno-unused-parameter", "");
|
||||||
|
|
||||||
if (CheckDependencies("Utilities.Designer")) {
|
if (CheckDependencies("Utilities.Designer")) {
|
||||||
if (!CallSystem("g++ -MMD -D UI_LINUX -O3 util/designer2.cpp -o bin/designer2 -g -lX11 -Wno-unused-parameter " WARNING_FLAGS)) {
|
if (!CallSystem("g++ -MMD -MF \"bin/Dependency Files/designer2.d\" -D UI_LINUX -O3 "
|
||||||
ParseDependencies("bin/designer2.d", "Utilities.Designer", false);
|
"util/designer2.cpp -o bin/designer2 -g -lX11 -Wno-unused-parameter " WARNING_FLAGS)) {
|
||||||
|
ParseDependencies("bin/Dependency Files/designer2.d", "Utilities.Designer", false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -481,9 +482,9 @@ void Run(int emulator, int log, int debug) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool withAudio = IsOptionEnabled("Emulator.Audio");
|
bool withAudio = IsOptionEnabled("Emulator.Audio");
|
||||||
const char *audioFlags = withAudio ? "QEMU_AUDIO_DRV=wav QEMU_WAV_PATH=bin/audio.wav " : "";
|
const char *audioFlags = withAudio ? "QEMU_AUDIO_DRV=wav QEMU_WAV_PATH=bin/Logs/audio.wav " : "";
|
||||||
const char *audioFlags2 = withAudio ? "-soundhw pcspk,hda" : "";
|
const char *audioFlags2 = withAudio ? "-soundhw pcspk,hda" : "";
|
||||||
unlink("bin/audio.wav");
|
unlink("bin/Logs/audio.wav");
|
||||||
|
|
||||||
const char *secondaryDriveMB = GetOptionString("Emulator.SecondaryDriveMB");
|
const char *secondaryDriveMB = GetOptionString("Emulator.SecondaryDriveMB");
|
||||||
char secondaryDriveFlags[256];
|
char secondaryDriveFlags[256];
|
||||||
|
@ -497,8 +498,8 @@ void Run(int emulator, int log, int debug) {
|
||||||
secondaryDriveFlags[0] = 0;
|
secondaryDriveFlags[0] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *logFlags = log == LOG_VERBOSE ? "-d cpu_reset,int > bin/qemu_log.txt 2>&1"
|
const char *logFlags = log == LOG_VERBOSE ? "-d cpu_reset,int > bin/Logs/qemu_log.txt 2>&1"
|
||||||
: (log == LOG_NORMAL ? " > bin/qemu_log.txt 2>&1" : " > /dev/null 2>&1");
|
: (log == LOG_NORMAL ? " > bin/Logs/qemu_log.txt 2>&1" : " > /dev/null 2>&1");
|
||||||
|
|
||||||
int cpuCores = atoi(GetOptionString("Emulator.Cores"));
|
int cpuCores = atoi(GetOptionString("Emulator.Cores"));
|
||||||
|
|
||||||
|
@ -511,21 +512,21 @@ void Run(int emulator, int log, int debug) {
|
||||||
char serialFlags[256];
|
char serialFlags[256];
|
||||||
|
|
||||||
if (IsOptionEnabled("Emulator.SerialToFile")) {
|
if (IsOptionEnabled("Emulator.SerialToFile")) {
|
||||||
system("mv bin/qemu_serial7.txt bin/qemu_serial8.txt 2> /dev/null");
|
system("mv bin/Logs/qemu_serial7.txt bin/Logs/qemu_serial8.txt 2> /dev/null");
|
||||||
system("mv bin/qemu_serial6.txt bin/qemu_serial7.txt 2> /dev/null");
|
system("mv bin/Logs/qemu_serial6.txt bin/Logs/qemu_serial7.txt 2> /dev/null");
|
||||||
system("mv bin/qemu_serial5.txt bin/qemu_serial6.txt 2> /dev/null");
|
system("mv bin/Logs/qemu_serial5.txt bin/Logs/qemu_serial6.txt 2> /dev/null");
|
||||||
system("mv bin/qemu_serial4.txt bin/qemu_serial5.txt 2> /dev/null");
|
system("mv bin/Logs/qemu_serial4.txt bin/Logs/qemu_serial5.txt 2> /dev/null");
|
||||||
system("mv bin/qemu_serial3.txt bin/qemu_serial4.txt 2> /dev/null");
|
system("mv bin/Logs/qemu_serial3.txt bin/Logs/qemu_serial4.txt 2> /dev/null");
|
||||||
system("mv bin/qemu_serial2.txt bin/qemu_serial3.txt 2> /dev/null");
|
system("mv bin/Logs/qemu_serial2.txt bin/Logs/qemu_serial3.txt 2> /dev/null");
|
||||||
system("mv bin/qemu_serial1.txt bin/qemu_serial2.txt 2> /dev/null");
|
system("mv bin/Logs/qemu_serial1.txt bin/Logs/qemu_serial2.txt 2> /dev/null");
|
||||||
strcpy(serialFlags, "-serial file:bin/qemu_serial1.txt");
|
strcpy(serialFlags, "-serial file:bin/Logs/qemu_serial1.txt");
|
||||||
} else {
|
} else {
|
||||||
serialFlags[0] = 0;
|
serialFlags[0] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CallSystemF("%s %s " QEMU_EXECUTABLE " %s%s %s -m %d %s -smp cores=%d -cpu Haswell "
|
if (CallSystemF("%s %s " QEMU_EXECUTABLE " %s%s %s -m %d %s -smp cores=%d -cpu Haswell "
|
||||||
" -device qemu-xhci,id=xhci -device usb-kbd,bus=xhci.0,id=mykeyboard -device usb-mouse,bus=xhci.0,id=mymouse "
|
" -device qemu-xhci,id=xhci -device usb-kbd,bus=xhci.0,id=mykeyboard -device usb-mouse,bus=xhci.0,id=mymouse "
|
||||||
" -netdev user,id=u1 -device e1000,netdev=u1 -object filter-dump,id=f1,netdev=u1,file=bin/net.dat "
|
" -netdev user,id=u1 -device e1000,netdev=u1 -object filter-dump,id=f1,netdev=u1,file=bin/Logs/net.dat "
|
||||||
" %s %s %s %s %s %s %s ",
|
" %s %s %s %s %s %s %s ",
|
||||||
audioFlags, IsOptionEnabled("Emulator.RunWithSudo") ? "sudo " : "", drivePrefix, driveFlags, cdromFlags,
|
audioFlags, IsOptionEnabled("Emulator.RunWithSudo") ? "sudo " : "", drivePrefix, driveFlags, cdromFlags,
|
||||||
atoi(GetOptionString("Emulator.MemoryMB")),
|
atoi(GetOptionString("Emulator.MemoryMB")),
|
||||||
|
@ -1661,7 +1662,7 @@ int main(int _argc, char **_argv) {
|
||||||
printf(ColorHighlight "Essence Build" ColorNormal "\nPress Ctrl-C to exit.\nCross target is " ColorHighlight TARGET_NAME ColorNormal ".\n");
|
printf(ColorHighlight "Essence Build" ColorNormal "\nPress Ctrl-C to exit.\nCross target is " ColorHighlight TARGET_NAME ColorNormal ".\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
systemLog = fopen("bin/system.log", "w");
|
systemLog = fopen("bin/Logs/system.log", "w");
|
||||||
|
|
||||||
{
|
{
|
||||||
EsINIState s = { (char *) LoadFile("bin/build_config.ini", &s.bytes) };
|
EsINIState s = { (char *) LoadFile("bin/build_config.ini", &s.bytes) };
|
||||||
|
@ -1761,6 +1762,7 @@ int main(int _argc, char **_argv) {
|
||||||
char *prev = NULL;
|
char *prev = NULL;
|
||||||
|
|
||||||
canBuildLuigi = !CallSystem("gcc -o bin/luigi.h.gch util/luigi.h -D UI_IMPLEMENTATION -D UI_LINUX 2> /dev/null");
|
canBuildLuigi = !CallSystem("gcc -o bin/luigi.h.gch util/luigi.h -D UI_IMPLEMENTATION -D UI_LINUX 2> /dev/null");
|
||||||
|
unlink("bin/luigi.h.gch");
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
char *l = NULL;
|
char *l = NULL;
|
||||||
|
|
|
@ -568,13 +568,15 @@ void BuildDesktop(Application *application) {
|
||||||
char buffer[4096];
|
char buffer[4096];
|
||||||
|
|
||||||
snprintf(buffer, sizeof(buffer), "arch/%s/api.s", target);
|
snprintf(buffer, sizeof(buffer), "arch/%s/api.s", target);
|
||||||
ExecuteForApp(application, toolchainNasm, buffer, "-MD", "bin/api1.d", "-o", "bin/api1.o", ArgString(commonAssemblyFlags));
|
ExecuteForApp(application, toolchainNasm, buffer, "-MD", "bin/Dependency Files/api1.d", "-o", "bin/Object Files/api1.o", ArgString(commonAssemblyFlags));
|
||||||
ExecuteForApp(application, toolchainCXX, "-MD", "-c", "desktop/api.cpp", "-o", "bin/api2.o", ArgString(commonCompileFlags), ArgString(desktopProfilingFlags));
|
ExecuteForApp(application, toolchainCXX, "-MD", "-MF", "bin/Dependency Files/api2.d", "-c", "desktop/api.cpp", "-o", "bin/Object Files/api2.o",
|
||||||
ExecuteForApp(application, toolchainCXX, "-MD", "-c", "desktop/posix.cpp", "-o", "bin/api3.o", ArgString(commonCompileFlags));
|
ArgString(commonCompileFlags), ArgString(desktopProfilingFlags));
|
||||||
ExecuteForApp(application, toolchainCC, "-o", "bin/Desktop", "bin/crti.o", "bin/crtbegin.o",
|
ExecuteForApp(application, toolchainCXX, "-MD", "-MF", "bin/Dependency Files/api3.d", "-c", "desktop/posix.cpp", "-o", "bin/Object Files/api3.o",
|
||||||
"bin/api1.o", "bin/api2.o", "bin/api3.o", "bin/crtend.o", "bin/crtn.o",
|
ArgString(commonCompileFlags));
|
||||||
|
ExecuteForApp(application, toolchainCC, "-o", "bin/Desktop", "bin/Object Files/crti.o", "bin/Object Files/crtbegin.o",
|
||||||
|
"bin/Object Files/api1.o", "bin/Object Files/api2.o", "bin/Object Files/api3.o", "bin/Object Files/crtend.o", "bin/Object Files/crtn.o",
|
||||||
ArgString(apiLinkFlags1), ArgString(apiLinkFlags2), ArgString(apiLinkFlags3));
|
ArgString(apiLinkFlags1), ArgString(apiLinkFlags2), ArgString(apiLinkFlags3));
|
||||||
ExecuteForApp(application, toolchainStrip, "-o", "bin/Desktop.no_symbols", "--strip-all", "bin/Desktop");
|
ExecuteForApp(application, toolchainStrip, "-o", "bin/Stripped Executables/Desktop", "--strip-all", "bin/Desktop");
|
||||||
|
|
||||||
for (uintptr_t i = 0; i < arrlenu(fontLines); i++) {
|
for (uintptr_t i = 0; i < arrlenu(fontLines); i++) {
|
||||||
if (fontLines[i].key[0] == '.' || 0 == strcmp(fontLines[i].key, "license")) {
|
if (fontLines[i].key[0] == '.' || 0 == strcmp(fontLines[i].key, "license")) {
|
||||||
|
@ -604,7 +606,7 @@ void BuildDesktop(Application *application) {
|
||||||
ADD_BUNDLE_INPUT("res/elementary Icons.dat", "Icons.dat", 16);
|
ADD_BUNDLE_INPUT("res/elementary Icons.dat", "Icons.dat", 16);
|
||||||
ADD_BUNDLE_INPUT("res/elementary Icons License.txt", "Icons License.txt", 16);
|
ADD_BUNDLE_INPUT("res/elementary Icons License.txt", "Icons License.txt", 16);
|
||||||
ADD_BUNDLE_INPUT("res/Cursors.png", "Cursors.png", 16);
|
ADD_BUNDLE_INPUT("res/Cursors.png", "Cursors.png", 16);
|
||||||
ADD_BUNDLE_INPUT("bin/Desktop.no_symbols", "$Executables/x86_64", 0x1000); // TODO Don't hardcode the target.
|
ADD_BUNDLE_INPUT("bin/Stripped Executables/Desktop", "$Executables/x86_64", 0x1000); // TODO Don't hardcode the target.
|
||||||
|
|
||||||
MakeBundle("root/" SYSTEM_FOLDER_NAME "/Desktop.esx", application->bundleInputFiles, arrlenu(application->bundleInputFiles), 0);
|
MakeBundle("root/" SYSTEM_FOLDER_NAME "/Desktop.esx", application->bundleInputFiles, arrlenu(application->bundleInputFiles), 0);
|
||||||
}
|
}
|
||||||
|
@ -622,7 +624,7 @@ void BuildApplication(Application *application) {
|
||||||
size_t objectFilesPosition = 0;
|
size_t objectFilesPosition = 0;
|
||||||
|
|
||||||
snprintf(symbolFile, sizeof(symbolFile), "bin/%s", application->name);
|
snprintf(symbolFile, sizeof(symbolFile), "bin/%s", application->name);
|
||||||
snprintf(strippedFile, sizeof(strippedFile), "bin/%s.no_symbols", application->name);
|
snprintf(strippedFile, sizeof(strippedFile), "bin/Stripped Executables/%s", application->name);
|
||||||
snprintf(linkerScript, sizeof(linkerScript), "%s/linker/userland64.ld", toolchainLinkerScripts); // TODO Don't hardcode the target.
|
snprintf(linkerScript, sizeof(linkerScript), "%s/linker/userland64.ld", toolchainLinkerScripts); // TODO Don't hardcode the target.
|
||||||
snprintf(crti, sizeof(crti), "%s/crti.o", toolchainCRTObjects);
|
snprintf(crti, sizeof(crti), "%s/crti.o", toolchainCRTObjects);
|
||||||
snprintf(crtbegin, sizeof(crtbegin), "%s/crtbegin.o", toolchainCRTObjects);
|
snprintf(crtbegin, sizeof(crtbegin), "%s/crtbegin.o", toolchainCRTObjects);
|
||||||
|
@ -647,8 +649,9 @@ void BuildApplication(Application *application) {
|
||||||
const char *source = application->sources[i];
|
const char *source = application->sources[i];
|
||||||
size_t sourceBytes = strlen(source);
|
size_t sourceBytes = strlen(source);
|
||||||
|
|
||||||
char objectFile[256];
|
char objectFile[256], dependencyFile[256];
|
||||||
snprintf(objectFile, sizeof(objectFile), "bin/%s_%d.o", application->name, (int) i);
|
snprintf(objectFile, sizeof(objectFile), "bin/Object Files/%s_%d.o", application->name, (int) i);
|
||||||
|
snprintf(dependencyFile, sizeof(dependencyFile), "bin/Dependency Files/%s_%d.d", application->name, (int) i);
|
||||||
objectFilesPosition += sprintf(objectFiles + objectFilesPosition, "\"%s\" ", objectFile);
|
objectFilesPosition += sprintf(objectFiles + objectFilesPosition, "\"%s\" ", objectFile);
|
||||||
|
|
||||||
bool isC = sourceBytes > 2 && source[sourceBytes - 1] == 'c' && source[sourceBytes - 2] == '.';
|
bool isC = sourceBytes > 2 && source[sourceBytes - 1] == 'c' && source[sourceBytes - 2] == '.';
|
||||||
|
@ -656,7 +659,7 @@ void BuildApplication(Application *application) {
|
||||||
const char *languageFlags = isC ? cCompileFlags : cppCompileFlags;
|
const char *languageFlags = isC ? cCompileFlags : cppCompileFlags;
|
||||||
const char *compiler = isC ? toolchainCC : toolchainCXX;
|
const char *compiler = isC ? toolchainCC : toolchainCXX;
|
||||||
|
|
||||||
ExecuteForApp(application, compiler, "-MD", "-o", objectFile, "-c", source,
|
ExecuteForApp(application, compiler, "-MD", "-MF", dependencyFile, "-o", objectFile, "-c", source,
|
||||||
ArgString(languageFlags), ArgString(application->compileFlags), ArgString(cstdlibFlags));
|
ArgString(languageFlags), ArgString(application->compileFlags), ArgString(cstdlibFlags));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -791,7 +794,7 @@ void ParseApplicationManifest(const char *manifestPath) {
|
||||||
for (uintptr_t i = 0; i < arrlenu(application.sources); i++) {
|
for (uintptr_t i = 0; i < arrlenu(application.sources); i++) {
|
||||||
DependencyFile dependencyFile = {};
|
DependencyFile dependencyFile = {};
|
||||||
dependencyFile.name = application.name;
|
dependencyFile.name = application.name;
|
||||||
snprintf(dependencyFile.path, sizeof(dependencyFile.path), "bin/%s_%d.d", application.name, (int) i);
|
snprintf(dependencyFile.path, sizeof(dependencyFile.path), "bin/Dependency Files/%s_%d.d", application.name, (int) i);
|
||||||
arrput(application.dependencyFiles, dependencyFile);
|
arrput(application.dependencyFiles, dependencyFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -910,11 +913,12 @@ void OutputSystemConfiguration() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void BuildModule(Application *application) {
|
void BuildModule(Application *application) {
|
||||||
char output[4096];
|
char output[256], dependencyFile[256];
|
||||||
snprintf(output, sizeof(output), "bin/%s.ekm", application->name);
|
snprintf(output, sizeof(output), "bin/Object Files/%s.ekm", application->name);
|
||||||
|
snprintf(dependencyFile, sizeof(dependencyFile), "bin/Dependency Files/%s.d", application->name);
|
||||||
|
|
||||||
assert(arrlenu(application->sources) == 1);
|
assert(arrlenu(application->sources) == 1);
|
||||||
ExecuteForApp(application, toolchainCXX, "-MD", "-c", application->sources[0], "-o",
|
ExecuteForApp(application, toolchainCXX, "-MD", "-MF", dependencyFile, "-c", application->sources[0], "-o",
|
||||||
output, ArgString(cppCompileFlags), ArgString(kernelCompileFlags), ArgString(commonCompileFlags),
|
output, ArgString(cppCompileFlags), ArgString(kernelCompileFlags), ArgString(commonCompileFlags),
|
||||||
application->builtin ? "-DBUILTIN_MODULE" : "-DKERNEL_MODULE");
|
application->builtin ? "-DBUILTIN_MODULE" : "-DKERNEL_MODULE");
|
||||||
|
|
||||||
|
@ -946,7 +950,7 @@ void ParseKernelConfiguration() {
|
||||||
size_t kernelConfigBytes;
|
size_t kernelConfigBytes;
|
||||||
char *kernelConfig = (char *) LoadFile("kernel/config.ini", &kernelConfigBytes);
|
char *kernelConfig = (char *) LoadFile("kernel/config.ini", &kernelConfigBytes);
|
||||||
|
|
||||||
File f = FileOpen("bin/kernel_config.h", 'w');
|
File f = FileOpen("bin/Generated Code/kernel_config.h", 'w');
|
||||||
|
|
||||||
EsINIState s = {};
|
EsINIState s = {};
|
||||||
s.buffer = (char *) kernelConfig;
|
s.buffer = (char *) kernelConfig;
|
||||||
|
@ -1029,11 +1033,11 @@ void ParseKernelConfiguration() {
|
||||||
FilePrintFormat(f, "#endif");
|
FilePrintFormat(f, "#endif");
|
||||||
FileClose(f);
|
FileClose(f);
|
||||||
|
|
||||||
f = FileOpen("bin/system_config.d", 'w');
|
f = FileOpen("bin/Dependency Files/system_config.d", 'w');
|
||||||
FilePrintFormat(f, ": kernel/config.ini\n");
|
FilePrintFormat(f, ": kernel/config.ini\n");
|
||||||
FileClose(f);
|
FileClose(f);
|
||||||
ParseDependencies("bin/system_config.d", "Kernel Config", false);
|
ParseDependencies("bin/Dependency Files/system_config.d", "Kernel Config", false);
|
||||||
DeleteFile("bin/system_config.d");
|
DeleteFile("bin/Dependency Files/system_config.d");
|
||||||
}
|
}
|
||||||
|
|
||||||
void LinkKernel() {
|
void LinkKernel() {
|
||||||
|
@ -1043,17 +1047,17 @@ void LinkKernel() {
|
||||||
|
|
||||||
arrput(builtinModules, 0);
|
arrput(builtinModules, 0);
|
||||||
|
|
||||||
if (Execute(toolchainLD, "-r", "bin/kernel.o", "bin/kernel_arch.o", ArgString(builtinModules), "-o" "bin/kernel_all.o")) {
|
if (Execute(toolchainLD, "-r", "bin/Object Files/kernel.o", "bin/Object Files/kernel_arch.o", ArgString(builtinModules), "-o" "bin/Object Files/kernel_all.o")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
char *output = NULL;
|
char *output = NULL;
|
||||||
|
|
||||||
if (_Execute(&output, toolchainNM, "bin/kernel_all.o", NULL, NULL)) {
|
if (_Execute(&output, toolchainNM, "bin/Object Files/kernel_all.o", NULL, NULL)) {
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
File f = FileOpen("bin/kernel_symbols.h", 'w');
|
File f = FileOpen("bin/Generated Code/kernel_symbols.h", 'w');
|
||||||
uintptr_t lineStart = 0, position = 0;
|
uintptr_t lineStart = 0, position = 0;
|
||||||
|
|
||||||
while (position < arrlenu(output)) {
|
while (position < arrlenu(output)) {
|
||||||
|
@ -1074,38 +1078,38 @@ void LinkKernel() {
|
||||||
|
|
||||||
FileClose(f);
|
FileClose(f);
|
||||||
|
|
||||||
Execute(toolchainCXX, "-c", "kernel/symbols.cpp", "-o", "bin/kernel_symbols.o",
|
Execute(toolchainCXX, "-c", "kernel/symbols.cpp", "-o", "bin/Object Files/kernel_symbols.o",
|
||||||
ArgString(cppCompileFlags), ArgString(kernelCompileFlags), ArgString(commonCompileFlags));
|
ArgString(cppCompileFlags), ArgString(kernelCompileFlags), ArgString(commonCompileFlags));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Execute(toolchainCXX, "-o", "bin/Kernel", "bin/kernel_symbols.o", "bin/kernel_all.o", ArgString(kernelLinkFlags))) {
|
if (Execute(toolchainCXX, "-o", "bin/Kernel", "bin/Object Files/kernel_symbols.o", "bin/Object Files/kernel_all.o", ArgString(kernelLinkFlags))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Execute(toolchainStrip, "-o", "bin/Kernel.esx", "--strip-all", "bin/Kernel");
|
Execute(toolchainStrip, "-o", "bin/Stripped Executables/Kernel", "--strip-all", "bin/Kernel");
|
||||||
CopyFile("bin/Kernel.esx", "root/" SYSTEM_FOLDER_NAME "/Kernel.esx", false);
|
CopyFile("bin/Stripped Executables/Kernel", "root/" SYSTEM_FOLDER_NAME "/Kernel.esx", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BuildKernel(Application *application) {
|
void BuildKernel(Application *application) {
|
||||||
char buffer[4096];
|
char buffer[4096];
|
||||||
snprintf(buffer, sizeof(buffer), "arch/%s/kernel.s", target);
|
snprintf(buffer, sizeof(buffer), "arch/%s/kernel.s", target);
|
||||||
ExecuteForApp(application, toolchainNasm, "-MD", "bin/kernel2.d", buffer, "-o", "bin/kernel_arch.o", ArgString(commonAssemblyFlags));
|
ExecuteForApp(application, toolchainNasm, "-MD", "bin/Dependency Files/kernel2.d", buffer, "-o", "bin/Object Files/kernel_arch.o", ArgString(commonAssemblyFlags));
|
||||||
snprintf(buffer, sizeof(buffer), "-DARCH_KERNEL_SOURCE=<arch/%s/kernel.cpp>", target);
|
snprintf(buffer, sizeof(buffer), "-DARCH_KERNEL_SOURCE=<arch/%s/kernel.cpp>", target);
|
||||||
ExecuteForApp(application, toolchainCXX, "-MD", "-c", "kernel/main.cpp", "-o", "bin/kernel.o",
|
ExecuteForApp(application, toolchainCXX, "-MD", "-MF", "bin/Dependency Files/kernel.d", "-c", "kernel/main.cpp", "-o", "bin/Object Files/kernel.o",
|
||||||
ArgString(kernelCompileFlags), ArgString(cppCompileFlags), ArgString(commonCompileFlags), buffer);
|
ArgString(kernelCompileFlags), ArgString(cppCompileFlags), ArgString(commonCompileFlags), buffer);
|
||||||
if (application->error) __sync_fetch_and_or(&encounteredErrorsInKernelModules, 1);
|
if (application->error) __sync_fetch_and_or(&encounteredErrorsInKernelModules, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BuildBootloader(Application *application) {
|
void BuildBootloader(Application *application) {
|
||||||
ExecuteForApp(application, toolchainNasm, "-MD", "bin/boot1.d", "-fbin",
|
ExecuteForApp(application, toolchainNasm, "-MD", "bin/Dependency Files/boot1.d", "-fbin",
|
||||||
forEmulator ? "boot/x86/mbr.s" : "boot/x86/mbr-emu.s" , "-obin/mbr");
|
forEmulator ? "boot/x86/mbr.s" : "boot/x86/mbr-emu.s" , "-obin/mbr");
|
||||||
ExecuteForApp(application, toolchainNasm, "-MD", "bin/boot2.d", "-fbin",
|
ExecuteForApp(application, toolchainNasm, "-MD", "bin/Dependency Files/boot2.d", "-fbin",
|
||||||
"boot/x86/esfs-stage1.s", "-obin/stage1");
|
"boot/x86/esfs-stage1.s", "-obin/stage1");
|
||||||
ExecuteForApp(application, toolchainNasm, "-MD", "bin/boot3.d", "-fbin",
|
ExecuteForApp(application, toolchainNasm, "-MD", "bin/Dependency Files/boot3.d", "-fbin",
|
||||||
"boot/x86/loader.s", "-obin/stage2",
|
"boot/x86/loader.s", "-obin/stage2",
|
||||||
"-Pboot/x86/esfs-stage2.s", (forEmulator && !bootUseVBE) ? "" : "-D BOOT_USE_VBE");
|
"-Pboot/x86/esfs-stage2.s", (forEmulator && !bootUseVBE) ? "" : "-D BOOT_USE_VBE");
|
||||||
ExecuteForApp(application, toolchainNasm, "-MD", "bin/boot4.d", "-fbin",
|
ExecuteForApp(application, toolchainNasm, "-MD", "bin/Dependency Files/boot4.d", "-fbin",
|
||||||
"boot/x86/uefi_loader.s", "-obin/uefi_loader");
|
"boot/x86/uefi_loader.s", "-obin/uefi_loader");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1203,7 +1207,7 @@ void Install(const char *driveFile, uint64_t partitionSize, const char *partitio
|
||||||
FileClose(f);
|
FileClose(f);
|
||||||
|
|
||||||
size_t kernelBytes;
|
size_t kernelBytes;
|
||||||
void *kernel = LoadFile("bin/Kernel.esx", &kernelBytes);
|
void *kernel = LoadFile("bin/Stripped Executables/Kernel", &kernelBytes);
|
||||||
|
|
||||||
if (truncate(driveFile, partitionSize)) {
|
if (truncate(driveFile, partitionSize)) {
|
||||||
Log("Error: Could not change the file's size to %d bytes.\n", (int) partitionSize);
|
Log("Error: Could not change the file's size to %d bytes.\n", (int) partitionSize);
|
||||||
|
@ -1445,7 +1449,7 @@ int main(int argc, char **argv) {
|
||||||
if (driverSource && *driverSource) {
|
if (driverSource && *driverSource) {
|
||||||
DependencyFile dependencyFile = {};
|
DependencyFile dependencyFile = {};
|
||||||
dependencyFile.name = driverName;
|
dependencyFile.name = driverName;
|
||||||
snprintf(dependencyFile.path, sizeof(dependencyFile.path), "bin/%s.d", driverName);
|
snprintf(dependencyFile.path, sizeof(dependencyFile.path), "bin/Dependency Files/%s.d", driverName);
|
||||||
|
|
||||||
Application application = {};
|
Application application = {};
|
||||||
arrput(application.sources, driverSource);
|
arrput(application.sources, driverSource);
|
||||||
|
@ -1457,7 +1461,7 @@ int main(int argc, char **argv) {
|
||||||
|
|
||||||
if (driverBuiltin) {
|
if (driverBuiltin) {
|
||||||
char append[256];
|
char append[256];
|
||||||
snprintf(append, sizeof(append), " bin/%s.ekm ", driverName);
|
snprintf(append, sizeof(append), " \"bin/Object Files/%s.ekm\" ", driverName);
|
||||||
size_t previousLength = arrlenu(builtinModules);
|
size_t previousLength = arrlenu(builtinModules);
|
||||||
arrsetlen(builtinModules, previousLength + strlen(append));
|
arrsetlen(builtinModules, previousLength + strlen(append));
|
||||||
memcpy(builtinModules + previousLength, append, strlen(append));
|
memcpy(builtinModules + previousLength, append, strlen(append));
|
||||||
|
@ -1502,6 +1506,10 @@ int main(int argc, char **argv) {
|
||||||
}
|
}
|
||||||
|
|
||||||
MakeDirectory("bin");
|
MakeDirectory("bin");
|
||||||
|
MakeDirectory("bin/Dependency Files");
|
||||||
|
MakeDirectory("bin/Object Files");
|
||||||
|
MakeDirectory("bin/Stripped Executables");
|
||||||
|
MakeDirectory("bin/Generated Code");
|
||||||
|
|
||||||
if (systemBuild) {
|
if (systemBuild) {
|
||||||
MakeDirectory("root");
|
MakeDirectory("root");
|
||||||
|
@ -1524,31 +1532,32 @@ int main(int argc, char **argv) {
|
||||||
char buffer[4096];
|
char buffer[4096];
|
||||||
|
|
||||||
snprintf(buffer, sizeof(buffer), "arch/%s/crti.s", target);
|
snprintf(buffer, sizeof(buffer), "arch/%s/crti.s", target);
|
||||||
Execute(toolchainNasm, buffer, "-o", "bin/crti.o", ArgString(commonAssemblyFlags));
|
Execute(toolchainNasm, buffer, "-o", "bin/Object Files/crti.o", ArgString(commonAssemblyFlags));
|
||||||
snprintf(buffer, sizeof(buffer), "arch/%s/crtn.s", target);
|
snprintf(buffer, sizeof(buffer), "arch/%s/crtn.s", target);
|
||||||
Execute(toolchainNasm, buffer, "-o", "bin/crtn.o", ArgString(commonAssemblyFlags));
|
Execute(toolchainNasm, buffer, "-o", "bin/Object Files/crtn.o", ArgString(commonAssemblyFlags));
|
||||||
|
|
||||||
snprintf(buffer, sizeof(buffer), "%s/crtbegin.o", toolchainCompilerObjects);
|
snprintf(buffer, sizeof(buffer), "%s/crtbegin.o", toolchainCompilerObjects);
|
||||||
CopyFile(buffer, "bin/crtbegin.o", false);
|
CopyFile(buffer, "bin/Object Files/crtbegin.o", false);
|
||||||
snprintf(buffer, sizeof(buffer), "%s/crtend.o", toolchainCompilerObjects);
|
snprintf(buffer, sizeof(buffer), "%s/crtend.o", toolchainCompilerObjects);
|
||||||
CopyFile(buffer, "bin/crtend.o", false);
|
CopyFile(buffer, "bin/Object Files/crtend.o", false);
|
||||||
|
|
||||||
Execute(toolchainCC, "-c", "desktop/crt1.c", "-o", "bin/crt1.o", ArgString(cCompileFlags), ArgString(commonCompileFlags));
|
Execute(toolchainCC, "-c", "desktop/crt1.c", "-o", "bin/Object Files/crt1.o", ArgString(cCompileFlags), ArgString(commonCompileFlags));
|
||||||
Execute(toolchainCC, "-c", "desktop/crtglue.c", "-o" "bin/crtglue.o", ArgString(cCompileFlags), ArgString(commonCompileFlags));
|
Execute(toolchainCC, "-c", "desktop/crtglue.c", "-o" "bin/Object Files/crtglue.o", ArgString(cCompileFlags), ArgString(commonCompileFlags));
|
||||||
CopyFile("bin/crti.o", "root/Applications/POSIX/lib/crti.o", false);
|
CopyFile("bin/Object Files/crti.o", "root/Applications/POSIX/lib/crti.o", false);
|
||||||
CopyFile("bin/crtbegin.o", "root/Applications/POSIX/lib/crtbegin.o", false);
|
CopyFile("bin/Object Files/crtbegin.o", "root/Applications/POSIX/lib/crtbegin.o", false);
|
||||||
CopyFile("bin/crtend.o", "root/Applications/POSIX/lib/crtend.o", false);
|
CopyFile("bin/Object Files/crtend.o", "root/Applications/POSIX/lib/crtend.o", false);
|
||||||
CopyFile("bin/crtn.o", "root/Applications/POSIX/lib/crtn.o", false);
|
CopyFile("bin/Object Files/crtn.o", "root/Applications/POSIX/lib/crtn.o", false);
|
||||||
CopyFile("bin/crt1.o", "root/Applications/POSIX/lib/crt1.o", false);
|
CopyFile("bin/Object Files/crt1.o", "root/Applications/POSIX/lib/crt1.o", false);
|
||||||
CopyFile("bin/crtglue.o", "root/Applications/POSIX/lib/crtglue.o", false);
|
CopyFile("bin/Object Files/crtglue.o", "root/Applications/POSIX/lib/crtglue.o", false);
|
||||||
CopyFile("bin/crt1.o", "cross/lib/gcc/x86_64-essence/" GCC_VERSION "/crt1.o", true); // TODO Don't hardcode the target.
|
CopyFile("bin/Object Files/crt1.o", "cross/lib/gcc/x86_64-essence/" GCC_VERSION "/crt1.o", true); // TODO Don't hardcode the target.
|
||||||
CopyFile("bin/crtglue.o", "cross/lib/gcc/x86_64-essence/" GCC_VERSION "/crtglue.o", true);
|
CopyFile("bin/Object Files/crtglue.o", "cross/lib/gcc/x86_64-essence/" GCC_VERSION "/crtglue.o", true);
|
||||||
CopyFile("util/linker/userland64.ld", "root/Applications/POSIX/lib/linker/userland64.ld", false);
|
CopyFile("util/linker/userland64.ld", "root/Applications/POSIX/lib/linker/userland64.ld", false);
|
||||||
|
|
||||||
if (hasNativeToolchain) {
|
if (hasNativeToolchain) {
|
||||||
snprintf(buffer, sizeof(buffer), "%s/linker/userland64.ld", toolchainLinkerScripts); // TODO Don't hardcode the target.
|
snprintf(buffer, sizeof(buffer), "%s/linker/userland64.ld", toolchainLinkerScripts); // TODO Don't hardcode the target.
|
||||||
Execute(toolchainCC, "util/build_core.c", "-o", "root/Applications/POSIX/bin/build_core", "-g",
|
Execute(toolchainCC, "util/build_core.c", "-o", "root/Applications/POSIX/bin/build_core", "-g",
|
||||||
"-nostdlib", "bin/crti.o", "bin/crtbegin.o", "bin/crtend.o", "bin/crtn.o", "-T", buffer);
|
"-nostdlib", "bin/Object Files/crti.o", "bin/Object Files/crtbegin.o",
|
||||||
|
"bin/Object Files/crtend.o", "bin/Object Files/crtn.o", "-T", buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1564,10 +1573,10 @@ int main(int argc, char **argv) {
|
||||||
Application application = {};
|
Application application = {};
|
||||||
application.name = "Bootloader";
|
application.name = "Bootloader";
|
||||||
application.buildCallback = BuildBootloader;
|
application.buildCallback = BuildBootloader;
|
||||||
ADD_DEPENDENCY_FILE(application, "bin/boot1.d", "Boot1");
|
ADD_DEPENDENCY_FILE(application, "bin/Dependency Files/boot1.d", "Boot1");
|
||||||
ADD_DEPENDENCY_FILE(application, "bin/boot2.d", "Boot2");
|
ADD_DEPENDENCY_FILE(application, "bin/Dependency Files/boot2.d", "Boot2");
|
||||||
ADD_DEPENDENCY_FILE(application, "bin/boot3.d", "Boot3");
|
ADD_DEPENDENCY_FILE(application, "bin/Dependency Files/boot3.d", "Boot3");
|
||||||
ADD_DEPENDENCY_FILE(application, "bin/boot4.d", "Boot4");
|
ADD_DEPENDENCY_FILE(application, "bin/Dependency Files/boot4.d", "Boot4");
|
||||||
arrput(applications, application);
|
arrput(applications, application);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1575,9 +1584,9 @@ int main(int argc, char **argv) {
|
||||||
Application application = {};
|
Application application = {};
|
||||||
application.name = "Desktop";
|
application.name = "Desktop";
|
||||||
application.buildCallback = BuildDesktop;
|
application.buildCallback = BuildDesktop;
|
||||||
ADD_DEPENDENCY_FILE(application, "bin/api1.d", "API1");
|
ADD_DEPENDENCY_FILE(application, "bin/Dependency Files/api1.d", "API1");
|
||||||
ADD_DEPENDENCY_FILE(application, "bin/api2.d", "API2");
|
ADD_DEPENDENCY_FILE(application, "bin/Dependency Files/api2.d", "API2");
|
||||||
ADD_DEPENDENCY_FILE(application, "bin/api3.d", "API3");
|
ADD_DEPENDENCY_FILE(application, "bin/Dependency Files/api3.d", "API3");
|
||||||
arrput(applications, application);
|
arrput(applications, application);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1591,8 +1600,8 @@ int main(int argc, char **argv) {
|
||||||
Application application = {};
|
Application application = {};
|
||||||
application.name = "Kernel";
|
application.name = "Kernel";
|
||||||
application.buildCallback = BuildKernel;
|
application.buildCallback = BuildKernel;
|
||||||
ADD_DEPENDENCY_FILE(application, "bin/kernel.d", "Kernel1");
|
ADD_DEPENDENCY_FILE(application, "bin/Dependency Files/kernel.d", "Kernel1");
|
||||||
ADD_DEPENDENCY_FILE(application, "bin/kernel2.d", "Kernel2");
|
ADD_DEPENDENCY_FILE(application, "bin/Dependency Files/kernel2.d", "Kernel2");
|
||||||
arrput(applications, application);
|
arrput(applications, application);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,10 +5,10 @@ char *buffer;
|
||||||
int position;
|
int position;
|
||||||
|
|
||||||
#define DEST_OS "root/Applications/POSIX/include/essence.h"
|
#define DEST_OS "root/Applications/POSIX/include/essence.h"
|
||||||
#define DEST_API_ARRAY "bin/api_array.h"
|
#define DEST_API_ARRAY "bin/Generated Code/api_array.h"
|
||||||
#define DEST_SYSCALL_ARRAY "bin/syscall_array.h"
|
#define DEST_SYSCALL_ARRAY "bin/Generated Code/syscall_array.h"
|
||||||
#define DEST_ENUM_STRINGS_ARRAY "bin/enum_strings_array.h"
|
#define DEST_ENUM_STRINGS_ARRAY "bin/Generated Code/enum_strings_array.h"
|
||||||
#define DEST_DEPENDENCIES "bin/api_header.d"
|
#define DEST_DEPENDENCIES "bin/Dependency Files/api_header.d"
|
||||||
|
|
||||||
typedef struct Token {
|
typedef struct Token {
|
||||||
#define TOKEN_IDENTIFIER (1)
|
#define TOKEN_IDENTIFIER (1)
|
||||||
|
|
Loading…
Reference in New Issue