-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGNUmakefile
More file actions
37 lines (28 loc) · 897 Bytes
/
Copy pathGNUmakefile
File metadata and controls
37 lines (28 loc) · 897 Bytes
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
CXX := g++
CXXFLAGS := -Wall -DNDEBUG -O2 -static
TARGET := PasswordManager
PREFIX := /usr/local/bin
BIN_DIR := ./bin
BLD_DIR := ./build
INC_DIR := ./lib
LIB_DIR := ./lib/cryptopp
OBJ_DIR := ./obj
SRC_DIR := ./src
.PHONY: cryptopp
default: $(TARGET)
all: $(TARGET)
$(TARGET): cryptopp $(OBJ_DIR)/PasswordManager.o $(OBJ_DIR)/AVLTree.o $(OBJ_DIR)/AES-CBC.o $(OBJ_DIR)/KDF.o
mkdir -p $(BIN_DIR)
$(CXX) $(CXXFLAGS) $(OBJ_DIR)/PasswordManager.o $(OBJ_DIR)/AVLTree.o $(OBJ_DIR)/AES-CBC.o $(OBJ_DIR)/KDF.o -L$(LIB_DIR) -lcryptopp -o $(BIN_DIR)/$(TARGET)
cryptopp:
$(MAKE) -C $(LIB_DIR)
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
mkdir -p $(OBJ_DIR)
$(CXX) $(CXXFLAGS) -I$(INC_DIR) -c $< -o $@
clean:
$(MAKE) -C $(LIB_DIR) clean
rm -rf $(BIN_DIR) $(BLD_DIR) $(OBJ_DIR)
install:
cp $(BIN_DIR)/$(TARGET) $(PREFIX)/$(TARGET)
uninstall:
rm -f $(PREFIX)/$(TARGET)