diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-21 20:56:19 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-21 20:56:19 +0000 |
commit | 0b6210cd37b68b94252cb798598b12974a20e1c1 (patch) | |
tree | e371686554a877842d95aa94f100bee552ff2a8e /llhttp/Makefile | |
parent | Initial commit. (diff) | |
download | node-undici-0b6210cd37b68b94252cb798598b12974a20e1c1.tar.xz node-undici-0b6210cd37b68b94252cb798598b12974a20e1c1.zip |
Adding upstream version 5.28.2+dfsg1+~cs23.11.12.3.upstream/5.28.2+dfsg1+_cs23.11.12.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'llhttp/Makefile')
-rw-r--r-- | llhttp/Makefile | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/llhttp/Makefile b/llhttp/Makefile new file mode 100644 index 0000000..d9c6d35 --- /dev/null +++ b/llhttp/Makefile @@ -0,0 +1,93 @@ +CLANG ?= clang +CFLAGS ?= +OS ?= + +CFLAGS += -Os -g3 -Wall -Wextra -Wno-unused-parameter +ifneq ($(OS),Windows_NT) + # NOTE: clang on windows does not support fPIC + CFLAGS += -fPIC +endif + +INCLUDES += -Ibuild/ + +INSTALL ?= install +PREFIX ?= /usr/local +LIBDIR = $(PREFIX)/lib +INCLUDEDIR = $(PREFIX)/include + +all: build/libllhttp.a build/libllhttp.so + +clean: + rm -rf release/ + rm -rf build/ + +build/libllhttp.so: build/c/llhttp.o build/native/api.o \ + build/native/http.o + $(CLANG) -shared $^ -o $@ + +build/libllhttp.a: build/c/llhttp.o build/native/api.o \ + build/native/http.o + $(AR) rcs $@ build/c/llhttp.o build/native/api.o build/native/http.o + +build/c/llhttp.o: build/c/llhttp.c + $(CLANG) $(CFLAGS) $(INCLUDES) -c $< -o $@ + +build/native/%.o: src/native/%.c build/llhttp.h src/native/api.h \ + build/native + $(CLANG) $(CFLAGS) $(INCLUDES) -c $< -o $@ + +build/llhttp.h: generate +build/c/llhttp.c: generate + +build/native: + mkdir -p build/native + +release: clean generate + @echo "${RELEASE}" | grep -q -E ".+" || { echo "Please make sure the RELEASE argument is set."; exit 1; } + rm -rf release + mkdir -p release/src + mkdir -p release/include + cp -rf build/llhttp.h release/include/ + cp -rf build/c/llhttp.c release/src/ + cp -rf src/native/*.c release/src/ + cp -rf src/llhttp.gyp release/ + cp -rf src/common.gypi release/ + sed s/_RELEASE_/$(RELEASE)/ CMakeLists.txt > release/CMakeLists.txt + cp -rf libllhttp.pc.in release/ + cp -rf README.md release/ + cp -rf LICENSE-MIT release/ + +github-release: + @echo "${RELEASE_V}" | grep -q -E "^v" || { echo "Please make sure version starts with \"v\"."; exit 1; } + gh release create -d --generate-notes ${RELEASE_V} + @sleep 5 + gh release view ${RELEASE_V} -t "{{.body}}" --json body > RELEASE_NOTES + gh release delete ${RELEASE_V} -y + gh release create -F RELEASE_NOTES -d --title ${RELEASE_V} --target release release/${RELEASE_V} + @sleep 5 + rm -rf RELEASE_NOTES + open $$(gh release view release/${RELEASE_V} --json url -t "{{.url}}") + +postversion: release + git fetch origin + git push + git checkout release -- + cp -rf release/* ./ + rm -rf release + git add include src *.gyp *.gypi CMakeLists.txt README.md LICENSE-MIT libllhttp.pc.in + git commit -a -m "release: $(RELEASE)" + git tag "release/v$(RELEASE)" + git push && git push --tags + git checkout main + +generate: + npx ts-node bin/generate.ts + +install: build/libllhttp.a build/libllhttp.so + $(INSTALL) -d $(DESTDIR)$(INCLUDEDIR) + $(INSTALL) -d $(DESTDIR)$(LIBDIR) + $(INSTALL) -C build/llhttp.h $(DESTDIR)$(INCLUDEDIR)/llhttp.h + $(INSTALL) -C build/libllhttp.a $(DESTDIR)$(LIBDIR)/libllhttp.a + $(INSTALL) build/libllhttp.so $(DESTDIR)$(LIBDIR)/libllhttp.so + +.PHONY: all generate clean release postversion github-release |