From dbec3feb7565c7a701d02923dfc487592ecd21dd Mon Sep 17 00:00:00 2001 From: Ben Kurtovic Date: Sun, 26 Apr 2015 20:14:14 -0500 Subject: [PATCH] Makefile improvement; remove optimizer; minor tweaks. --- makefile | 5 +++-- src/assembler/directives.h | 3 +-- src/assembler/errors.c | 6 ++---- src/assembler/preprocessor.c | 4 ---- src/assembler/state.c | 1 - src/assembler/state.h | 1 - tests/_header.asm | 3 +-- 7 files changed, 7 insertions(+), 16 deletions(-) diff --git a/makefile b/makefile index 73be40f..57346bc 100644 --- a/makefile +++ b/makefile @@ -2,7 +2,7 @@ # Released under the terms of the MIT License. See LICENSE for details. PROGRAM = crater -SOURCES = src src/assembler +SOURCES = src BUILD = build DEVEXT = -dev @@ -15,7 +15,8 @@ RM = rm -rf MODE = release BNRY = $(PROGRAM) -SRCS = $(filter-out %.inc.c,$(foreach d,. $(SOURCES),$(wildcard $(addprefix $(d)/*,.c)))) +SDRS = $(shell find $(SOURCES) -type d | xargs echo) +SRCS = $(filter-out %.inc.c,$(foreach d,. $(SDRS),$(wildcard $(addprefix $(d)/*,.c)))) OBJS = $(patsubst %.c,%.o,$(addprefix $(BUILD)/$(MODE)/,$(SRCS))) DEPS = $(OBJS:%.o=%.d) DIRS = $(sort $(dir $(OBJS))) diff --git a/src/assembler/directives.h b/src/assembler/directives.h index dc084ec..9ade9bb 100644 --- a/src/assembler/directives.h +++ b/src/assembler/directives.h @@ -6,11 +6,10 @@ #include #define DIRECTIVE_MARKER '.' -#define NUM_DIRECTIVES 16 +#define NUM_DIRECTIVES 15 #define DIR_INCLUDE ".include" -#define DIR_OPTIMIZER ".optimizer" #define DIR_ROM_SIZE ".rom_size" #define DIR_ROM_HEADER ".rom_header" #define DIR_ROM_CHECKSUM ".rom_checksum" diff --git a/src/assembler/errors.c b/src/assembler/errors.c index d79a1c2..0294e37 100644 --- a/src/assembler/errors.c +++ b/src/assembler/errors.c @@ -8,9 +8,6 @@ #include "../assembler.h" #include "../logging.h" -#define ERROR_TYPE(err_info) (asm_error_types[err_info->type]) -#define ERROR_DESC(err_info) (asm_error_descs[err_info->desc]) - /* Error strings */ static const char *asm_error_types[] = { @@ -132,7 +129,8 @@ void error_info_print(const ErrorInfo *einfo, FILE *file) { ASMErrorLine *line = einfo->line; - fprintf(file, "error: %s: %s\n", ERROR_TYPE(einfo), ERROR_DESC(einfo)); + fprintf(file, "error: %s: %s\n", asm_error_types[einfo->type], + asm_error_descs[einfo->desc]); while (line) { fprintf(file, "%s:%zu:\n", line->filename, line->lineno); fprintf(file, " %.*s\n", (int) line->length, line->data); diff --git a/src/assembler/preprocessor.c b/src/assembler/preprocessor.c index dd67072..e01c3d6 100644 --- a/src/assembler/preprocessor.c +++ b/src/assembler/preprocessor.c @@ -429,10 +429,6 @@ ErrorInfo* preprocess(AssemblerState *state, const LineBuffer *source) BEGIN_DIRECTIVE_BLOCK - BEGIN_DIRECTIVE(DIR_OPTIMIZER, bool, state->optimizer, false) - USE_PARSER(bool) - END_DIRECTIVE - BEGIN_DIRECTIVE(DIR_ROM_SIZE, size_t, state->rom_size, 0) PARSER_BRANCH(uint32_t, {}, { USE_PARSER(uint32_t, rom_size) diff --git a/src/assembler/state.c b/src/assembler/state.c index 8cc21eb..8466a89 100644 --- a/src/assembler/state.c +++ b/src/assembler/state.c @@ -18,7 +18,6 @@ void state_init(AssemblerState *state) state->header.version = 0; state->header.region = DEFAULT_REGION; state->header.rom_size = DEFAULT_DECLSIZE; - state->optimizer = false; state->cross_blocks = false; state->rom_size = 0; diff --git a/src/assembler/state.h b/src/assembler/state.h index 91478e0..95a1af0 100644 --- a/src/assembler/state.h +++ b/src/assembler/state.h @@ -77,7 +77,6 @@ typedef struct { typedef struct { ASMHeaderInfo header; - bool optimizer; bool cross_blocks; size_t rom_size; ASMLine *lines; diff --git a/tests/_header.asm b/tests/_header.asm index c4f3036..92fc953 100644 --- a/tests/_header.asm +++ b/tests/_header.asm @@ -7,8 +7,6 @@ ; testing suite. It sets values for the ROM header, and contains basic test ; runner code. -.optimizer off ; Generate faithful rather than fast code - .rom_size auto ; Smallest possible ROM size >= 32 KB .rom_header auto ; Standard header location (0x7FF0) .rom_checksum off ; Don't write a ROM checksum to the header @@ -16,6 +14,7 @@ .rom_version 0 ; Zero version number .rom_region "GG Export" ; Common region code for Western ROMs .rom_declsize auto ; Set declared size to actual ROM size +.cross_blocks auto ; Do not allow data to cross between blocks ; Main routine (execution begins here) .org $0000