54 lines
1.4 KiB
Makefile
54 lines
1.4 KiB
Makefile
CC = gcc
|
|
CFLAGS = -Wall -O2 -Ilibmysyslog
|
|
LDFLAGS = -Lbuild -lmysyslog -lconfig
|
|
|
|
BUILD_DIR = build
|
|
|
|
SRCS_CLIENT = myRPC-client.c
|
|
SRCS_SERVER = myRPC-server.c
|
|
|
|
OBJS_CLIENT = $(BUILD_DIR)/myRPC-client.o
|
|
OBJS_SERVER = $(BUILD_DIR)/myRPC-server.o
|
|
|
|
TARGET_CLIENT = $(BUILD_DIR)/myRPC-client
|
|
TARGET_SERVER = $(BUILD_DIR)/myRPC-server
|
|
|
|
LIB_SRC = libmysyslog/libmysyslog.c
|
|
LIB_OBJ = $(BUILD_DIR)/libmysyslog.o
|
|
LIB_A = $(BUILD_DIR)/libmysyslog.a
|
|
|
|
.PHONY: all clean deb
|
|
|
|
all: $(BUILD_DIR) $(LIB_A) $(TARGET_CLIENT) $(TARGET_SERVER)
|
|
|
|
$(BUILD_DIR):
|
|
mkdir -p $(BUILD_DIR)
|
|
|
|
# Компиляция объектного файла для myRPC-client
|
|
$(BUILD_DIR)/myRPC-client.o: myRPC-client.c | $(BUILD_DIR)
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
# Компиляция объектного файла для myRPC-server
|
|
$(BUILD_DIR)/myRPC-server.o: myRPC-server.c | $(BUILD_DIR)
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
# Компиляция объекта для libmysyslog
|
|
$(BUILD_DIR)/libmysyslog.o: $(LIB_SRC) | $(BUILD_DIR)
|
|
$(CC) $(CFLAGS) -fPIC -c $< -o $@
|
|
|
|
# Создание статической библиотеки libmysyslog.a
|
|
$(LIB_A): $(BUILD_DIR)/libmysyslog.o
|
|
ar rcs $@ $^
|
|
|
|
# Линковка myRPC-client
|
|
$(TARGET_CLIENT): $(OBJS_CLIENT)
|
|
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
|
|
|
|
# Линковка myRPC-server
|
|
$(TARGET_SERVER): $(OBJS_SERVER)
|
|
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
|
|
|
|
clean:
|
|
rm -rf $(BUILD_DIR)
|
|
|