-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
56 lines (41 loc) · 1.61 KB
/
Copy pathMakefile
File metadata and controls
56 lines (41 loc) · 1.61 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
CC = gcc
CFLAGS = -Wall -pthread -lrt -lm -g
LDFLAGS = -shared -fPIC -g
X11LIBS = -lX11
OBJ_DIR = obj
SERVER_SRC = src/c/server.c src/c/sharedMemoryVideoBuffers.c
CLIENT_SRC = src/c/client.c src/c/sharedMemoryVideoBuffers.c
CONSUMER_SRC = src/c/consumer.c src/c/sharedMemoryVideoBuffers.c
PUBLISHER_SRC = src/c/publisher.c src/c/sharedMemoryVideoBuffers.c
VIEWER_SRC = src/c/viewer.c src/c/sharedMemoryVideoBuffers.c
LIBRARY_SRC = src/c/sharedMemoryVideoBuffers.c
SERVER_OBJ = $(addprefix $(OBJ_DIR)/, $(notdir $(SERVER_SRC:.c=.o)))
CLIENT_OBJ = $(addprefix $(OBJ_DIR)/, $(notdir $(CLIENT_SRC:.c=.o)))
CONSUMER_OBJ = $(addprefix $(OBJ_DIR)/, $(notdir $(CONSUMER_SRC:.c=.o)))
PUBLISHER_OBJ = $(addprefix $(OBJ_DIR)/, $(notdir $(PUBLISHER_SRC:.c=.o)))
VIEWER_OBJ = $(addprefix $(OBJ_DIR)/, $(notdir $(VIEWER_SRC:.c=.o)))
LIBRARY_OBJ = $(addprefix $(OBJ_DIR)/, $(notdir $(LIBRARY_SRC:.c=.o)))
LIBRARY_NAME = libSharedMemoryVideoBuffers.so
TARGETS = server client viewer consumer publisher $(LIBRARY_NAME)
.PHONY: all clean
all: $(TARGETS)
server: $(SERVER_OBJ)
$(CC) -o $@ $(CFLAGS) $^
client: $(CLIENT_OBJ)
$(CC) -o $@ $(CFLAGS) $^
consumer: $(CONSUMER_OBJ)
$(CC) -o $@ $(CFLAGS) $^
publisher: $(PUBLISHER_OBJ)
$(CC) -o $@ $(CFLAGS) $^
viewer: $(VIEWER_OBJ)
$(CC) -o $@ $^ $(X11LIBS)
$(LIBRARY_NAME): $(LIBRARY_OBJ)
$(CC) $(LDFLAGS) $^ -o $@ $(CFLAGS)
$(OBJ_DIR)/%.o: src/c/%.c
mkdir -p $(OBJ_DIR)
$(CC) -fPIC -c $< -o $@ $(CFLAGS)
install: $(LIBRARY_NAME)
sudo cp $(LIBRARY_NAME) /usr/local/lib/
sudo ldconfig
clean:
rm -f $(OBJ_DIR)/*.o $(TARGETS) $(LIBRARY_NAME)