first version of makefile
This commit is contained in:
53
Makefile
Normal file
53
Makefile
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
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)
|
||||||
|
|
||||||
Reference in New Issue
Block a user