-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathmakefile
More file actions
66 lines (55 loc) · 1.63 KB
/
Copy pathmakefile
File metadata and controls
66 lines (55 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Autoversion makefile
# (C) 2015-2016, Ruben Carlo Benante
# GNU License v2
#
#
# TODO:
# random just for first move
.PHONY: clean cleanall deploy
.PRECIOUS: %.o
SHELL=/bin/bash -o pipefail
MAJOR ?= 9
MINOR ?= 9
DEBUG ?= 0
BUILD = $(shell date +"%g%m%d.%H%M%S")
DEFSYM = $(subst .,_,$(BUILD))
VERSION = $(MAJOR).$(MINOR)
CC = gcc
CCW = i686-w64-mingw32-gcc
CFLAGS = -Wall -Wextra -g -Og -c -std=gnu99
# -Wno-unused-variable -Wno-unused-function
#CFLAGS = -Ofast -ansi -pedantic-errors
CPPFLAGS = -DVERSION="\"$(VERSION)\"" -DBUILD="\"$(BUILD)\"" -DDEBUG=$(DEBUG)
LDLIBS = -Wl,--defsym,BUILD_$(DEFSYM)=0 -lm -lpthread
#LDLIBS += -lgmp
#OBJ = libeco-ux64.o
LIBECO_BUILD = $(shell date +"%g%m%d.%H%M%S")
LIBECO_VERSION = 1.0
LIBECO_CFLAGS = -Ofast -c -Wno-unused-variable -Wno-unused-function
LIBECO_CPPFLAGS = -DDEBUG=0 -DVERSION=$(LIBECO_VERSION) -DBUILD=$(LIBECO_BUILD)
LIBECO_LDLIBS = -lm
o = xadreco
#object (Linux)
%.o : %.c
$(CC) $(CFLAGS) $(CPPFLAGS) $^ -o $@ |& tee errors.err
#object (Windows)
%.obj : %.c
$(CCW) $(CFLAGS) $(CPPFLAGS) $^ -o $@ |& tee errors.err
#binary ELF (Linux)
$(o) : % : %.o $(OBJ)
$(CC) $(LDLIBS) $^ -o $@ |& tee errors.err
echo $(o) version \"$(VERSION).$(BUILD)\" > VERSION
#binary EXE (Windows)
%.exe : %.obj
$(CCW) $(LDLIBS) $(CPPFLAGS) $^ -o $@ |& tee errors.err
#library
libeco-ux64.o : libeco.c
$(CC) $(LIBECO_CFLAGS) $(LIBECO_CPPFLAGS) $(LDLIBS) libeco.c -o libeco-ux64.o
deploy:
cp $(o) $(o)-deploy
sed -i "s/{me} v[0-9]*\.[0-9]*/{me} v$$(./$(o)-deploy -VV)/" "$$(readlink -f config.yml)"
@echo "Deployed $(o)-deploy v$$(./$(o)-deploy -VV)"
clean:
rm -f *.o errors.err
cleanall:
rm -i $(o) *.x *.o errors.err