@@ -40,6 +40,9 @@ TARGET_OS=$(shell echo $(TARGET) | awk -F '-' '{print $$2}')
4040ifeq ($(TARGET_OS ) , native)
4141 TARGET_OS=
4242endif
43+ ifeq ($(TARGET_OS ) , linux)
44+ RUST_TARGET?=$(shell echo $(TARGET) | awk -F '-' '{print $$1 "-unknown-" $$2 "-" $$3}')
45+ endif
4346TARGET_CPU =$(shell echo $(TARGET ) | awk -F '-' '{print $$1}')
4447ifeq ($(TARGET_CPU ) , native)
4548 TARGET_CPU=
@@ -136,8 +139,12 @@ set_safe_directories:
136139docker_create_image : update_submodule
137140 docker images | grep -cim1 -E " ^gtbuild\s+?v1" || docker build -t gtbuild:v1 .
138141
139- docker_build_linux_amd64 : docker_build_linux_amd64_server docker_build_linux_amd64_client
140- docker_release_linux_amd64 : docker_release_linux_amd64_server docker_release_linux_amd64_client
142+ docker_build_linux_amd64 : docker_create_image
143+ $(eval MAKE_ENV=TARGET=x86_64-linux-gnu GOOS=linux GOARCH=amd64 STATIC_LINK=$(STATIC_LINK ) RACE_CHECK=$(RACE_CHECK ) WITH_OFFICIAL_WEBRTC=$(WITH_OFFICIAL_WEBRTC ) )
144+ docker run --rm -v $(PWD ) :/go/src/github.com/isrc-cas/gt -w /go/src/github.com/isrc-cas/gt gtbuild:v1 sh -c ' $(MAKE_ENV) make build'
145+ docker_release_linux_amd64 : docker_create_image
146+ $(eval MAKE_ENV=TARGET=x86_64-linux-gnu GOOS=linux GOARCH=amd64 STATIC_LINK=$(STATIC_LINK ) RACE_CHECK=$(RACE_CHECK ) WITH_OFFICIAL_WEBRTC=$(WITH_OFFICIAL_WEBRTC ) )
147+ docker run --rm -v $(PWD ) :/go/src/github.com/isrc-cas/gt -w /go/src/github.com/isrc-cas/gt gtbuild:v1 sh -c ' $(MAKE_ENV) make release'
141148docker_build_linux_amd64_client : docker_create_image
142149 $(eval MAKE_ENV=TARGET=x86_64-linux-gnu GOOS=linux GOARCH=amd64 STATIC_LINK=$(STATIC_LINK ) RACE_CHECK=$(RACE_CHECK ) WITH_OFFICIAL_WEBRTC=$(WITH_OFFICIAL_WEBRTC ) )
143150 docker run --rm -v $(PWD ) :/go/src/github.com/isrc-cas/gt -w /go/src/github.com/isrc-cas/gt gtbuild:v1 sh -c ' $(MAKE_ENV) make build_client'
@@ -151,8 +158,12 @@ docker_release_linux_amd64_server: docker_create_image
151158 $(eval MAKE_ENV=TARGET=x86_64-linux-gnu GOOS=linux GOARCH=amd64 STATIC_LINK=$(STATIC_LINK ) RACE_CHECK=$(RACE_CHECK ) WITH_OFFICIAL_WEBRTC=$(WITH_OFFICIAL_WEBRTC ) )
152159 docker run --rm -v $(PWD ) :/go/src/github.com/isrc-cas/gt -w /go/src/github.com/isrc-cas/gt gtbuild:v1 sh -c ' $(MAKE_ENV) make release_server'
153160
154- docker_build_linux_arm64 : docker_build_linux_arm64_server docker_build_linux_arm64_client
155- docker_release_linux_arm64 : docker_release_linux_arm64_server docker_release_linux_arm64_client
161+ docker_build_linux_arm64 : docker_create_image
162+ $(eval MAKE_ENV=TARGET=aarch64-linux-gnu GOOS=linux GOARCH=arm64 STATIC_LINK=$(STATIC_LINK ) RACE_CHECK=$(RACE_CHECK ) WITH_OFFICIAL_WEBRTC=$(WITH_OFFICIAL_WEBRTC ) )
163+ docker run --rm -v $(PWD ) :/go/src/github.com/isrc-cas/gt -w /go/src/github.com/isrc-cas/gt gtbuild:v1 sh -c ' $(MAKE_ENV) make build'
164+ docker_release_linux_arm64 : docker_create_image
165+ $(eval MAKE_ENV=TARGET=aarch64-linux-gnu GOOS=linux GOARCH=arm64 STATIC_LINK=$(STATIC_LINK ) RACE_CHECK=$(RACE_CHECK ) WITH_OFFICIAL_WEBRTC=$(WITH_OFFICIAL_WEBRTC ) )
166+ docker run --rm -v $(PWD ) :/go/src/github.com/isrc-cas/gt -w /go/src/github.com/isrc-cas/gt gtbuild:v1 sh -c ' $(MAKE_ENV) make release'
156167docker_build_linux_arm64_client : docker_create_image
157168 $(eval MAKE_ENV=TARGET=aarch64-linux-gnu GOOS=linux GOARCH=arm64 STATIC_LINK=$(STATIC_LINK ) RACE_CHECK=$(RACE_CHECK ) WITH_OFFICIAL_WEBRTC=$(WITH_OFFICIAL_WEBRTC ) )
158169 docker run --rm -v $(PWD ) :/go/src/github.com/isrc-cas/gt -w /go/src/github.com/isrc-cas/gt gtbuild:v1 sh -c ' $(MAKE_ENV) make build_client'
@@ -168,12 +179,14 @@ docker_release_linux_arm64_server: docker_create_image
168179
169180build : build_server build_client
170181release : release_server release_client
171- build_client : $(SOURCES ) Makefile compile_msquic compile_webrtc
182+ build_client : $(SOURCES ) Makefile compile_msquic compile_webrtc compile_p2p
172183 $(eval CGO_CXXFLAGS+=-O0 -g -ggdb)
184+ $(eval CGO_LDFLAGS+=$(PWD ) /dep/p2p/target/$(RUST_TARGET ) /release/libp2p.a)
173185 $(eval NAME=$(GOOS ) -$(GOARCH ) -client)
174186 go build $(DEBUG_OPTIONS ) -o build/$(NAME )$(EXE ) ./cmd/client
175- release_client : $(SOURCES ) Makefile compile_msquic compile_webrtc release_web_client
187+ release_client : $(SOURCES ) Makefile compile_msquic compile_webrtc compile_p2p release_web_client
176188 $(eval CGO_CXXFLAGS+=-O3)
189+ $(eval CGO_LDFLAGS+=$(PWD ) /dep/p2p/target/$(RUST_TARGET ) /release/libp2p.a)
177190 $(eval NAME=$(GOOS ) -$(GOARCH ) -client)
178191 go build $(RELEASE_OPTIONS ) -o release/$(NAME )$(EXE ) ./cmd/client
179192build_server : $(SOURCES ) Makefile compile_msquic compile_webrtc
@@ -203,7 +216,7 @@ duplicate_dist_server:
203216duplicate_dist_client :
204217 cp -r $(FRONTEND_DIR ) /dist $(CLIENT_FRONT_DIR ) /dist
205218
206- clean : clean_web
219+ clean : clean_web clean_p2p
207220 rm -rf build/* release/*
208221 rm -rf dep/_google-webrtc/src/out/*
209222
@@ -277,4 +290,14 @@ compile_msquic: check_msquic_dependencies update_submodule
277290 cmake -B./dep/_msquic/$(TARGET ) -S./dep/_msquic -DQUIC_BUILD_SHARED=OFF -DCMAKE_TARGET_ARCHITECTURE=$(TARGET_CPU )
278291 make -C./dep/_msquic/$(TARGET ) -j$(shell nproc)
279292 @renameSymbols=$$(objdump -t ./dep/_msquic/$(TARGET ) /bin/Release/libmsquic.a | awk -v RS= '/_YB80VJ/{next}1' | grep -E 'g +(F|O ) ' | grep -Evi ' (ms){0,1}quic' | awk ' {print " --redefine-sym " $$ NF " =" $$ NF " _YB80VJ" }' ) && \
280- $(TARGET)-objcopy $$renameSymbols ./dep/_msquic/$(TARGET)/bin/Release/libmsquic.a
293+ $(TARGET)-objcopy $$renameSymbols ./dep/_msquic/$(TARGET)/bin/Release/libmsquic.a
294+
295+ compile_p2p :
296+ cd ./dep/p2p && \
297+ . "$$HOME/.cargo/env" && \
298+ cargo build -r --target $(RUST_TARGET)
299+
300+ clean_p2p :
301+ cd ./dep/p2p && \
302+ . "$$HOME/.cargo/env" && \
303+ cargo clean
0 commit comments