Replace stupid gypkg build system with simple Makefile

This commit is contained in:
latex 2023-01-31 23:52:48 +01:00
parent b3ae0767c8
commit c7b869f661
3 changed files with 51 additions and 7 deletions

3
.gitignore vendored
View File

@ -5,3 +5,6 @@ out/
gypkg_deps/
node_modules/
npm-debug.log
*.a
*.so
*.dll

View File

@ -1,10 +1,40 @@
test: dist
./out/Release/uv_link_t-test
include config.mk
example: dist
./out/Release/uv_link_t-example
SRC = $(shell find src/ -type f -name '*.c')
OBJ = $(SRC:%=$(BUILD_DIR)/%.o)
H = include/uv_link_t.h
dist:
gypkg build uv_link_t.gyp
.PHONY: all static shared clean install-static install-shared install
.PHONY: test example dist
all: static shared
static: $(SNAME)
shared: $(DNAME)
$(OBJ): config.mk
$(SNAME): $(OBJ)
ar rcs $@ $?
$(DNAME): LDFLAGS += -shared
$(DNAME): $(OBJ)
$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@
$(BUILD_DIR)/%.c.o: %.c
mkdir -p '$(@D)'
$(CC) -c -o $@ $(INCLUDES) $(CFLAGS) $<
clean:
rm -rf $(SNAME) $(DNAME) $(BUILD_DIR)
install-header:
install -m 644 $(H) $(PREFIX)/include
install-static: $(SNAME)
install -m 755 $(SNAME) $(PREFIX)/lib64
install-shared: $(DNAME)
install -m 755 $(DNAME) $(PREFIX)/lib64
install: install-header install-static install-shared

11
config.mk Normal file
View File

@ -0,0 +1,11 @@
PREFIX = /usr/local
BUILD_DIR = build
NAME = libuv_link_t
SNAME = $(NAME).a
DNAME = $(NAME).so
CFLAGS = -W -Wall -Wvla -std=gnu99 -g -fPIC
CFLAGS += $(shell pkg-config --cflags libuv)
LDLIBS = $(shell pkg-config --libs libuv)
INCLUDES = -I.