-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
42 lines (32 loc) · 1.04 KB
/
Makefile
File metadata and controls
42 lines (32 loc) · 1.04 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
# It builds all programs in the current directory.
SUFFIX := cpp
BASENAME := basename
ECHO := /bin/echo
RM := rm
STRIP := strip -s
TEST := /bin/test
XARGS := xargs
CXXFLAGS := -Os #-Wall
LINKFLAGS := -lconfig++
BASENAMEOPT := -a -s .$(SUFFIX) -z
ECHOPT := -e -n
ERRORMSG := "Nothing to do!!"
XARGSOPT := -0 -I {}
FILES := $(wildcard *.$(SUFFIX))
NOSUFFIX := $(BASENAME) $(BASENAMEOPT) $(FILES)
XARGSXE := $(XARGS) $(XARGSOPT)
ECHOXE := $(ECHO) $(ECHOPT)
STUFF != for F in *.$(SUFFIX); do \
$(TEST) "$$($(BASENAME) -a -s .$(SUFFIX) $$F)" -ot "$$F" && \
$(ECHOXE) "$$F "; done
NOSTUFFIX := $(BASENAME) $(BASENAMEOPT) $(STUFF)
all: .cpp
unconditional:
$(NOSUFFIX) | $(XARGSXE) $(CXX) $(CXXFLAGS) -o {} {}.$(SUFFIX) $(LINKFLAGS)
$(NOSUFFIX) | $(XARGSXE) $(STRIP) {}
.cpp:
@if [ -z "$(STUFF)" ]; then echo $(ERRORMSG); exit 1; fi
$(NOSTUFFIX) | $(XARGSXE) $(CXX) $(CXXFLAGS) -o {} {}.$(SUFFIX) $(LINKFLAGS)
$(NOSTUFFIX) | $(XARGSXE) $(STRIP) {}
clean:
$(NOSUFFIX) | $(XARGSXE) $(RM) {}