-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
127 lines (109 loc) · 3.75 KB
/
Copy pathMakefile
File metadata and controls
127 lines (109 loc) · 3.75 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
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
# Copyright (c) 2024, Oracle and/or its affiliates.
#
# The Universal Permissive License (UPL), Version 1.0
#
# Subject to the condition set forth below, permission is hereby granted to any
# person obtaining a copy of this software, associated documentation and/or data
# (collectively the "Software"), free of charge and under any and all copyright
# rights in the Software, and any and all patent rights owned or freely
# licensable by each licensor hereunder covering either (i) the unmodified
# Software as contributed to or provided by such licensor, or (ii) the Larger
# Works (as defined below), to deal in both
#
# (a) the Software, and
# (b) any piece of software and/or hardware listed in the
# lrgrwrks.txt file if one is included with the Software (each a "Larger
# Work" to which the Software is contributed by such licensors),
#
# without restriction, including without limitation the rights to copy, create
# derivative works of, display, perform, and distribute the Software and make,
# use, sell, offer for sale, import, export, have made, and have sold the
# Software and the Larger Work(s), and to sublicense the foregoing rights on
# either these or other terms.
#
# This license is subject to the following condition:
# The above copyright notice and either this complete permission notice or at
# a minimum a reference to the UPL must be included in all copies or
# substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
TARGET = scsi-cli
VERSION=$(shell grep 'VERSION' scsi.h | sed s/\"//g | awk '{print($3)}')
PKG_CONFIG ?= pkg-config
LIBS = -lm
CC = gcc
CFLAGS ?= -O2 -Wall -Wextra -Werror -g
DEST_DIR ?=
SBIN_DIR = /sbin
ETC_DIR = /etc
UDEVDIR := $(shell $(PKG_CONFIG) --variable=udevdir udev 2>/dev/null)
ifndef UDEVDIR
UDEVDIR = /lib/udev
endif
RULES_DIR ?= $(ETC_DIR)/udev/rules.d
SYSTEMD_DIR =/lib/systemd/system
INSTALL = /usr/bin/install
MAN_DIR = /usr/share/man
INSTALL_DIR = /usr/local/bin
.PHONY: default all clean
OBJECTS = $(patsubst %.c, %.o, $(wildcard *.c))
HEADERS = $(wildcard *.h)
$(RULES_GEN): %.rules: %.rules.template
$(SED) -e 's:@SBIN_DIR@:$(SBIN_DIR):' $? > $@
%.o: %.c $(HEADERS)
$(CC) $(CFLAGS) -c $< -o $@
.PRECIOUS: $(TARGET) $(OBJECTS)
default: help
all: clean
@echo ''
@echo ' Building $(TARGET) '
@echo ' ===================='
@echo ''
$(MAKE) $(TARGET)
$(TARGET): $(OBJECTS)
$(CC) $(OBJECTS) -Wall $(LIBS) -o $@
$(RULES_DEST): $(DEST_DIR)$(RULES_DIR)/%: %
$(INSTALL) -m 644 $? $@
help:
@echo ''
@echo ' Posible targets: '
@echo ' ================='
@echo ''
@echo ' all - Build all $(TARGET)'
@echo ' clean - clean up object files'
@echo ' udev - Generate udev rule '
@echo ' install_udev - Install udev rules to $(RULES_DIR)'
@echo ' install - Install $(TARGET) binary'
@echo ' uninstall - Uninstall $(TARGET)'
@echo ''
clean:
@echo ''
@echo ' Clean $(TARGET) '
@echo ' ================='
@echo ''
-rm -f *.o
-rm -f $(TARGET)
@echo ''
udev: $(RULES_GEN)
install_udev: $(RULES_DEST)
# $(INSTALL) -m 644 ../etc/udev/rules.d/99-scsi-alias.rules $(UDEV_DIR)
install: all
@echo ''
@echo ' Installing $(TARGET) '
@echo ' ======================'
@echo ''
$(INSTALL) -m 755 $(TARGET) $(INSTALL_DIR)/$(TARGET)
@echo ''
uninstall:
@echo ''
@echo ' Remove $(TARGET) '
@echo ' ======================'
@echo ''
rm -f $(INSTALL_DIR)/$(TARGET)
@echo ''