forked from 4rknova/libnmesh
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile.in
executable file
·83 lines (66 loc) · 2.53 KB
/
Makefile.in
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
SOURCE_H = $(wildcard $(PATH_SRC)/*.h)
SOURCE_HPP = $(wildcard $(PATH_SRC)/*.hpp)
SOURCE_INL = $(wildcard $(PATH_SRC)/*.inl)
SOURCE_TML = $(wildcard $(PATH_SRC)/*.tml)
SOURCE_C = $(wildcard $(PATH_SRC)/*.c)
SOURCE_CC = $(wildcard $(PATH_SRC)/*.cc)
SOURCE_CPP = $(wildcard $(PATH_SRC)/*.cpp)
SOURCE_API = $(SOURCE_H) $(SOURCE_HPP) $(SOURCE_INL) $(SOURCE_TML)
BINOBJ_C = $(SOURCE_C:.c=.o)
BINOBJ_CC = $(SOURCE_CC:.cc=.o)
BINOBJ_CPP = $(SOURCE_CPP:.cpp=.o)
BINOBJ = $(BINOBJ_C) $(BINOBJ_CC) $(BINOBJ_CPP)
BIN = $(PATH_BIN)/$(SW_PACKAGE)
LIB_STATIC = $(BIN).$(EXT_STATIC)
LIB_DYNAMIC= $(BIN).$(EXT_DYNAMIC)
MAN = $(PATH_MAN)/$(SW_TITLE).$(MAN_SECTION)
FLAGS_WARNLV = -Wall
FLAGS_INCLSN = -I/usr/local/include -I$(PATH_SRC)
FLAGS_PREPRC = -D'$(SW_SYMID)_VERSION="$(SW_VERSION)"'
FLAGS_COMMON = -fPIC $(FLAGS_OPT) $(FLAGS_DBG) $(FLAGS_WARNLV) $(FLAGS_INCLSN) $(FLAGS_PREPRC) -Wno-strict-aliasing -Wno-unknown-pragmas
FLAGS_LD =
FLAGS_CC = $(FLAGS_COMMON) -std=c89
FLAGS_CXX = $(FLAGS_COMMON) -ansi -pedantic
# TARGETS
.PHONY: all
all: $(LIB_STATIC) $(LIB_DYNAMIC)
$(LIB_STATIC): $(BINOBJ)
$(AR) rcs $@ $^
$(LIB_DYNAMIC): $(BINOBJ)
$(CXX) $(FLAGS_CC) $(FLAGS_SHARED) -o $@ $(BINOBJ) $(FLAGS_LD) $(DEP_DLIB)
%.o: %.c
$(CC) -c $(FLAGS_CC) -o $@ $< $(DEP_DLIB)
%.o: %.cc
$(CXX) -c $(FLAGS_CXX) -o $@ $<
%.o: %.cpp
$(CXX) -c $(FLAGS_CXX) -o $@ $<
.PHONY: bin
bin: $(LIB_STATIC) $(LIB_DYNAMIC)
.PHONY: install
install: all
$(INSTALL) -d $(PATH_PREFIX)/lib
$(INSTALL) -m 644 $(LIB_STATIC) $(LIB_DYNAMIC) $(PATH_PREFIX)/lib
$(INSTALL) -d $(PATH_PREFIX)/include/$(SW_TITLE)
$(INSTALL) -m 644 $(SOURCE_API) $(PATH_PREFIX)/include/$(SW_TITLE)/
$(INSTALL) -d $(PATH_PREFIX)/lib/pkgconfig
$(INSTALL) -m 644 $(SW_TITLE).pc $(PATH_PREFIX)/lib/pkgconfig
$(LDCONFIG)
if $(TEST) -f $(MAN); then $(INSTALL) -D -c -m 444 $(MAN) $(PATH_PREFIX)/share/man/man$(MAN_SECTION)/$(SW_TITLE).$(MAN_SECTION); fi
.PHONY: uninstall
uninstall:
$(RM) -f $(PATH_PREFIX)/lib/$(LIB_STATIC)
$(RM) -f $(PATH_PREFIX)/lib/$(LIB_DYNAMIC)
$(RM) -f $(PATH_PREFIX)/include/$(SW_TITLE)/*
$(RMDIR) $(PATH_PREFIX)/include/$(SW_TITLE)
$(RM) -f $(PATH_PREFIX)/lib/pkgconfig/$(SW_TITLE).pc
if $(TEST) -f $(MAN); then $(RM) -f $(PATH_PREFIX)/share/man/man$(MAN_SECTION)/$(SW_TITLE).$(MAN_SECTION); fi
.PHONY: man-preview
man-preview:
$(CLEAR) && $(NROFF) -Tascii -man "$(PATH_MAN)/$(SW_TITLE).$(MAN_SECTION)" | $(COL) -x | $(LESS) -c
.PHONY: clean
clean:
$(RM) -rf $(BINOBJ)
.PHONY: clean-all
clean-all: clean
$(RM) -f Makefile $(SW_TITLE).pc $(LIB_STATIC) $(LIB_DYNAMIC)
$(RM) -rf $(PATH_BIN)