Add the base containerized c toolchain environment
This commit is contained in:
parent
c5f8da292d
commit
2224ef7879
0
.gitignore
vendored
Normal file
0
.gitignore
vendored
Normal file
@ -20,5 +20,3 @@ Rules:
|
||||
* Please provide an adequate entry in the Wiki for each non-trivial code contribution.
|
||||
|
||||
For additional information, please refer to the [Wiki](https://gitea.dmz.rs/sborovic/dmzOS/wiki).
|
||||
|
||||
TEST
|
18
TOOLCHAIN.md
Normal file
18
TOOLCHAIN.md
Normal file
@ -0,0 +1,18 @@
|
||||
# Instruction on running utilities
|
||||
|
||||
## c_toolchain utility docker image
|
||||
|
||||
Dockerfile: `dockerfile.c_toolchain`
|
||||
Run the docker-compose command to get a `bash` shell that is bound to the `dmzOS` directory:
|
||||
```bash
|
||||
docker-compose run --rm c_toolchain
|
||||
```
|
||||
|
||||
Any changes in the container shell will be reflected in the local `dmzOS` directory.
|
||||
|
||||
The image contains `ident` abd `clang-format` as `C` code formatters. A .vimrc file is automatically part of the image, and it contains a rule to make vim run the following formatting command on buffer save:
|
||||
```bash
|
||||
ident -kr -ts4 %
|
||||
```
|
||||
|
||||
This is using the Kernighan and Ritchie code styling, as well as identations with 4 spaces.
|
7
config/.vimrc
Normal file
7
config/.vimrc
Normal file
@ -0,0 +1,7 @@
|
||||
set nobackup
|
||||
set nowritebackup
|
||||
set noswapfile
|
||||
set autoread
|
||||
|
||||
set number relativenumber
|
||||
autocmd BufWritePost *.[ch] exec "!indent -kr -nut % && rm %~"
|
BIN
dmzOS/test/clang_test
Executable file
BIN
dmzOS/test/clang_test
Executable file
Binary file not shown.
BIN
dmzOS/test/gcc_test
Executable file
BIN
dmzOS/test/gcc_test
Executable file
Binary file not shown.
12
dmzOS/test/test.c
Normal file
12
dmzOS/test/test.c
Normal file
@ -0,0 +1,12 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
if (argc < 2) {
|
||||
printf("Please provide at least one argument\n");
|
||||
exit(1);
|
||||
};
|
||||
printf("Hello, C!\n");
|
||||
return 0;
|
||||
}
|
12
docker-compose.yml
Normal file
12
docker-compose.yml
Normal file
@ -0,0 +1,12 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
c_toolchain:
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: dockerfile.c_toolchain
|
||||
container_name: c_toolchain
|
||||
tty: true
|
||||
stdin_open: true
|
||||
volumes:
|
||||
- ./dmzOS:/dmzOS
|
6
dockerfile.c_toolchain
Normal file
6
dockerfile.c_toolchain
Normal file
@ -0,0 +1,6 @@
|
||||
FROM ubuntu:18.04
|
||||
RUN apt-get update && apt-get install -y vim gcc indent clang clang-format gdb binutils
|
||||
WORKDIR /dmzOS
|
||||
#Getting prebuilt binary from llvm
|
||||
COPY ./config/* /root
|
||||
ENTRYPOINT [ "bash" ]
|
Loading…
Reference in New Issue
Block a user