<commit_before># Installation directories following GNU conventions
prefix = /usr/local
exec_prefix = $(prefix)
bindir = $(exec_prefix)/bin
sbindir = $(exec_prefix)/sbin
datarootdir = $(prefix)/share
datadir = $(datarootdir)
includedir = $(prefix)/include
mandir = $(datarootdir)/man

BIN=bin
OBJ=obj
SRC=src

OBJ_MODS=obj/modules
SRC_MODS=src/modules

CC = gcc
CFLAGS = -Wextra -Wall

.PHONY: all install uninstall clean

EXES = mirrorcrypt

all: $(EXES)

mirrorcrypt: $(OBJ_MODS)/visitedmirrors.o $(OBJ_MODS)/supportedchars.o $(OBJ_MODS)/mirrorfile.o $(OBJ_MODS)/gridpoint.o $(OBJ)/main.o | $(BIN)
	$(CC) $(CFLAGS) -o $(BIN)/$@ $^

$(OBJ)/%.o: $(SRC)/%.c | $(OBJ)
	$(CC) $(CFLAGS) -o $@ -c $<
	
$(OBJ_MODS)/%.o: $(SRC_MODS)/%.c | $(OBJ_MODS)
	$(CC) $(CFLAGS) -o $@ -c $<

$(OBJ_MODS): $(OBJ)
	mkdir -p $(OBJ_MODS)
	
$(OBJ_EX): $(OBJ)
	mkdir -p $(OBJ_EX)

$(BIN):
	mkdir -p $(BIN)

$(OBJ):
	mkdir -p $(OBJ)

clean:
	rm -rf $(BIN)
	rm -rf $(OBJ)<commit_msg>Add install/uninstall targets<commit_after># Installation directories following GNU conventions
prefix ?= /usr/local
exec_prefix = $(prefix)
bindir = $(exec_prefix)/bin
sbindir = $(exec_prefix)/sbin
datarootdir = $(prefix)/share
datadir = $(datarootdir)
includedir = $(prefix)/include
mandir = $(datarootdir)/man

BIN=bin
OBJ=obj
SRC=src

OBJ_MODS=obj/modules
SRC_MODS=src/modules

CC = gcc
CFLAGS = -Wextra -Wall

.PHONY: all install uninstall clean

EXES = mirrorcrypt

all: $(EXES)

mirrorcrypt: $(OBJ_MODS)/visitedmirrors.o $(OBJ_MODS)/supportedchars.o $(OBJ_MODS)/mirrorfile.o $(OBJ_MODS)/gridpoint.o $(OBJ)/main.o | $(BIN)
	$(CC) $(CFLAGS) -o $(BIN)/$@ $^

$(OBJ)/%.o: $(SRC)/%.c | $(OBJ)
	$(CC) $(CFLAGS) -o $@ -c $<
	
$(OBJ_MODS)/%.o: $(SRC_MODS)/%.c | $(OBJ_MODS)
	$(CC) $(CFLAGS) -o $@ -c $<

$(OBJ_MODS): $(OBJ)
	mkdir -p $(OBJ_MODS)
	
$(OBJ_EX): $(OBJ)
	mkdir -p $(OBJ_EX)

$(BIN):
	mkdir -p $(BIN)

$(OBJ):
	mkdir -p $(OBJ)

clean:
	rm -rf $(BIN)
	rm -rf $(OBJ)

install:
	install -d $(DESTDIR)$(bindir)
	cd $(BIN) && install $(EXES) $(DESTDIR)$(bindir)

uninstall:
	for exe in $(EXES); do rm $(DESTDIR)$(bindir)/$$exe; done
{'fraction_non_alphanumeric': 0.21728748806112702, 'fraction_numerical': 0.0, 'mean_word_length': 4.484293193717278, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2570026', 'n_tokens_mistral': 955, 'n_tokens_neox': 880, 'n_words': 201}