blob: ab34f9b5d6c8cd6983f5c4b634bb9e92deb02894 (
plain) (
blame)
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
#! /usr/bin/make -f
################################################################################
################################################################################
# Beautify output
Q = @
export Q
################################################################################
# Do not print "Entering directory ..."
MAKEFLAGS += --no-print-directory
################################################################################
# directories
MAIN_DIR = $(CURDIR)
BIN_DIR = $(CURDIR)/bin
BUILD_DIR = $(CURDIR)/build
MK_DIR = $(CURDIR)/mk
SRC_DIR = $(CURDIR)/src
SHARE_DIR = $(CURDIR)/share
INSTALL_BIN_DIR = /usr/local/bin
INSTALL_SHARE_DIR = /usr/local/share
export MAIN_DIR
export BUILD_DIR
export MK_DIR
export SRC_DIR
################################################################################
# Make variables (CC, etc...)
CC = gcc-10
AS = as
SZ = size
export CC
export AS
export SZ
################################################################################
# cflags
CFLAGS_STD = -std=gnu2x
CFLAGS_W = -Wall -Wextra -Wno-format -Werror
CFLAGS_O = -O3 -march=x86-64 -flto
CFLAGS_PKG = `pkg-config --cflags libalx-base`
CFLAGS_PKG += `pkg-config --cflags libalx-cv`
CFLAGS = $(CFLAGS_W) $(CFLAGS_O) $(CFLAGS_PKG)
export CFLAGS
################################################################################
# libs
LIBS_OPT = -O3
LIBS_OPT += -flto
LIBS_OPT += -fuse-linker-plugin
LIBS_PKG_A += `pkg-config --libs --static libalx-base`
LIBS_PKG_SO += `pkg-config --libs libalx-cv`
LIBS_PKG = -Wl,-Bstatic $(LIBS_PKG_A) -Wl,-Bdynamic $(LIBS_PKG_SO)
LIBS = -Wno-error
LIBS += $(LIBS_OPT)
LIBS += $(LIBS_PKG)
export LIBS
################################################################################
# compile
.PHONY: all
all:
$(Q)$(MAKE) -C $(MK_DIR)
################################################################################
# install
.PHONY: install
install: | inst-bin
install: | inst-share
install: | inst-scripts
.PHONY: inst-scripts
inst-scripts:
$(Q)chmod +x $(BIN_DIR)/*
$(Q)mkdir -p $(DESTDIR)/$(INSTALL_BIN_DIR)/
@echo " CP -rf $(DESTDIR)/$(INSTALL_BIN_DIR)/*"
$(Q)cp -r -f $(v) $(BIN_DIR)/* \
$(DESTDIR)/$(INSTALL_BIN_DIR)/
.PHONY: inst-bin
inst-bin:
$(Q)mkdir -p $(DESTDIR)/$(INSTALL_BIN_DIR)/
@echo " CP -f $(DESTDIR)/$(INSTALL_BIN_DIR)/laundry-symbol-reader"
$(Q)cp -f $(v) $(BUILD_DIR)/laundry-symbol-reader \
$(DESTDIR)/$(INSTALL_BIN_DIR)/
.PHONY: inst-share
inst-share:
$(Q)mkdir -p $(DESTDIR)/$(INSTALL_SHARE_DIR)/laundry-symbol-reader/
@echo " CP -rf $(DESTDIR)/$(INSTALL_SHARE_DIR)/laundry-symbol-reader/*"
$(Q)cp -r -f $(v) $(SHARE_DIR)/* \
$(DESTDIR)/$(INSTALL_SHARE_DIR)/laundry-symbol-reader/
################################################################################
# uninstall
.PHONY: uninstall
uninstall:
@echo " Uninstall:"
@echo " RM -f $(DESTDIR)/$(INSTALL_BIN_DIR)/laundry-symbol-reader"
$(Q)rm -f $(v) $(DESTDIR)/$(INSTALL_BIN_DIR)/laundry-symbol-reader
@echo " RM -rf $(DESTDIR)/$(INSTALL_SHARE_DIR)/laundry-symbol-reader/"
$(Q)rm -f -r $(v) $(DESTDIR)/$(INSTALL_SHARE_DIR)/laundry-symbol-reader/
@echo " Done"
################################################################################
# clean
.PHONY: clean
clean:
@echo " RM $(BUILD_DIR)"
$(Q)rm -rf $(v) $(BUILD_DIR)
################################################################################
######## End of file ###########################################################
################################################################################
|