-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
55 lines (40 loc) · 1.43 KB
/
Makefile
File metadata and controls
55 lines (40 loc) · 1.43 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
VERSION ?= 0.0.0
PROGRAM_NAME = vinyl-edit
OUTPUT = $(PROGRAM_NAME)_$(VERSION)
VINYL_SRC = lib/vinyl-cache
LIBVCC = $(VINYL_SRC)/lib/libvcc/.libs/libvcc.a
LIBVARNISH = $(VINYL_SRC)/lib/libvarnish/.libs/libvarnish.a
.PHONY: clean nuke test libvcc.a dist dist-darwin-arm64 dist-linux-arm64 dist-linux-amd64
INCLUDES = \
-I$(VINYL_SRC)/include \
-I$(VINYL_SRC)/lib/libvcc \
-I$(VINYL_SRC)
EXTRA_LIBS ?=
LIBS = \
$(LIBVCC) \
$(LIBVARNISH) \
$(shell pkg-config --libs libpcre2-8) \
-lm \
$(EXTRA_LIBS)
SRCS = src/main.c src/edit.c src/buf.c src/pattern.c src/format.c
build: $(SRCS) $(LIBVCC) $(LIBVARNISH)
@mkdir -p dist
cc -Wall -O2 -D VINYL_EDIT_VERSION=\"$(VERSION)\" $(INCLUDES) -o dist/$(OUTPUT) $(SRCS) $(LIBS)
libvcc.a:
git submodule update --init --recursive
cd $(VINYL_SRC) && ./autogen.sh && ./configure && make -C include vcs_version.h && make -C lib/libvarnish && make -C lib/libvcc
$(LIBVCC) $(LIBVARNISH):
$(MAKE) libvcc.a
dist-darwin-arm64: build
cp dist/$(OUTPUT) dist/$(OUTPUT)_darwin_arm64
dist-linux-arm64:
docker buildx build --platform linux/arm64 --build-arg VERSION=$(VERSION) --build-arg PLATFORM=linux_arm64 -o dist/ .
dist-linux-amd64:
docker buildx build --platform linux/amd64 --build-arg VERSION=$(VERSION) --build-arg PLATFORM=linux_amd64 -o dist/ .
dist: build dist-linux-arm64 dist-linux-amd64 dist-darwin-arm64
test:
@BINARY=./dist/$(OUTPUT) ./tools/run-tests.sh
clean:
rm -rf dist
nuke: clean
rm -rf lib