-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile.in
More file actions
70 lines (52 loc) · 1.34 KB
/
Makefile.in
File metadata and controls
70 lines (52 loc) · 1.34 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
NAME := libpngimg.a
PREFIX ?= @PREFIX@
INCLUDE_DIR := $(PREFIX)/include/
LIB_DIR := $(PREFIX)/lib/
RM ?= rm -f
CXX ?= g++
CXXFLAGS ?= -O2
# CXXFLAGS += -Wextra
CXXFLAGS += -Wall -Wno-unknown-pragmas
DFLAGS = -MMD -MF $(DEP_DIR)$*.d
AR ?= ar
ARFLAGS := rcs
SRC = $(SRC_FILE:%.cpp=$(SRC_DIR)%.cpp)
SRC_DIR := src/
SRC_FILE := png.cpp pngFile.cpp pngImageChunk.cpp
TEST = $(TEST_MAIN:%.cpp=$(TEST_DIR)%.cpp)
TEST_TAR = $(TEST_DIR)test.out
TEST_DIR := test/
TEST_MAIN := main.cpp
OBJ = $(SRC:$(SRC_DIR)%.cpp=$(OBJ_DIR)%.o)
OBJ_DIR := obj/
DEP = $(SRC:$(SRC_DIR)%.cpp=$(DEP_DIR)%.d)
DEP_DIR := dep/
HDR = $(HDR_FILE:%.hpp=$(HDR_DIR)%.hpp)
HDR_DIR := include/
HDR_FILE := pngimg.hpp
all: $(NAME)
$(DEP_DIR) $(OBJ_DIR) $(INCLUDE_DIR) $(LIB_DIR):
mkdir -p $@
$(NAME): $(OBJ)
$(AR) $(ARFLAGS) $@ $^
$(OBJ_DIR)%.o: $(SRC_DIR)%.cpp | $(DEP_DIR) $(OBJ_DIR)
$(CXX) $(CXXFLAGS) $(DFLAGS) -c $< -o $@
-include $(DEP)
install: $(NAME) | $(INCLUDE_DIR) $(LIB_DIR)
install -m 644 $(HDR) $(INCLUDE_DIR)
install -m 644 $(NAME) $(LIB_DIR)
test:
$(CXX) $(CXXFLAGS) $(TEST) -lpngimg -lz -o $(TEST_TAR)
./$(TEST_TAR)
clean:
$(RM) $(OBJ) $(DEP)
$(RM) $(TEST_DIR)test-*.png
fclean: clean
rmdir $(OBJ_DIR)
rmdir $(DEP_DIR)
$(RM) $(NAME)
$(RM) $(TEST_TAR)
uninstall:
rm $(INCLUDE_DIR)/$(HDR_FILE)
rm $(LIB_DIR)/$(NAME)
.PHONY: all test install clean fclean uninstall