# локација за инсталацију PREFIX = /usr/local LIBPREFIX = $(PREFIX)/lib # флегови за C компајлер и линкер CPPFLAGS = -D_POSIX_C_SOURCE=2 -DDESTDIR=\"$(DESTDIR)\" -DVERSION=\"$(VERSION)\" # CFLAGS = -g -std=c99 -pedantic -Wall -Wextra -Wno-maybe-uninitialized -O0 CFLAGS = -std=c99 -pedantic -Wall -Wextra -Wno-maybe-uninitialized -O3 LDFLAGS = -lm CC = gcc C_SRC = cirilisp.c read.c eval.c print.c util.c internals.c L_SRC = инит.ћ INC = util.h read.h eval.h print.h internals.h OBJ = $(C_SRC:.c=.o) all: cirilisp $(L_SRC) .c.o: $(CC) -c $(CPPFLAGS) $(CFLAGS) $< $(OBJ): $(INC) cirilisp: $(OBJ) $(CC) -o $@ $(OBJ) $(LDFLAGS) clean: -rm -f cirilisp $(OBJ) cirilisp-$(VERSION).tar.gz # штампа садржај свих фајлова са изворним кодом, користи се за бројање линија, # значајних линија, итд. concat: @cat $(C_SRC) $(INC) $(L_SRC) Makefile # филтрира дати улаз и штампа само "значајне" линије кода sloc: @grep -v "^[[:space:]]*[{}]\{0,1\}[;\\]\{0,1\}$$" dist: clean mkdir -p cirilisp-$(VERSION) cp -r Makefile $(INC) $(C_SRC) $(L_SRC) cirilisp-$(VERSION) tar -cf cirilisp-$(VERSION).tar cirilisp-$(VERSION) gzip cirilisp-$(VERSION).tar rm -rf cirilisp-$(VERSION) install: all mkdir -p $(DESTDIR)$(PREFIX)/bin mkdir -p $(DESTDIR)$(LIBPREFIX)/cirilisp cp -f cirilisp $(DESTDIR)$(PREFIX)/bin chmod 755 $(DESTDIR)$(PREFIX)/bin/cirilisp cp -f $(L_SRC) $(DESTDIR)$(LIBPREFIX)/cirilisp # mkdir -p $(DESTDIR)$(MANPREFIX)/man1 # sed "s/VERSION/$(VERSION)/g" < cirilisp.1 > $(DESTDIR)$(MANPREFIX)/man1/dwm.1 # chmod 644 $(DESTDIR)$(MANPREFIX)/man1/cirilisp.1 uninstall: rm -f $(DESTDIR)$(PREFIX)/bin/cirilisp rm -rf $(DESTDIR)$(LIBPREFIX)/cirilisp # rm -f $(DESTDIR)$(MANPREFIX)/man1/cirilisp.1 .PHONY: all clean dist install uninstall concat sloc