Prepare ACPICA compilation

This commit is contained in:
Baptiste Wicht 2016-07-10 21:02:56 +02:00
parent 9f1bbf999d
commit 60657f3c97
31 changed files with 166 additions and 143 deletions

5
cpp.mk
View File

@ -1,4 +1,5 @@
CC=x86_64-elf-g++
CC=x86_64-elf-gcc
CXX=x86_64-elf-g++
AS=x86_64-elf-as
OC=x86_64-elf-objcopy
AR=x86_64-elf-ar
@ -25,6 +26,8 @@ KERNEL_CPP_FLAGS_64 += -fstack-protector
KERNEL_CPP_FLAGS_64 += -Iacpica/source/include
ACPICA_CPP_FLAGS = $(KERNEL_CPP_FLAGS_64) -include include/thor_acenv.hpp
COMMON_LINK_FLAGS=-lgcc
KERNEL_LINK_FLAGS=$(COMMON_LINK_FLAGS) -T linker.ld

View File

@ -9,29 +9,54 @@ KERNEL_CPP_DRIVERS_FILES=$(wildcard src/drivers/*.cpp)
KERNEL_CPP_FS_FILES=$(wildcard src/fs/*.cpp)
KERNEL_CPP_VFS_FILES=$(wildcard src/vfs/*.cpp)
ACPICA_DISPATCHER_CPP_FILES=$(wildcard acpica/source/components/dispatcher/*.c)
ACPICA_EVENTS_CPP_FILES=$(wildcard acpica/source/components/events/*.c)
ACPICA_EXECUTER_CPP_FILES=$(wildcard acpica/source/components/executer/*.c)
ACPICA_NAMESPACE_CPP_FILES=$(wildcard acpica/source/components/namespace/*.c)
ACPICA_RESOURCES_CPP_FILES=$(wildcard acpica/source/components/resources/*.c)
ACPICA_TABLES_CPP_FILES=$(wildcard acpica/source/components/tables/*.c)
ACPICA_UTILITIES_CPP_FILES=$(wildcard acpica/source/components/utilities/*.c)
KERNEL_D_FILES=$(KERNEL_CPP_FILES:%.cpp=%.cpp.d)
KERNEL_D_DRIVERS_FILES=$(KERNEL_CPP_DRIVERS_FILES:%.cpp=%.cpp.d)
KERNEL_D_FS_FILES=$(KERNEL_CPP_FS_FILES:%.cpp=%.cpp.d)
KERNEL_D_VFS_FILES=$(KERNEL_CPP_VFS_FILES:%.cpp=%.cpp.d)
ACPICA_DISPATCHER_D_FILES=$(ACPICA_DISPATCHER_CPP_FILES:%.c=%.c.d)
ACPICA_EVENTS_D_FILES=$(ACPICA_EVENTS_CPP_FILES:%.c=%.c.d)
ACPICA_EXECUTER_D_FILES=$(ACPICA_EXECUTER_CPP_FILES:%.c=%.c.d)
ACPICA_NAMESPACE_D_FILES=$(ACPICA_NAMESPACE_CPP_FILES:%.c=%.c.d)
ACPICA_RESOURCES_D_FILES=$(ACPICA_RESOURCES_CPP_FILES:%.c=%.c.d)
ACPICA_TABLES_D_FILES=$(ACPICA_TABLES_CPP_FILES:%.c=%.c.d)
ACPICA_UTILITIES_D_FILES=$(ACPICA_UTILITIES_CPP_FILES:%.c=%.c.d)
KERNEL_O_FILES=$(KERNEL_CPP_FILES:%.cpp=%.cpp.o)
KERNEL_O_DRIVERS_FILES=$(KERNEL_CPP_DRIVERS_FILES:%.cpp=%.cpp.o)
KERNEL_O_FS_FILES=$(KERNEL_CPP_FS_FILES:%.cpp=%.cpp.o)
KERNEL_O_VFS_FILES=$(KERNEL_CPP_VFS_FILES:%.cpp=%.cpp.o)
#TODO Generate also the o files coming from s files automatically, ignoring crti and crtn
O_FILES=boot_16_64.o boot_32_64.o $(KERNEL_O_FILES) $(KERNEL_O_FS_FILES) $(KERNEL_O_VFS_FILES) $(KERNEL_O_DRIVERS_FILES) src/isrs.s.o src/irqs.s.o src/arch.s.o src/syscalls.s.o src/task_switch.s.o
ACPICA_DISPATCHER_O_FILES=$(ACPICA_DISPATCHER_CPP_FILES:%.c=%.c.o)
ACPICA_EVENTS_O_FILES=$(ACPICA_EVENTS_CPP_FILES:%.c=%.c.o)
ACPICA_EXECUTER_O_FILES=$(ACPICA_EXECUTER_CPP_FILES:%.c=%.c.o)
ACPICA_NAMESPACE_O_FILES=$(ACPICA_NAMESPACE_CPP_FILES:%.c=%.c.o)
ACPICA_RESOURCES_O_FILES=$(ACPICA_RESOURCES_CPP_FILES:%.c=%.c.o)
ACPICA_TABLES_O_FILES=$(ACPICA_TABLES_CPP_FILES:%.c=%.c.o)
ACPICA_UTILITIES_O_FILES=$(ACPICA_UTILITIES_CPP_FILES:%.c=%.c.o)
ACPICA_O_FILES=$(ACPICA_DISPATCHER_O_FILES) $(ACPICA_EVENTS_O_FILES) $(ACPICA_EXECUTER_O_FILES) $(ACPICA_NAMESPACE_O_FILES) $(ACPICA_RESOURCES_O_FILES) $(ACPICA_TABLES_O_FILES) $(ACPICA_UTILITIES_O_FILES)
CRTBEGIN_OBJ:=$(shell $(CC) $(CFLAGS) -print-file-name=crtbegin.o)
CRTEND_OBJ:=$(shell $(CC) $(CFLAGS) -print-file-name=crtend.o)
#TODO Generate also the o files coming from s files automatically, ignoring crti and crtn
O_FILES=boot_16_64.o boot_32_64.o $(KERNEL_O_FILES) $(KERNEL_O_FS_FILES) $(KERNEL_O_VFS_FILES) $(KERNEL_O_DRIVERS_FILES) $(ACPICA_O_FILES) src/isrs.s.o src/irqs.s.o src/arch.s.o src/syscalls.s.o src/task_switch.s.o
CRTBEGIN_OBJ:=$(shell $(CXX) $(CFLAGS) -print-file-name=crtbegin.o)
CRTEND_OBJ:=$(shell $(CXX) $(CFLAGS) -print-file-name=crtend.o)
LINK_O_FILES=src/crti.s.o $(CRTBEGIN_OBJ) $(O_FILES) $(CRTEND_OBJ) src/crtn.s.o
boot_16.o: src/boot/boot_16.cpp
$(CC) $(CPP_FLAGS_16) $(THOR_FLAGS) $(WARNING_FLAGS) -c src/boot/boot_16.cpp -o boot_16.o
$(CXX) $(CPP_FLAGS_16) $(THOR_FLAGS) $(WARNING_FLAGS) -c src/boot/boot_16.cpp -o boot_16.o
boot_32.o: src/boot/boot_32.cpp
$(CC) $(CPP_FLAGS_32) $(THOR_FLAGS) $(WARNING_FLAGS) -c src/boot/boot_32.cpp -o boot_32.o
$(CXX) $(CPP_FLAGS_32) $(THOR_FLAGS) $(WARNING_FLAGS) -c src/boot/boot_32.cpp -o boot_32.o
boot_16_64.o: boot_16.o
$(OC) -I elf32-i386 -O elf64-x86-64 boot_16.o boot_16_64.o
@ -43,36 +68,85 @@ src/%.s.o: src/%.s
$(AS) -g -c $< -o $@
src/%.cpp.d: $(KERNEL_CPP_FILES)
@ $(CC) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -MM -MT src/$*.cpp.o src/$*.cpp | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
@ $(CXX) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -MM -MT src/$*.cpp.o src/$*.cpp | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
src/drivers/%.cpp.d: $(KERNEL_CPP_DRIVERS_FILES)
@ $(CC) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -MM -MT src/drivers/$*.cpp.o src/drivers/$*.cpp | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
@ $(CXX) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -MM -MT src/drivers/$*.cpp.o src/drivers/$*.cpp | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
src/fs/%.cpp.d: $(KERNEL_CPP_FS_FILES)
@ $(CC) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -MM -MT src/fs/$*.cpp.o src/fs/$*.cpp | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
@ $(CXX) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -MM -MT src/fs/$*.cpp.o src/fs/$*.cpp | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
src/vfs/%.cpp.d: $(KERNEL_CPP_VFS_FILES)
@ $(CC) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -MM -MT src/vfs/$*.cpp.o src/vfs/$*.cpp | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
@ $(CXX) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -MM -MT src/vfs/$*.cpp.o src/vfs/$*.cpp | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
acpica/source/components/dispatcher/%.c.d: $(ACPICA_DISPATCHER_CPP_FILES)
@ $(CXX) $(ACPICA_CPP_FLAGS) -include include/thor_acenv.hpp $(THOR_FLAGS) -MM -MT acpica/source/components/dispatcher/$*.c.o acpica/source/components/dispatcher/$*.c | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
acpica/source/components/events/%.c.d: $(ACPICA_EVENTS_CPP_FILES)
@ $(CXX) $(ACPICA_CPP_FLAGS) -include include/thor_acenv.hpp $(THOR_FLAGS) -MM -MT acpica/source/components/events/$*.c.o acpica/source/components/events/$*.c | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
acpica/source/components/executer/%.c.d: $(ACPICA_EXECUTER_CPP_FILES)
@ $(CXX) $(ACPICA_CPP_FLAGS) -include include/thor_acenv.hpp $(THOR_FLAGS) -MM -MT acpica/source/components/executer/$*.c.o acpica/source/components/executer/$*.c | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
acpica/source/components/namespace/%.c.d: $(ACPICA_NAMESPACE_CPP_FILES)
@ $(CXX) $(ACPICA_CPP_FLAGS) -include include/thor_acenv.hpp $(THOR_FLAGS) -MM -MT acpica/source/components/namespace/$*.c.o acpica/source/components/namespace/$*.c | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
acpica/source/components/resources/%.c.d: $(ACPICA_RESOURCES_CPP_FILES)
@ $(CXX) $(ACPICA_CPP_FLAGS) -include include/thor_acenv.hpp $(THOR_FLAGS) -MM -MT acpica/source/components/resources/$*.c.o acpica/source/components/resources/$*.c | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
acpica/source/components/tables/%.c.d: $(ACPICA_TABLES_CPP_FILES)
@ $(CXX) $(ACPICA_CPP_FLAGS) -include include/thor_acenv.hpp $(THOR_FLAGS) -MM -MT acpica/source/components/tables/$*.c.o acpica/source/components/tables/$*.c | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
acpica/source/components/utilities/%.c.d: $(ACPICA_UTILITIES_CPP_FILES)
@ $(CXX) $(ACPICA_CPP_FLAGS) -include include/thor_acenv.hpp $(THOR_FLAGS) -MM -MT acpica/source/components/utilities/$*.c.o acpica/source/components/utilities/$*.c | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
src/%.cpp.o:
$(CC) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -c $< -o $@
$(CXX) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -c $< -o $@
src/drivers/%.cpp.o:
$(CC) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -c $< -o $@
$(CXX) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -c $< -o $@
src/vfs/%.cpp.o:
$(CC) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -c $< -o $@
$(CXX) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -c $< -o $@
src/fs/%.cpp.o:
$(CC) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -c $< -o $@
$(CXX) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -c $< -o $@
acpica/source/components/dispatcher/%.c.o:
$(CC) $(ACPICA_CPP_FLAGS) $(THOR_FLAGS) -c $< -o $@
acpica/source/components/events/%.c.o:
$(CC) $(ACPICA_CPP_FLAGS) $(THOR_FLAGS) -c $< -o $@
acpica/source/components/executer/%.c.o:
$(CC) $(ACPICA_CPP_FLAGS) $(THOR_FLAGS) -c $< -o $@
acpica/source/components/namespace/%.c.o:
$(CC) $(ACPICA_CPP_FLAGS) $(THOR_FLAGS) -c $< -o $@
acpica/source/components/utilies/%.c.o:
$(CC) $(ACPICA_CPP_FLAGS) $(THOR_FLAGS) -c $< -o $@
acpica/source/components/resources/%.c.o:
$(CC) $(ACPICA_CPP_FLAGS) $(THOR_FLAGS) -c $< -o $@
acpica/source/components/tables/%.c.o:
$(CC) $(ACPICA_CPP_FLAGS) $(THOR_FLAGS) -c $< -o $@
-include $(KERNEL_D_FILES)
-include $(KERNEL_D_DRIVERS_FILES)
-include $(KERNEL_D_VFS_FILES)
-include $(KERNEL_D_FS_FILES)
-include $(ACPICA_DISPATCHER_D_FILES)
-include $(ACPICA_EVENTS_D_FILES)
-include $(ACPICA_EXECUTER_D_FILES)
-include $(ACPICA_NAMESPACE_D_FILES)
-include $(ACPICA_RESOURCES_D_FILES)
-include $(ACPICA_TABLES_D_FILES)
-include $(ACPICA_UTILITIES_D_FILES)
kernel.bin: $(LINK_O_FILES)
$(CC) $(KERNEL_LINK_FLAGS) $(KERNEL_CPP_FLAGS_64) -o kernel.bin.o $(LINK_O_FILES)
$(CXX) $(KERNEL_LINK_FLAGS) $(KERNEL_CPP_FLAGS_64) -o kernel.bin.o $(LINK_O_FILES)
$(OC) -R .note -R .comment -O binary --set-section-flags .bss=alloc,load,contents kernel.bin.o kernel.bin
clean:
@ -80,6 +154,13 @@ clean:
rm -f $(KERNEL_D_DRIVERS_FILES)
rm -f $(KERNEL_D_FS_FILES)
rm -f $(KERNEL_D_VFS_FILES)
rm -f $(ACPICA_DISPATCHER_D_FILES)
rm -f $(ACPICA_EVENTS_D_FILES)
rm -f $(ACPICA_EXECUTER_D_FILES)
rm -f $(ACPICA_NAMESPACE_D_FILES)
rm -f $(ACPICA_RESOURCES_D_FILES)
rm -f $(ACPICA_TABLES_D_FILES)
rm -f $(ACPICA_UTILITIES_D_FILES)
rm -f $(O_FILES)
rm -f crti.o
rm -f crts.o

View File

@ -5,8 +5,8 @@
// http://www.boost.org/LICENSE_1_0.txt)
//=======================================================================
#ifndef ACPI_H
#define ACPI_H
#ifndef ACPI_HPP
#define ACPI_HPP
namespace acpi {

View File

@ -244,6 +244,7 @@
*****************************************************************************/
#include "thor_acpi.hpp"
#include <stdarg.h>
/*! [End] no source code translation !*/
@ -342,74 +343,6 @@
*
*****************************************************************************/
/*
* ACPI_USE_SYSTEM_CLIBRARY - Define this if linking to an actual C library.
* Otherwise, local versions of string/memory functions will be used.
* ACPI_USE_STANDARD_HEADERS - Define this if linking to a C library and
* the standard header files may be used.
*
* The ACPICA subsystem only uses low level C library functions that do not
* call operating system services and may therefore be inlined in the code.
*
* It may be necessary to tailor these include files to the target
* generation environment.
*/
#ifdef ACPI_USE_SYSTEM_CLIBRARY
/* Use the standard C library headers. We want to keep these to a minimum. */
#ifdef ACPI_USE_STANDARD_HEADERS
/* Use the standard headers from the standard locations */
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#endif /* ACPI_USE_STANDARD_HEADERS */
/* We will be linking to the standard Clib functions */
#else
/******************************************************************************
*
* Not using native C library, use local implementations
*
*****************************************************************************/
/*
* Use local definitions of C library macros and functions. These function
* implementations may not be as efficient as an inline or assembly code
* implementation provided by a native C library, but they are functionally
* equivalent.
*/
#ifndef va_arg
#ifndef _VALIST
#define _VALIST
typedef char *va_list;
#endif /* _VALIST */
/* Storage alignment properties */
#define _AUPBND (sizeof (ACPI_NATIVE_INT) - 1)
#define _ADNBND (sizeof (ACPI_NATIVE_INT) - 1)
/* Variable argument list macro definitions */
#define _Bnd(X, bnd) (((sizeof (X)) + (bnd)) & (~(bnd)))
#define va_arg(ap, T) (*(T *)(((ap) += (_Bnd (T, _AUPBND))) - (_Bnd (T,_ADNBND))))
#define va_end(ap) (ap = (va_list) NULL)
#define va_start(ap, A) (void) ((ap) = (((char *) &(A)) + (_Bnd (A,_AUPBND))))
#endif /* va_arg */
/* Use the local (ACPICA) definitions of the clib functions */
#endif /* ACPI_USE_SYSTEM_CLIBRARY */
#ifndef ACPI_FILE
#ifdef ACPI_APPLICATION
#include <stdio.h>

View File

@ -5,11 +5,11 @@
// http://www.boost.org/LICENSE_1_0.txt)
//=======================================================================
#ifndef THOR_ACPI_H
#define THOR_ACPI_H
#ifndef THOR_ACPI_HPP
#define THOR_ACPI_HPP
// This file contains the OS specific layer for ACPICA for thor-os
#define ACPI_MACHINE_WIDTH 8 //thor works in 64 bits
#define ACPI_MACHINE_WIDTH 64 //thor works in 64 bits
#endif

View File

@ -5,17 +5,23 @@
// http://www.boost.org/LICENSE_1_0.txt)
//=======================================================================
#include <types.hpp>
//ACPICA
#include "thor_acenv.hpp" //The OS Specific Layer
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-Wunused-function" //TODO Does not work
#include "acpi.h"
#pragma GCC diagnostic pop
#include <types.hpp>
#include "acpi.hpp"
#include "kernel_utils.hpp"
#include "timer.hpp"
#include "paging.hpp"
#include "console.hpp"
#include "logging.hpp"
namespace {
@ -277,7 +283,7 @@ int init_acpi(){
bool initialize_acpica(){
auto status = AcpiInitializeSubsystem();
if(ACPI_FAILURE(status)){
logging::logf("Impossible to initialize ACPICA subsystem\n");
logging::logf(logging::log_level::ERROR, "Impossible to initialize ACPICA subsystem\n");
return false;
}
@ -288,7 +294,7 @@ bool initialize_acpica(){
bool acpi::init(){
if(!initialize_acpica()){
logging::logf("Impossible to initialize ACPICA\n");
logging::logf(logging::log_level::ERROR, "Impossible to initialize ACPICA\n");
}
return init_acpi() == 0;

View File

@ -5,10 +5,10 @@ default: args
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
args: main.cpp.o
$(CC) -o args main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o args main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: cat
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
cat: main.cpp.o
$(CC) -o cat main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o cat main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: cpuid
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
cpuid: main.cpp.o
$(CC) -o cpuid main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o cpuid main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: date
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
date: main.cpp.o
$(CC) -o date main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o date main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: df
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
df: main.cpp.o
$(CC) -o df main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o df main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: keyboard
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
keyboard: main.cpp.o
$(CC) -o keyboard main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o keyboard main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: long
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
long: main.cpp.o
$(CC) -o long main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o long main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: longone
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
longone: main.cpp.o
$(CC) -o longone main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o longone main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: longtwo
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
longtwo: main.cpp.o
$(CC) -o longtwo main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o longtwo main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: loop
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) $(PROGRAM_FLAGS) $(CPP_FLAGS_64) $(WARNING_FLAGS) -c $< -o $@
$(CXX) $(PROGRAM_FLAGS) $(CPP_FLAGS_64) $(WARNING_FLAGS) -c $< -o $@
loop: main.cpp.o
$(CC) $(PROGRAM_LINK_FLAGS) $(CPP_FLAGS_64) -o loop main.cpp.o
$(CXX) $(PROGRAM_LINK_FLAGS) $(CPP_FLAGS_64) -o loop main.cpp.o
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: ls
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
ls: main.cpp.o
$(CC) -o ls main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o ls main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: lspci
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
lspci: main.cpp.o
$(CC) -o lspci main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o lspci main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: mkdir
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
mkdir: main.cpp.o
$(CC) -o mkdir main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o mkdir main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: mount
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
mount: main.cpp.o
$(CC) -o mount main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o mount main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: readelf
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
readelf: main.cpp.o
$(CC) -o readelf main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o readelf main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: reboot
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
reboot: main.cpp.o
$(CC) -o reboot main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o reboot main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: rm
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
rm: main.cpp.o
$(CC) -o rm main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o rm main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: shutdown
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
shutdown: main.cpp.o
$(CC) -o shutdown main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o shutdown main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: stat
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
stat: main.cpp.o
$(CC) -o stat main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o stat main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: touch
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
touch: main.cpp.o
$(CC) -o touch main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o touch main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: tsh
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
tsh: main.cpp.o
$(CC) -o tsh main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o tsh main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: uptime
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
uptime: main.cpp.o
$(CC) -o uptime main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o uptime main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: which
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
which: main.cpp.o
$(CC) -o which main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o which main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -5,10 +5,10 @@ default: writer
include ../../cpp.mk
%.cpp.o: src/%.cpp
$(CC) -c $< -o $@ $(PROGRAM_FLAGS)
$(CXX) -c $< -o $@ $(PROGRAM_FLAGS)
writer: main.cpp.o
$(CC) -o writer main.cpp.o $(PROGRAM_LINK_FLAGS)
$(CXX) -o writer main.cpp.o $(PROGRAM_LINK_FLAGS)
clean:
rm -f *.cpp.o

View File

@ -9,10 +9,10 @@ D_FILES=$(CPP_FILES:%.cpp=%.cpp.d)
O_FILES=$(CPP_FILES:%.cpp=%.cpp.o)
src/%.cpp.d: $(CPP_FILES)
@ $(CC) $(LIB_FLAGS) -MM -MT src/$*.cpp.o src/$*.cpp | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
@ $(CXX) $(LIB_FLAGS) -MM -MT src/$*.cpp.o src/$*.cpp | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
src/%.cpp.o:
$(CC) $(LIB_FLAGS) -c $< -o $@
$(CXX) $(LIB_FLAGS) -c $< -o $@
-include $(D_FILES)