c/c++ samples refactoring

git-svn-id: svn://kolibrios.org@9758 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
maxcodehack 2022-04-06 15:24:16 +00:00
parent 4fae618b2c
commit 87d53e5e74
5 changed files with 33 additions and 48 deletions

View File

@ -3,25 +3,21 @@ LD = kos32-ld
SDK_DIR = $(abspath ../..)
LDFLAGS = -static -nostdlib -T $(SDK_DIR)/sources/newlib/app.lds --image-base 0
CFLAGS = -c -fno-ident -O2 -fomit-frame-pointer -fno-ident -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -Wno-pointer-arith
CFLAGS = -c -fno-ident -O2 -fomit-frame-pointer -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -Wno-pointer-arith
LDFLAGS = -static -S -Tapp-dynamic.lds --image-base 0
INCLUDES = -I $(SDK_DIR)/sources/newlib/libc/include -I $(SDK_DIR)/sources/libstdc++-v3/include
LIBPATH = -L $(SDK_DIR)/lib -L /home/autobuild/tools/win32/mingw32/lib
SOURCES = hello.cpp \
$(NULL)
LIBPATH = -L $(SDK_DIR)/lib
SOURCES = hello.cpp
OBJECTS = $(patsubst %.cpp, %.o, $(SOURCES))
default: hello
hello: $(OBJECTS) Makefile
$(LD) $(LDFLAGS) $(LIBPATH) --subsystem console -o hello.kex $(OBJECTS) -lstdc++ -lsupc++ -lgcc -lc.dll
strip -s hello.kex -o hello.kex
objcopy hello.kex -O binary
rm *.o
$(LD) $(LDFLAGS) $(LIBPATH) --subsystem console -o hello $(OBJECTS) -lstdc++ -lsupc++ -lgcc -lc.dll
strip -s hello -o hello
objcopy hello -O binary
%.o : %.cpp Makefile $(SOURCES)
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $<

View File

@ -1,21 +1,16 @@
// for 'cout'
#include <iostream>
// for 'console.obj' functions
#include <sys/kos_LoadConsole.h>
#include <sys/kos_LoadConsole.h> // to load console.obj
using namespace std;
int main()
{
// load console.obj
int main() {
load_console();
con_set_title("C++ Console.obj example");
cout << "Press any key...\n";
con_getch();
cout << "Hello, KolibriOS!\n";
con_set_title("Hello");
return 0;
}

View File

@ -1,26 +1,25 @@
# dynamic linking
CC = kos32-gcc
LD = kos32-ld
SDK_DIR:= $(abspath ../..)
LDFLAGS = -static -S -Tapp-dynamic.lds --image-base 0
SDK_DIR = $(abspath ../..)
CFLAGS = -c -fno-ident -O2 -fomit-frame-pointer -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32
LDFLAGS = -static -S -Tapp-dynamic.lds --image-base 0
INCLUDES = -I $(SDK_DIR)/sources/newlib/libc/include
LIBPATH:= -L $(SDK_DIR)/lib
SOURCES = hello.c \
$(NULL)
LIBPATH = -L $(SDK_DIR)/lib
SOURCES = hello.c
OBJECTS = $(patsubst %.c, %.o, $(SOURCES))
default: hello
hello: $(OBJECTS) Makefile.shared
hello: $(OBJECTS) Makefile
$(LD) $(LDFLAGS) $(LIBPATH) -o hello $(OBJECTS) -lgcc -lc.dll
strip -s hello -o hello
objcopy hello -O binary
%.o : %.c Makefile.shared $(SOURCES)
%.o : %.c Makefile $(SOURCES)
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $<

View File

@ -1,25 +1,23 @@
# static linking
CC = kos32-gcc
LD = kos32-ld
SDK_DIR:= $(abspath ../..)
LDFLAGS = -static -Tapp-static.lds
SDK_DIR = $(abspath ../..)
CFLAGS = -c -fno-ident -O2 -fomit-frame-pointer -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32
LDFLAGS = -static -Tapp-static.lds
INCLUDES = -I $(SDK_DIR)/sources/newlib/libc/include
LIBPATH:= -L $(SDK_DIR)/lib
SOURCES = hello.c \
$(NULL)
LIBPATH = -L $(SDK_DIR)/lib
SOURCES = hello.c
OBJECTS = $(patsubst %.c, %.o, $(SOURCES))
default: hello
hello: $(OBJECTS) Makefile.static
$(LD) $(LDFLAGS) $(LIBPATH) -Map hello.map -o hello $(OBJECTS) -lc -lgcc -lc
$(LD) $(LDFLAGS) $(LIBPATH) -o hello $(OBJECTS) -lc -lgcc -lc
objcopy hello -O binary
%.o : %.c Makefile.static $(SOURCES)

View File

@ -1,9 +1,6 @@
#include <stdio.h>
int main(int argc, char *argv[])
{
int main() {
printf("Hello, world!\n");
return 0;
};
}