anon 9 månader sedan
förälder
incheckning
27d47f18dd
5 ändrade filer med 55 tillägg och 29 borttagningar
  1. +25
    -15
      Makefile
  2. +8
    -13
      chad.mk
  3. +17
    -0
      config.mk
  4. +2
    -0
      source/hl_xolatile.c
  5. +3
    -1
      source/main.c

+ 25
- 15
Makefile Visa fil

@@ -1,27 +1,37 @@
include config.mk
include chad.mk
DEBUG:=1
CFLAGS:=-std=c99 -O2 $(if ${DEBUG}, ${CHAD_DEBUG},'')
CPPFLAGS:=-D_FORTIFY_SOURCE=2

SRC.dir:=source/
SRC.dir:=source
OBJ.dir:=object

SRC:=$(shell find ${SRC.dir} -iname '*.c')
HDR:=$(shell find ${SRC.dir} -iname '*.h')
OBJ:=$(subst .c,.o,${SRC})

OUT:=hl
OUTARGS:=${OUT} < source/main.c
OBJ:=$(subst $(SRC.dir),$(OBJ.dir),$(SRC:.c=.o))

main: ${OBJ} ${HDR}
${LINK.c} ${OBJ} -o hl
VPATH=${SRC.dir} ${OBJ.dir}

%.o: %.c
${OBJ.dir}/%.o: ${SRC.dir}/%.c
${COMPILE.c} $< -o $@

install:
cp hl /usr/bin/hl
${TARGET}: ${HDR} ${OBJ.dir} | ${OBJ}
${LINK.c} $| -o $@

${SRC} ${HDR}:

${PREFIX} ${OBJ.dir}:
mkdir -p $@

install: ${PREFIX}
install -v -g ${USER} -o ${USER} -m 744 ${TARGET} ${PREFIX}/bin/

uninstall:
-rm ${PREFIX}/bin/${TARGET}

clean:
-rm ${OBJ}
-rm ${OUT}
-rm ${OBJ} ${TARGET}

test: chad_test

.PHONY: test clean install

.DEFAULT_GOAL:=${TARGET}

+ 8
- 13
chad.mk Visa fil

@@ -1,23 +1,18 @@
# Make script for Chad projects
# This script depends on the following variables
# - OUT : output program name
# - OUTARGS : default flags to fork ${OUT} with
# Programs to check warnings for as defined by the chad standard

#
CHAD_DEBUG:=-Og -ggdb -pg -fno-inline

# Programs to check warnings for as defined by the Chad standard
GCC:=gcc
D.versions:=-D_XOPEN_SOURCE=700
GCC.warnings:=-Wall -Wextra -Wpedantic -Wvla -Wshadow -Wundef
CLANG:=clang
CLANG.warnings:=-Weverything

VALGRIND:=valgrind
VALGRIND.flags:=--track-origins=yes --leak-check=full --show-leak-kinds=all

chad_test:
${GCC} ${D.versions} ${GCC.warnings} ${SRC} -o ${OUT}
${CLANG} ${D.versions} ${GCC.warnings} ${SRC} -o ${OUT}
${VALGRIND} ${VALGRIND.flags} ${OUT} ${OUTARGS}
TARGET:=hl
ARGS:=${TARGET} < source/main.c

.DEFAULT_GOAL:=main
chad_test:
${GCC} ${D.versions} ${GCC.warnings} ${SRC} -o ${TARGET}
${CLANG} ${D.versions} ${GCC.warnings} ${SRC} -o ${TARGET}
${VALGRIND} ${VALGRIND.flags} $(shell pwd)/${TARGET} ${ARGS}

+ 17
- 0
config.mk Visa fil

@@ -0,0 +1,17 @@
# Make script for Chad projects
# This script depends on the following variables
# - TARGET : output program name
# - ARGS : default flags to fork ${OUT} with

PREFIX:=/usr/bin

CFLAGS:=-std=c99
CPPFLAGS:=-D_GNU_SOURCE -D_FORTIFY_SOURCE=2

DEBUG=1

ifeq (${DEBUG},1)
CFLAGS += -Og -ggdb -pg -fno-inline
else
CFLAGS += -O2 -flto=auto
endif

+ 2
- 0
source/hl_xolatile.c Visa fil

@@ -1,3 +1,4 @@
#if 0
// Listen, this is still prototype, it's not code-merged with other stuff...
// Once I prototype out more stuff, this will use chad.h and hl.h...
// So, this file can run on its' own when compiled, gonna rewrite later.
@@ -244,3 +245,4 @@ int main(int argc,

return 0;
}
#endif

+ 3
- 1
source/main.c Visa fil

@@ -1,5 +1,6 @@
//register
//putchar()
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -52,7 +53,8 @@ int main(int argc,
buffer = realloc(buffer, ++chunks * ALLOCATION_CHUNK);
}
buffer[buffer_size] = '\0';
read(STDIN_FILENO, &buffer[buffer_size], sizeof (*buffer));
/* TODO handle me */
assert(read(STDIN_FILENO, &buffer[buffer_size], sizeof (*buffer)) != -1);
++buffer_size;
} while (buffer[buffer_size - 1]);



Laddar…
Avbryt
Spara