.PHONY: default all _default install help clean destroy server srs_ingest_hls utest _prepare_dir srs_hls_ingester srs_mp4_parser .PHONY: clean_srs clean_modules clean_openssl clean_srtp2 clean_opus clean_ffmpeg clean_st .PHONY: st ffmpeg GCC = gcc CXX = g++ AR = ar LINK = ld RANDLIB = randlib CXXFLAGS = -std=c++11 -Wall -g -O0 LDFLAGS = # install prefix. SRS_PREFIX=/usr/local/srs SRS_DEFAULT_CONFIG=conf/srs.conf __REAL_INSTALL=$(DESTDIR)$(SRS_PREFIX) SRS_FORCE_MAKE_JOBS=YES JOBS=$(shell echo $(MAKEFLAGS)| grep -qE '\-j[0-9]+' || echo " --jobs=8") default: server all: _default _default: server srs_ingest_hls utest srs_hls_ingester srs_mp4_parser help: @echo "Usage: make ||||||" @echo " help Display this help menu" @echo " clean Cleanup project and all depends" @echo " destroy Cleanup all files for this platform in ./objs/Platform-SRS5-Linux-5.10.198-GCC11.4.0-aarch64" @echo " server Build the srs and other modules in main" @echo " utest Build the utest for srs" @echo " install Install srs to the prefix path" @echo " uninstall Uninstall srs from prefix path" @echo "To rebuild special module:" @echo " st Rebuild st-srs in ./objs/Platform-SRS5-Linux-5.10.198-GCC11.4.0-aarch64/st-srs" @echo " ffmpeg Rebuild ffmpeg in ./objs/Platform-SRS5-Linux-5.10.198-GCC11.4.0-aarch64/ffmpeg-4.2-fit" @echo "To reconfigure special depends:" @echo " clean_openssl Remove the openssl cache." @echo " clean_srtp2 Remove the libsrtp2 cache." @echo " clean_opus Remove the opus cache." @echo " clean_ffmpeg Remove the FFmpeg cache." @echo " clean_st Remove the ST cache." @echo "For example:" @echo " make" @echo " make help" doclean: (cd ./objs && rm -rf srs srs_utest srs.exe srs_utest.exe srs_hls_ingester srs_mp4_parser) (cd ./objs && rm -rf src/* include lib) (mkdir -p ./objs/utest && cd ./objs/utest && rm -rf *.o *.a) clean: clean_srs clean_modules destroy: (cd ./objs && rm -rf Platform-SRS5-Linux-5.10.198-GCC11.4.0-aarch64) clean_srs: @(cd ./objs && rm -rf srs srs_utest src/* utest/*) clean_modules: @(cd ./objs && rm -rf srs_hls_ingester srs_mp4_parser) clean_openssl: @rm -rf ./objs/Platform-SRS5-Linux-5.10.198-GCC11.4.0-aarch64/3rdparty/openssl @echo "Please rebuild openssl by: ./configure" clean_srtp2: @rm -rf ./objs/Platform-SRS5-Linux-5.10.198-GCC11.4.0-aarch64/3rdparty/srtp2 @echo "Please rebuild libsrtp2 by: ./configure" clean_opus: @rm -rf ./objs/Platform-SRS5-Linux-5.10.198-GCC11.4.0-aarch64/3rdparty/opus @echo "Please rebuild opus by: ./configure" clean_ffmpeg: @rm -rf ./objs/Platform-SRS5-Linux-5.10.198-GCC11.4.0-aarch64/3rdparty/ffmpeg @echo "Please rebuild FFmpeg by: ./configure" clean_st: @rm -rf ./objs/Platform-SRS5-Linux-5.10.198-GCC11.4.0-aarch64/3rdparty/st @echo "Please rebuild ST by: ./configure" st: @rm -f ./objs/srs srs_utest @$(MAKE)$(JOBS) -C ./objs/Platform-SRS5-Linux-5.10.198-GCC11.4.0-aarch64/st-srs clean @env EXTRA_CFLAGS="-DMALLOC_STACK -DMD_HAVE_EPOLL" $(MAKE)$(JOBS) -C ./objs/Platform-SRS5-Linux-5.10.198-GCC11.4.0-aarch64/st-srs linux-debug STATIC_ONLY=yes CC=gcc AR=ar LD=ld RANDLIB=randlib CC=$(GCC) AR=$(AR) LD=$(LINK) RANDLIB=$(RANDLIB) @echo "Please rebuild srs by: make" ffmpeg: @rm -f ./objs/srs srs_utest $(MAKE)$(JOBS) -C ./objs/Platform-SRS5-Linux-5.10.198-GCC11.4.0-aarch64/ffmpeg-4.2-fit $(MAKE)$(JOBS) -C ./objs/Platform-SRS5-Linux-5.10.198-GCC11.4.0-aarch64/ffmpeg-4.2-fit install-libs @echo "Please rebuild srs by: make" server: _prepare_dir @echo "Build the SRS server, JOBS=${JOBS}, FORCE_MAKE_JOBS=YES" $(MAKE)$(JOBS) -f ./objs/Makefile srs @bash objs/_srs_build_summary.sh srs_hls_ingester: _prepare_dir server @echo "Build the srs_hls_ingester over SRS" $(MAKE)$(JOBS) -f ./objs/Makefile srs_hls_ingester srs_mp4_parser: _prepare_dir server @echo "Build the srs_mp4_parser over SRS" $(MAKE)$(JOBS) -f ./objs/Makefile srs_mp4_parser uninstall: @echo "rmdir $(SRS_PREFIX)" @rm -rf $(SRS_PREFIX) install: @echo "Now mkdir $(__REAL_INSTALL)" @mkdir -p $(__REAL_INSTALL) @echo "Now make the http root dir" @mkdir -p $(__REAL_INSTALL)/objs/nginx/html @cp -f research/api-server/static-dir/index.html $(__REAL_INSTALL)/objs/nginx/html @cp -f research/players/crossdomain.xml $(__REAL_INSTALL)/objs/nginx/html @cp -f research/api-server/static-dir/favicon.ico $(__REAL_INSTALL)/objs/nginx/html @cp -Rf research/players $(__REAL_INSTALL)/objs/nginx/html/ @cp -Rf research/console $(__REAL_INSTALL)/objs/nginx/html/ @cp -Rf 3rdparty/signaling/www/demos $(__REAL_INSTALL)/objs/nginx/html/ @echo "Now copy binary files" @mkdir -p $(__REAL_INSTALL)/objs @cp -f objs/srs $(__REAL_INSTALL)/objs @echo "Now copy srs conf files" @mkdir -p $(__REAL_INSTALL)/conf @cp -f conf/*.conf $(__REAL_INSTALL)/conf @cp -f conf/server.key conf/server.crt $(__REAL_INSTALL)/conf @echo "Now copy init.d script files" @mkdir -p $(__REAL_INSTALL)/etc/init.d @cp -f etc/init.d/srs $(__REAL_INSTALL)/etc/init.d @sed -i "s|^ROOT=.*|ROOT=\"$(SRS_PREFIX)\"|g" $(__REAL_INSTALL)/etc/init.d/srs @sed -i "s|^CONFIG=.*|CONFIG=\"$(SRS_DEFAULT_CONFIG)\"|g" $(__REAL_INSTALL)/etc/init.d/srs @echo "Now copy systemctl service files" @mkdir -p $(__REAL_INSTALL)/usr/lib/systemd/system @cp -f usr/lib/systemd/system/srs.service $(__REAL_INSTALL)/usr/lib/systemd/system/srs.service @echo "" @echo "@see: https://ossrs.net/lts/zh-cn/docs/v4/doc/service" utest: server @echo "Ignore utest for it's disabled." # the ./configure will generate it. _prepare_dir: @mkdir -p ./objs @mkdir -p ./objs/src/core @mkdir -p ./objs/src/kernel @mkdir -p ./objs/src/protocol @mkdir -p ./objs/src/app @mkdir -p ./objs/src/main @mkdir -p ./objs/src/main