From 1688f756866670202034cbd7b87299f90d9fce8b Mon Sep 17 00:00:00 2001 From: brunoczim Date: Sat, 7 Nov 2020 11:47:09 -0300 Subject: [PATCH] final project structure --- .gitignore | 1 - Makefile | 8 +++----- README.md | 42 +++++++++++++++++++++++++++++++++++++++++- data/.gitignore | 1 + src/database.c | 6 +++--- 5 files changed, 48 insertions(+), 10 deletions(-) create mode 100644 data/.gitignore diff --git a/.gitignore b/.gitignore index dcbb045..796b96d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -/*.csv /build diff --git a/Makefile b/Makefile index 45225a8..441add4 100644 --- a/Makefile +++ b/Makefile @@ -150,15 +150,13 @@ TEST_TAGS_TABLE_OBJS = $(OBJ_DIR)/error.o \ $(OBJ_DIR)/tags.o \ $(OBJ_DIR)/test/tags_table.o -$(OBJ_DIR)/%.o: src/%.c $(HEADERS) - mkdir -p $(dir $@) - $(CC) -c $< $(CFLAGS) -o $@ - moviedb: $(MOVIEDB_OBJS) mkdir -p $(dir $(BUILD_DIR)/$@) $(CC) $(LDFLAGS) $^ -o $(BUILD_DIR)/$@ -all: moviedb test/csv test/trie test/movies_table test/users_table +$(OBJ_DIR)/%.o: src/%.c $(HEADERS) + mkdir -p $(dir $@) + $(CC) -c $< $(CFLAGS) -o $@ test/prime: $(TEST_PRIME_OBJS) mkdir -p $(dir $(BUILD_DIR)/$@) diff --git a/README.md b/README.md index 84b3a7b..8b4bdf6 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,47 @@ Favor, descompactar arquivos na pasta "data/". # Execução -Num shell Unix, basta executar: +Para compilar e executar o programa, basta executar em um shell Unix: ``` $ sh run.sh ``` + +Se já tiver compilado (veja abaixo) o programa, para executar diretamente, +em um shell Unix basta executar: +``` +$ ./build/release/moviedb +``` + +# Compilação + +Para somente compilar, num shell Unix, basta executar: +``` +$ sh build.sh release +``` + +Ou invocar o comando `make` manualmente: +``` +$ make +``` + +# Estrutura Do Projeto + +No diretório `src/` estão códigos fonte (`.c`) e cabeçalhos (`.h`). + +No diretório `src/test/` estão códigos fonte de programas testes. + +No diretório `build/` estão artefatos de compilação, como arquivos objeto (`.o`) +e programas executáveis. Este diretório é gerado automaticamente pelo programa +`make`. + +O shell script `build.sh` é responsável por automatizar a compilação. + +O shell script `run.sh` é responsável por automatizar o processo de +compilar + executar. + +O shell script `watch.sh` observa mudanças nos códigos fonte e executa um +comando (por padrão é `sh watch.sh sh build.sh release`) a cada mudança. +NÃO é NECESSÁRIO usar este script, é apenas uma facilidade de desenvolvimento. + +Por fim, o arquivo `Makefile` especifica as regras de _build_, usado pelo +programa `make` para compilar o projeto. diff --git a/data/.gitignore b/data/.gitignore new file mode 100644 index 0000000..72699f7 --- /dev/null +++ b/data/.gitignore @@ -0,0 +1 @@ +/*.csv diff --git a/src/database.c b/src/database.c index f575fea..1e5fedd 100644 --- a/src/database.c +++ b/src/database.c @@ -84,7 +84,7 @@ static void load_movies( char *file_buf, struct error *restrict error) { - char const *path = "movie.csv"; + char const *path = "data/movie.csv"; FILE *file; struct movie_parser parser; struct movie_csv_row row; @@ -135,7 +135,7 @@ static void load_ratings( char *file_buf, struct error *restrict error) { - char const *path = "rating.csv"; + char const *path = "data/rating.csv"; FILE *file; struct rating_parser parser; struct rating_csv_row row; @@ -183,7 +183,7 @@ static void load_tags( char *file_buf, struct error *restrict error) { - char const *path = "tag.csv"; + char const *path = "data/tag.csv"; FILE *file; struct tag_parser parser; struct tag_csv_row row;