-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
114 lines (94 loc) · 3.62 KB
/
Copy pathMakefile
File metadata and controls
114 lines (94 loc) · 3.62 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# Build di localsend-send (mittente L0) e localsend-receive (ricevente L1).
# Su Haiku: serve -lnetwork per i socket BSD.
# make
# Su Linux (solo per verifica di compilazione): i socket sono in libc.
# make LDLIBS=
CXX ?= g++
CXXFLAGS ?= -std=c++17 -O2 -Wall -Wextra -Isrc
LDLIBS ?= -lnetwork
# Sorgenti condivisi (protocollo, indipendenti dal trasporto).
PROTO = \
src/protocol/Json.cpp \
src/protocol/Models.cpp \
src/protocol/Fingerprint.cpp
# Mittente (L0).
SEND_SRC = $(PROTO) \
src/net/haiku/SocketHttpClient.cpp \
src/client/FileSource.cpp \
src/client/UploadSession.cpp \
src/app/main_send.cpp
# Ricevente (L1 + L2 scoperta + L3 HTTPS).
RECV_SRC = $(PROTO) \
src/net/HttpServerSupport.cpp \
src/net/MulticastAnnouncer.cpp \
src/net/TlsContext.cpp \
src/net/haiku/SocketHttpServer.cpp \
src/server/FileSink.cpp \
src/server/ReceiveSession.cpp \
src/app/main_receive.cpp
SSL_LIBS = -lssl -lcrypto
# GUI (L4: applicazione nativa Haiku).
GUI_SRC = $(PROTO) \
src/net/HttpServerSupport.cpp \
src/net/MulticastAnnouncer.cpp \
src/net/TlsContext.cpp \
src/net/haiku/SocketHttpClient.cpp \
src/net/haiku/SocketHttpServer.cpp \
src/client/FileSource.cpp \
src/client/UploadSession.cpp \
src/server/FileSink.cpp \
src/server/ReceiveSession.cpp \
src/app/DeskbarItem.cpp \
src/app/main_gui.cpp
ADDON_SRC = src/addon/TrackerAddon.cpp
REPLICANT_SRC = src/replicant/DeskbarReplicant.cpp
SEND_OBJ = $(SEND_SRC:.cpp=.o)
RECV_OBJ = $(RECV_SRC:.cpp=.o)
GUI_OBJ = $(GUI_SRC:.cpp=.o)
SEND_BIN = localsend-send
RECV_BIN = localsend-receive
GUI_BIN = LocalSend
ADDON_BIN = Send_with_LocalSend
REPLICANT_BIN = LocalSendDeskbar
all: $(SEND_BIN) $(RECV_BIN) $(GUI_BIN) addon $(REPLICANT_BIN)
$(SEND_BIN): $(SEND_OBJ)
$(CXX) $(CXXFLAGS) -o $@ $(SEND_OBJ) $(LDLIBS) $(SSL_LIBS)
$(RECV_BIN): $(RECV_OBJ)
$(CXX) $(CXXFLAGS) -o $@ $(RECV_OBJ) $(LDLIBS) $(SSL_LIBS) -lbe
$(GUI_BIN): $(GUI_OBJ)
$(CXX) $(CXXFLAGS) -o $@ $(GUI_OBJ) $(LDLIBS) $(SSL_LIBS) -lbe -ltracker
rc -o $(GUI_BIN).rsrc LocalSend.rdef
xres -o $(GUI_BIN) $(GUI_BIN).rsrc
mimeset -f $(GUI_BIN)
addon: $(ADDON_SRC)
$(CXX) $(CXXFLAGS) -fPIC -shared -o "Send with LocalSend" $(ADDON_SRC) -lbe
rc -o addon.rsrc LocalSend.rdef
xres -o "Send with LocalSend" addon.rsrc
# Replicant Deskbar (.so caricato dalla Deskbar). L'icona HVIF e' presa dal
# MIME database a runtime. Il .so ha la SUA signature
# (application/x-vnd.LocalSend-Deskbar) cosi' che la Deskbar possa archiviare
# correttamente la view nel BShelf e ricaricare l'add-on al ripristino.
$(REPLICANT_BIN): $(REPLICANT_SRC) src/replicant/Replicant.rdef
$(CXX) $(CXXFLAGS) -fPIC -shared -o $@ $(REPLICANT_SRC) -lbe -ltracker
rc -o replicant.rsrc src/replicant/Replicant.rdef
xres -o $@ replicant.rsrc
mimeset -f $@
install-addon: addon
mkdir -p "/boot/home/config/non-packaged/add-ons/Tracker"
cp "Send with LocalSend" "/boot/home/config/non-packaged/add-ons/Tracker/"
addattr -t "'VICN'" -f ApeCar.hvif BEOS:ICON \
"/boot/home/config/non-packaged/add-ons/Tracker/Send with LocalSend"
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
clean:
rm -f $(SEND_OBJ) $(RECV_OBJ) $(GUI_OBJ) $(SEND_BIN) $(RECV_BIN) $(GUI_BIN) $(GUI_BIN).rsrc "Send with LocalSend" addon.rsrc $(REPLICANT_BIN) replicant.rsrc test-receive-bin
# Test host-side del lato ricevente (L1-prep): logica di protocollo pura, nessun
# socket, compilabile e runnabile ovunque (non solo Haiku). Niente -lnetwork.
RECV_TEST_SRC = $(PROTO) \
src/net/HttpServerSupport.cpp \
src/server/ReceiveSession.cpp \
tools/check/test_receive.cpp
test-receive:
$(CXX) $(CXXFLAGS) -o test-receive-bin $(RECV_TEST_SRC)
./test-receive-bin
.PHONY: all clean test-receive addon install-addon