diff options
-rw-r--r-- | Makefile | 31 | ||||
-rw-r--r-- | README | 26 | ||||
-rw-r--r-- | config.mk | 6 | ||||
-rw-r--r-- | loc.1 | 42 |
4 files changed, 105 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..00e76ec --- /dev/null +++ b/Makefile @@ -0,0 +1,31 @@ +.POSIX: + +CONFIGFILE = config.mk +include $(CONFIGFILE) + +all: loc +loc.o: loc.c arg.h + +loc: loc.o + $(CC) -o $@ loc.o $(LDFLAGS) + +check: + true + +install: loc + mkdir -p -- "$(DESTDIR)$(PREFIX)/bin/" + mkdir -p -- "$(DESTDIR)$(MANPREFIX)/man1/" + cp -- loc "$(DESTDIR)$(PREFIX)/bin/loc" + cp -- loc.1 "$(DESTDIR)$(MANPREFIX)/man1/loc.1" + +uninstall: + -rm -f -- "$(DESTDIR)$(PREFIX)/bin/loc" + -rm -f -- "$(DESTDIR)$(MANPREFIX)/man1/loc.1" + +clean: + -rm -f -- loc.o loc + +.SUFFIXES: +.SUFFIXES: .o .c + +.PHONY: all check install uninstall clean @@ -0,0 +1,26 @@ +NAME + loc - count number of lines of code + +SYNOPSIS + loc [file] ... + +DESCRIPTION + loc counts the number of lines of code for each specified + file. loc will treat each file as a C source code or C header + file. If file is -, the standard input is read. + + If no file is specified, the standard input is read, and + the number of lines of code is output on the format + + "%zu\n", <#lines of code> + + If exactly one file is specified, its number of lines of + code is output on the format + + "%zu\n", <#lines of code> + + If more than one file is specified, each successfully + line counted file will have its of lines of code output on + the format + + "%s:%*s%zu\n", <file>, <some positive integer>, "", <#lines of code> diff --git a/config.mk b/config.mk new file mode 100644 index 0000000..dc5b11a --- /dev/null +++ b/config.mk @@ -0,0 +1,6 @@ +PREFIX = /usr +MAXPREFIX = $(PREFIX)/share/man + +CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700 +CFLAGS = -std=c99 -Wall -Wextra -pedantic $(CPPFLAGS) +LDFLAGS = @@ -0,0 +1,42 @@ +.TH LOC 1 "loc" +.SH NAME +loc - count number of lines of code +.SH SYNOPSIS +.B loc +.RI [ file "] ..." +.SH DESCRIPTION +.B loc +counts the number of lines of code for each specified +.BR file . +.B loc +will treat each file as a C source code or C header file. If +.I file +is +.BR - , +the standard input is read. +.PP +If no +.I file +is specified, the standard input is read, and the number +of lines of code is output on the format +.nf + + \fB"%zu\n"\fP, <\fI#lines of code\fP> +.fi +.PP +If exactly one +.I file +is specified, its number of lines of code is output on the format +.nf + + \fB"%zu\n"\fP, <\fI#lines of code\fP> +.fi +.PP +If more than one +.I file +is specified, each successfully line counted file will have +its of lines of code output on the format +.nf + + \fB"%s:%*s%zu\n"\fP, <\fIfile\fP>, <\fIsome positive integer\fP>, \fB""\fP, <\fI#lines of code\fP> +.fi |