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)