Мејкфајл верзије подељене по оперативним системима

This commit is contained in:
kappa 2019-09-29 12:34:22 +02:00
parent 43dcc68547
commit 5b83ea1f7a
3 changed files with 129 additions and 62 deletions

View file

@ -3,65 +3,8 @@
# ћирилисп верзија # ћирилисп верзија
VERSION = 0,9 VERSION = 0,9
# локација за инсталацију ifeq($(OS), Windows_NT)
PREFIX = /usr/local include Makefile.win
LIBPREFIX = $(PREFIX)/lib else
include Makefile.unix
# флегови за C компајлер и линкер endif
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

62
Makefile.unix Normal file
View file

@ -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

62
Makefile.win Normal file
View file

@ -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