diff --git a/Makefile b/Makefile index 7dc9d9c..27b94ea 100644 --- a/Makefile +++ b/Makefile @@ -3,65 +3,8 @@ # ћирилисп верзија VERSION = 0,9 -# локација за инсталацију -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 -fexec-charset=UTF-8 -finput-charset=UTF-8 -fwide-exec-charset=UTF-32LE -CFLAGS = -std=c99 -pedantic -Wall -Wextra -Wno-maybe-uninitialized -O3 -fexec-charset=UTF-8 -finput-charset=UTF-8 -fwide-exec-charset=UTF-32LE -LDFLAGS = -lm -lc - -CC = cc - -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 +ifeq($(OS), Windows_NT) + include Makefile.win +else + include Makefile.unix +endif diff --git a/Makefile.unix b/Makefile.unix new file mode 100644 index 0000000..b567d9f --- /dev/null +++ b/Makefile.unix @@ -0,0 +1,62 @@ +# локација за инсталацију +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 diff --git a/Makefile.win b/Makefile.win new file mode 100644 index 0000000..ee1e83f --- /dev/null +++ b/Makefile.win @@ -0,0 +1,62 @@ +# +PREFIX = C:\\Program\ Files\\cirilisp +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: + -del -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