<commit_before>
######################################################
## standart targets + recursion rule

.DEFAULT_GOAL := all
.PHONY : all clean distclean
.PHONY : install subdirs $(SUBDIRS) svnignore svnwarning
all clean distclean install svnignore : subdirs FORCE
# this one to prevent printing make[1]: Nothing to be done for `all'
FORCE:
	@#
subdirs : $(SUBDIRS)
$(SUBDIRS):
	@$(MAKE) -C $@ $(MAKECMDGOALS)
unexport SUBDIRS
export DESTDIR


######################################################
## make output customization

# quiet -  'Q = @'
# normal - 'Q ='
Q := 
summary = @echo "$(1)" $(subst $(TOPDIR)/,,$(CURDIR)/)$(2)
ifeq ($Q,@)
MAKEFLAGS += --no-print-directory
endif

######################################################
## Compilation flags

##
# always recommended: warnings on, and path to #include <config.h>
CFLAGS += -Wall -I$(TOPDIR)
# select between debug or release build
# debug - debug symbols, no optimization, no striping
# release - striped, -O2 optimized code
ifeq ($(DEBUG),enabled)
CFLAGS += -g
STRIP = @true
else
CFLAGS += -O2
STRIP = strip
endif


######################################################
## Compilation rules

# SRCS - list of C source files to compile
ifneq (,$(SRCS))
OBJS += $(SRCS:.c=.o)
DEPS +=$(SRCS:.c=.d)
CLEANLIST += $(SRCS:.c=.o) $(SRCS:.c=.d)
endif



%.o : %.c
	$(call summary,CC  ,$@)
	$Q$(CC) $(CFLAGS) -c -o $@ $<


%.d : %.c
	$(call summary,DEP ,$@)
	$Q$(CC) $(CFLAGS) -M $< | sed 's,\(.*\)\.o[ :]*,$(@D)/\1.o $@ : ,g' > $@

% : %.in
	$(call summary,TEXT,$@)
	@#to have same perm
	$Qsed -f $(TOPDIR)/subst.sed  < $< > $@
	$Qchmod `stat --printf=%a $<` $@


######################################################
## Linkage rules

# binary
ifneq (,$(BINTARGET))
all : $(BINTARGET)
$(BINTARGET) : $(OBJS)
	$(call summary,LD  ,$@)
	$Q$(CC) $(OBJS) -o $@ $(LDFLAGS)
	$Q$(STRIP) $@

CLEANLIST += $(BINTARGET)
endif


# shared library lib*.so
ifneq (,$(LIBTARGET))
all : $(LIBTARGET)
$(LIBTARGET) : $(OBJS)
	$(call summary,LD  ,$@)
	$Q$(CC) $(OBJS) -o $@ $(LDFLAGS) -shared
	$Q$(STRIP) $@

CLEANLIST += $(BINTARGET)
endif

# ar archive
ifneq (,$(ARTARGET))<commit_msg>fixing clean list for *.so<commit_after>
######################################################
## standart targets + recursion rule

.DEFAULT_GOAL := all
.PHONY : all clean distclean
.PHONY : install subdirs $(SUBDIRS) svnignore svnwarning
all clean distclean install svnignore : subdirs FORCE
# this one to prevent printing make[1]: Nothing to be done for `all'
FORCE:
	@#
subdirs : $(SUBDIRS)
$(SUBDIRS):
	@$(MAKE) -C $@ $(MAKECMDGOALS)
unexport SUBDIRS
export DESTDIR


######################################################
## make output customization

# quiet -  'Q = @'
# normal - 'Q ='
Q := 
summary = @echo "$(1)" $(subst $(TOPDIR)/,,$(CURDIR)/)$(2)
ifeq ($Q,@)
MAKEFLAGS += --no-print-directory
endif

######################################################
## Compilation flags

##
# always recommended: warnings on, and path to #include <config.h>
CFLAGS += -Wall -I$(TOPDIR)
# select between debug or release build
# debug - debug symbols, no optimization, no striping
# release - striped, -O2 optimized code
ifeq ($(DEBUG),enabled)
CFLAGS += -g
STRIP = @true
else
CFLAGS += -O2
STRIP = strip
endif


######################################################
## Compilation rules

# SRCS - list of C source files to compile
ifneq (,$(SRCS))
OBJS += $(SRCS:.c=.o)
DEPS +=$(SRCS:.c=.d)
CLEANLIST += $(SRCS:.c=.o) $(SRCS:.c=.d)
endif



%.o : %.c
	$(call summary,CC  ,$@)
	$Q$(CC) $(CFLAGS) -c -o $@ $<


%.d : %.c
	$(call summary,DEP ,$@)
	$Q$(CC) $(CFLAGS) -M $< | sed 's,\(.*\)\.o[ :]*,$(@D)/\1.o $@ : ,g' > $@

% : %.in
	$(call summary,TEXT,$@)
	@#to have same perm
	$Qsed -f $(TOPDIR)/subst.sed  < $< > $@
	$Qchmod `stat --printf=%a $<` $@


######################################################
## Linkage rules

# binary
ifneq (,$(BINTARGET))
all : $(BINTARGET)
$(BINTARGET) : $(OBJS)
	$(call summary,LD  ,$@)
	$Q$(CC) $(OBJS) -o $@ $(LDFLAGS)
	$Q$(STRIP) $@

CLEANLIST += $(BINTARGET)
endif


# shared library lib*.so
ifneq (,$(LIBTARGET))
all : $(LIBTARGET)
$(LIBTARGET) : $(OBJS)
	$(call summary,LD  ,$@)
	$Q$(CC) $(OBJS) -o $@ $(LDFLAGS) -shared
	$Q$(STRIP) $@

CLEANLIST += $(LIBTARGET)
endif

# ar archive
ifneq (,$(ARTARGET))
{'fraction_non_alphanumeric': 0.3153468815697267, 'fraction_numerical': 0.002803083391730904, 'mean_word_length': 4.561038961038961, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 9, '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': '3759807', 'n_tokens_mistral': 1644, 'n_tokens_neox': 1527, 'n_words': 411}