Add tinycc bootstrap
This commit is contained in:
parent
95468946f0
commit
8826d32912
289
tinycc-d2f8ceac/compile.c
Normal file
289
tinycc-d2f8ceac/compile.c
Normal file
@ -0,0 +1,289 @@
|
||||
// Put this script in tinycc, compile it, then run it.
|
||||
#ifndef ENV_CC
|
||||
#define ENV_CC "tcc"
|
||||
#endif
|
||||
|
||||
#ifndef ENV_CFLAGS
|
||||
#define ENV_CFLAGS "-D__MTC_NONE"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
|
||||
#if PLATFORM_LINUX
|
||||
#define ENV_PLATFORM "linux"
|
||||
#include <unistd.h>
|
||||
#include <sys/wait.h>
|
||||
#elif PLATFORM_WINDOWS
|
||||
#define ENV_PLATFORM "windows"
|
||||
#include <unistd.h>
|
||||
#include <windows.h>
|
||||
#else
|
||||
#warning "ERROR: Please define a platform with -DPLATFORM_*."
|
||||
#warning ""
|
||||
#warning "Available platforms:"
|
||||
#warning "* LINUX"
|
||||
#warning "* WINDOWS"
|
||||
#warning ""
|
||||
#warning "Example: -DPLATFORM_LINUX"
|
||||
#define ENV_QUIT
|
||||
#endif
|
||||
|
||||
#if ARCH_I386
|
||||
#if PLATFORM_LINUX
|
||||
#define ARCH_TRIPLET "i386-linux-gnu"
|
||||
#endif
|
||||
#define ARCH_NAME "I386"
|
||||
#elif ARCH_X86_64
|
||||
#if PLATFORM_LINUX
|
||||
#define ARCH_TRIPLET "x86_64-linux-gnu"
|
||||
#endif
|
||||
#define ARCH_NAME "X86_64"
|
||||
#else
|
||||
#warning "ERROR: Please define an architecture with -DARCH_*."
|
||||
#warning ""
|
||||
#warning "Available architectures:"
|
||||
#warning "* I386"
|
||||
#warning "* X86_64"
|
||||
#warning ""
|
||||
#warning "Example: -DARCH_I386"
|
||||
#define ENV_QUIT
|
||||
#endif
|
||||
|
||||
#if ENV_QUIT
|
||||
#error "Compilation failed."
|
||||
#endif
|
||||
|
||||
void system_error(const char * command) {
|
||||
printf("* %s\n",command);
|
||||
int code = system(command);
|
||||
if (code != 0) {
|
||||
printf("Error %d, quitting.\n",code);
|
||||
exit(code);
|
||||
}
|
||||
}
|
||||
|
||||
int _call_proc(char * argv[]) {
|
||||
#if PLATFORM_LINUX
|
||||
pid_t pid;
|
||||
int status;
|
||||
pid = fork();
|
||||
|
||||
if (pid == -1) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pid == 0) { // Child process
|
||||
execvp(argv[0],argv);
|
||||
// execvp only returns if an error occurs.
|
||||
return -1;
|
||||
} else { // Parent process
|
||||
waitpid(pid,&status,0);
|
||||
if (WIFEXITED(status) != 1) { return -1; }
|
||||
return WEXITSTATUS(status);
|
||||
}
|
||||
|
||||
return -1;
|
||||
#elif PLATFORM_WINDOWS
|
||||
char * command;
|
||||
long commandLength = 0;
|
||||
int i;
|
||||
for (i = 0; argv[i] != NULL; i++) {
|
||||
commandLength += strlen(argv[i]) + 3;
|
||||
int si;
|
||||
for (si = 0; argv[i][si] != 0; si++) {
|
||||
if (argv[i][si] == '"') {
|
||||
commandLength++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
commandLength += 1;
|
||||
command = malloc(commandLength);
|
||||
command[0] = 0;
|
||||
|
||||
for (i = 0; argv[i] != NULL; i++) {
|
||||
int si;
|
||||
strcat(command,"\"");
|
||||
for (si = 0; argv[i][si] != 0; si++) {
|
||||
if (argv[i][si] == '"') {
|
||||
strcat(command,"\\");
|
||||
}
|
||||
strncat(command,(char *)&argv[i][si],1);
|
||||
}
|
||||
|
||||
strcat(command,"\" ");
|
||||
}
|
||||
command[commandLength - 2] = 0;
|
||||
|
||||
// windows-specific section
|
||||
STARTUPINFO si;
|
||||
PROCESS_INFORMATION pi;
|
||||
ZeroMemory(&si,sizeof(si));
|
||||
si.cb = sizeof(si);
|
||||
ZeroMemory(&pi,sizeof(pi));
|
||||
|
||||
BOOL b = CreateProcess(NULL,command,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);
|
||||
free(command);
|
||||
if (b == 0) {
|
||||
return -1;
|
||||
}
|
||||
WaitForSingleObject(pi.hProcess,INFINITE);
|
||||
DWORD status;
|
||||
if (!GetExitCodeProcess(pi.hProcess,&status)) {
|
||||
CloseHandle(pi.hProcess);
|
||||
CloseHandle(pi.hThread);
|
||||
return -1;
|
||||
}
|
||||
|
||||
CloseHandle(pi.hProcess);
|
||||
CloseHandle(pi.hThread);
|
||||
return status;
|
||||
#endif
|
||||
}
|
||||
|
||||
int call_proc(char * file, ...) {
|
||||
char ** argv = malloc(sizeof(char *));
|
||||
argv[0] = file;
|
||||
|
||||
int i = 1;
|
||||
char * str = file;
|
||||
va_list args;
|
||||
va_start(args,file);
|
||||
|
||||
while (str != NULL) {
|
||||
str = va_arg(args, char *);
|
||||
argv = realloc(argv,sizeof(char *) * (i + 1));
|
||||
argv[i] = str;
|
||||
i++;
|
||||
}
|
||||
|
||||
int code = _call_proc(argv);
|
||||
free(argv);
|
||||
va_end(args);
|
||||
return code;
|
||||
}
|
||||
|
||||
void call_proc_error(char * file, ...) {
|
||||
char ** argv = malloc(sizeof(char *));
|
||||
argv[0] = file;
|
||||
|
||||
int i = 1;
|
||||
char * str = file;
|
||||
va_list args;
|
||||
va_start(args,file);
|
||||
|
||||
while (str != NULL) {
|
||||
str = va_arg(args, char *);
|
||||
argv = realloc(argv,sizeof(char *) * (i + 1));
|
||||
argv[i] = str;
|
||||
i++;
|
||||
}
|
||||
|
||||
printf("* ");
|
||||
int di;
|
||||
for (di = 0; argv[di] != NULL; di++) {
|
||||
printf("\"");
|
||||
printf("%s",argv[di]);
|
||||
printf("\" ");
|
||||
}
|
||||
printf("\n");
|
||||
fflush(stdout);
|
||||
|
||||
int code = _call_proc(argv);
|
||||
free(argv);
|
||||
va_end(args);
|
||||
if (code != 0) {
|
||||
printf("Error %d, quitting.\n",code);
|
||||
exit(code);
|
||||
}
|
||||
}
|
||||
|
||||
int main (int argc, const char * argv[]) {
|
||||
/*printf("* ENV_PLATFORM: '"ENV_PLATFORM"'\n");
|
||||
printf("* ENV_CC: '"ENV_CC"'\n");
|
||||
printf("* ENV_CFLAGS: '"ENV_CFLAGS"'\n");
|
||||
printf("\n");*/
|
||||
|
||||
#if PLATFORM_LINUX
|
||||
call_proc_error(ENV_CC,"-o","tcc.o","-c","tcc.c","-DCONFIG_TRIPLET=\""ARCH_TRIPLET"\"","-DTCC_TARGET_"ARCH_NAME,"-DONE_SOURCE=0","-DTCC_GITHASH=\"2024-02-19 mob@d2f8ceac\"","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","libtcc.o","-c","libtcc.c","-DCONFIG_TRIPLET=\""ARCH_TRIPLET"\"","-DTCC_TARGET_"ARCH_NAME,"-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-DC2STR","conftest.c","-o","c2str.exe",NULL);
|
||||
call_proc_error("./c2str.exe","include/tccdefs.h","tccdefs_.h",NULL);
|
||||
call_proc_error(ENV_CC,"-o","tccpp.o","-c","tccpp.c","-DCONFIG_TRIPLET=\""ARCH_TRIPLET"\"","-DTCC_TARGET_"ARCH_NAME,"-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","tccgen.o","-c","tccgen.c","-DCONFIG_TRIPLET=\""ARCH_TRIPLET"\"","-DTCC_TARGET_"ARCH_NAME,"-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","tccdbg.o","-c","tccdbg.c","-DCONFIG_TRIPLET=\""ARCH_TRIPLET"\"","-DTCC_TARGET_"ARCH_NAME,"-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","tccelf.o","-c","tccelf.c","-DCONFIG_TRIPLET=\""ARCH_TRIPLET"\"","-DTCC_TARGET_"ARCH_NAME,"-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","tccasm.o","-c","tccasm.c","-DCONFIG_TRIPLET=\""ARCH_TRIPLET"\"","-DTCC_TARGET_"ARCH_NAME,"-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","tccrun.o","-c","tccrun.c","-DCONFIG_TRIPLET=\""ARCH_TRIPLET"\"","-DTCC_TARGET_"ARCH_NAME,"-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","x86_64-gen.o","-c","x86_64-gen.c","-DCONFIG_TRIPLET=\""ARCH_TRIPLET"\"","-DTCC_TARGET_"ARCH_NAME,"-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","x86_64-link.o","-c","x86_64-link.c","-DCONFIG_TRIPLET=\""ARCH_TRIPLET"\"","-DTCC_TARGET_"ARCH_NAME,"-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","i386-asm.o","-c","i386-asm.c","-DCONFIG_TRIPLET=\""ARCH_TRIPLET"\"","-DTCC_TARGET_"ARCH_NAME,"-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-shared","-o","libtcc.a","libtcc.o","tccpp.o","tccgen.o","tccdbg.o","tccelf.o","tccasm.o","tccrun.o","x86_64-gen.o","x86_64-link.o","i386-asm.o",NULL);
|
||||
call_proc_error(ENV_CC,"-o","tcc","tcc.o","libtcc.a","-lm","-ldl","-lpthread",NULL);
|
||||
|
||||
|
||||
chdir("lib");
|
||||
call_proc_error("../tcc","-c","libtcc1.c","-o","libtcc1.o","-B..","-I..",NULL);
|
||||
call_proc_error("../tcc","-c","alloca.S","-o","alloca.o","-B..","-I..",NULL);
|
||||
call_proc_error("../tcc","-c","alloca-bt.S","-o","alloca-bt.o","-B..","-I..",NULL);
|
||||
call_proc_error("../tcc","-c","stdatomic.c","-o","stdatomic.o","-B..","-I..",NULL);
|
||||
call_proc_error("../tcc","-c","atomic.S","-o","atomic.o","-B..","-I..",NULL);
|
||||
call_proc_error("../tcc","-c","builtin.c","-o","builtin.o","-B..","-I..",NULL);
|
||||
call_proc_error("../tcc","-c","tcov.c","-o","tcov.o","-B..","-I..",NULL);
|
||||
call_proc_error("../tcc","-c","va_list.c","-o","va_list.o","-B..","-I..",NULL);
|
||||
call_proc_error("../tcc","-c","dsohandle.c","-o","dsohandle.o","-B..","-I..",NULL);
|
||||
call_proc_error("../tcc","-ar","rcs","../libtcc1.a","libtcc1.o","alloca.o","alloca-bt.o","stdatomic.o","atomic.o","builtin.o","tcov.o","va_list.o","dsohandle.o",NULL);
|
||||
call_proc_error("../tcc","-c","bt-exe.c","-o","../bt-exe.o","-B..","-I..",NULL);
|
||||
call_proc_error("../tcc","-c","bt-log.c","-o","../bt-log.o","-B..","-I..",NULL);
|
||||
call_proc_error("../tcc","-c","runmain.c","-o","../runmain.o","-B..","-I..",NULL);
|
||||
call_proc_error("../tcc","-c","bcheck.c","-o","../bcheck.o","-B..","-I..","-bt",NULL);
|
||||
chdir("..");
|
||||
#endif
|
||||
|
||||
#if PLATFORM_WINDOWS
|
||||
call_proc_error(ENV_CC,"-o","tcc.o","-c","tcc.c","-DTCC_TARGET_"ARCH_NAME,"-DTCC_TARGET_PE","-DONE_SOURCE=0","-DTCC_GITHASH=\"2024-02-22 master@9546894\"","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","libtcc.o","-c","libtcc.c","-DTCC_TARGET_"ARCH_NAME,"-DTCC_TARGET_PE","-DLIBTCC_AS_DLL","-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-DC2STR","conftest.c","-o","c2str.exe",NULL);
|
||||
call_proc_error("./c2str.exe","include/tccdefs.h","tccdefs_.h",NULL);
|
||||
call_proc_error(ENV_CC,"-o","tccpp.o","-c","tccpp.c","-DTCC_TARGET_"ARCH_NAME,"-DTCC_TARGET_PE","-DLIBTCC_AS_DLL","-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","tccgen.o","-c","tccgen.c","-DTCC_TARGET_"ARCH_NAME,"-DTCC_TARGET_PE","-DLIBTCC_AS_DLL","-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","tccdbg.o","-c","tccdbg.c","-DTCC_TARGET_"ARCH_NAME,"-DTCC_TARGET_PE","-DLIBTCC_AS_DLL","-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","tccelf.o","-c","tccelf.c","-DTCC_TARGET_"ARCH_NAME,"-DTCC_TARGET_PE","-DLIBTCC_AS_DLL","-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","tccasm.o","-c","tccasm.c","-DTCC_TARGET_"ARCH_NAME,"-DTCC_TARGET_PE","-DLIBTCC_AS_DLL","-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","tccrun.o","-c","tccrun.c","-DTCC_TARGET_"ARCH_NAME,"-DTCC_TARGET_PE","-DLIBTCC_AS_DLL","-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","i386-gen.o","-c","i386-gen.c","-DTCC_TARGET_"ARCH_NAME,"-DTCC_TARGET_PE","-DLIBTCC_AS_DLL","-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","i386-link.o","-c","i386-link.c","-DTCC_TARGET_"ARCH_NAME,"-DTCC_TARGET_PE","-DLIBTCC_AS_DLL","-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","i386-asm.o","-c","i386-asm.c","-DTCC_TARGET_"ARCH_NAME,"-DTCC_TARGET_PE","-DLIBTCC_AS_DLL","-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-o","tccpe.o","-c","tccpe.c","-DTCC_TARGET_"ARCH_NAME,"-DTCC_TARGET_PE","-DLIBTCC_AS_DLL","-DONE_SOURCE=0","-Wall","-O2","-Wdeclaration-after-statement","-fno-strict-aliasing","-Wno-pointer-sign","-Wno-sign-compare","-Wno-unused-result","-Wno-format-truncation","-Wno-stringop-truncation","-I.",NULL);
|
||||
call_proc_error(ENV_CC,"-shared","-o","libtcc.dll","libtcc.o","tccpp.o","tccgen.o","tccdbg.o","tccelf.o","tccasm.o","tccrun.o","i386-gen.o","i386-link.o","i386-asm.o","tccpe.o","-static","-s",NULL);
|
||||
call_proc_error(ENV_CC,"-o","tcc.exe","tcc.o","libtcc.dll","-static","-s",NULL);
|
||||
call_proc_error("./tcc.exe","-impdef","libtcc.dll","-o","libtcc.def",NULL);
|
||||
chdir("lib");
|
||||
call_proc_error("../tcc.exe","-c","libtcc1.c","-o","libtcc1.o","-B../win32","-I../include","-I..",NULL);
|
||||
call_proc_error("../tcc.exe","-c","alloca.S","-o","alloca.o","-B../win32","-I../include","-I..",NULL);
|
||||
call_proc_error("../tcc.exe","-c","alloca-bt.S","-o","alloca-bt.o","-B../win32","-I../include","-I..",NULL);
|
||||
call_proc_error("../tcc.exe","-c","stdatomic.c","-o","stdatomic.o","-B../win32","-I../include","-I..",NULL);
|
||||
call_proc_error("../tcc.exe","-c","atomic.S","-o","atomic.o","-B../win32","-I../include","-I..",NULL);
|
||||
call_proc_error("../tcc.exe","-c","builtin.c","-o","builtin.o","-B../win32","-I../include","-I..",NULL);
|
||||
call_proc_error("../tcc.exe","-c","tcov.c","-o","tcov.o","-B../win32","-I../include","-I..",NULL);
|
||||
call_proc_error("../tcc.exe","-c","../win32/lib/chkstk.S","-o","chkstk.o","-B../win32","-I../include","-I..",NULL);
|
||||
call_proc_error("../tcc.exe","-c","../win32/lib/crt1.c","-o","crt1.o","-B../win32","-I../include","-I..",NULL);
|
||||
call_proc_error("../tcc.exe","-c","../win32/lib/crt1w.c","-o","crt1w.o","-B../win32","-I../include","-I..",NULL);
|
||||
call_proc_error("../tcc.exe","-c","../win32/lib/wincrt1.c","-o","wincrt1.o","-B../win32","-I../include","-I..",NULL);
|
||||
call_proc_error("../tcc.exe","-c","../win32/lib/wincrt1w.c","-o","wincrt1w.o","-B../win32","-I../include","-I..",NULL);
|
||||
call_proc_error("../tcc.exe","-c","../win32/lib/dllcrt1.c","-o","dllcrt1.o","-B../win32","-I../include","-I..",NULL);
|
||||
call_proc_error("../tcc.exe","-c","../win32/lib/dllmain.c","-o","dllmain.o","-B../win32","-I../include","-I..",NULL);
|
||||
call_proc_error("../tcc.exe","-ar","rcs","../libtcc1.a","libtcc1.o","alloca.o","alloca-bt.o","stdatomic.o","atomic.o","builtin.o","tcov.o","chkstk.o","crt1.o","crt1w.o","wincrt1.o","wincrt1w.o","dllcrt1.o","dllmain.o",NULL);
|
||||
call_proc_error("../tcc.exe","-c","bt-exe.c","-o","../bt-exe.o","-B../win32","-I../include","-I..",NULL);
|
||||
call_proc_error("../tcc.exe","-c","bt-log.c","-o","../bt-log.o","-B../win32","-I../include","-I..",NULL);
|
||||
call_proc_error("../tcc.exe","-c","runmain.c","-o","../runmain.o","-B../win32","-I../include","-I..",NULL);
|
||||
call_proc_error("../tcc.exe","-c","bcheck.c","-o","../bcheck.o","-B../win32","-I../include","-I..","-bt",NULL);
|
||||
call_proc_error("../tcc.exe","-c","bt-dll.c","-o","../bt-dll.o","-B../win32","-I../include","-I..",NULL);
|
||||
chdir("..");
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user