Архитектура_проекта - fica99/Corewar GitHub Wiki

Архитектура проекта

|--lib
|  |
|  |--Bar
|  |  |- Makefile
|  |  |--includes
|  |     |- Bar.h
|  |  |--src
|  |     |- Bar.c
|  |
|  |--Foo
|  |  |- Makefile
|  |  |--includes
|  |     |- Foo.h
|  |  |--src
|  |     |- Foo.c
|  |
|  |- Makefile
|
|- Makefile
|--asm
|  |
|  |--assembler
|  |  |- Makefile
|  |  |--includes
|  |     |- assembler.h
|  |  |--src
|  |     |- main.c
|  |
|  |--disassembler
|  |  |- Makefile
|  |  |--includes
|  |     |- disassembler.h
|  |  |--src
|  |     |- main.c
|  |
|
|--corewar
|  |
|  |--virtual_machine
|  |  |- Makefile
|  |  |--includes
|  |     |- virtual_machine.h
|  |  |--src
|  |     |- main.c
|  |
|  |--visualizer
|  |  |- Makefile
|  |  |--includes
|  |     |- visualizer.h
|  |  |--src
|  |     |- main.c
|  |
|

В директории lib находятся библиотеки подключаемые в проект. Например:

#include "Foo.h"
#include "Bar.h"

int main (void)
{
  ...
}

Для каждой библиотеки свой Makefile. В директории lib есть свой Makefile, который нужен для работы со всеми библиотеками одновременно.

В корне проекта находится главный Makefile, который собирает весь проект.

Проект разделен на две условные части (asm и corewar). Asm состоит из assembler и disassembler. Corewar состоит из virtual machine и visualizer.

В каждой части проекта есть директории includes и src в которой хранятся хэдэры и исходные файлы соответственно. Для каждой части должен быть свой собственный Makefile.