Added linking of libarchive to Makefile

main
Jef Roosens 2022-01-12 18:18:23 +01:00
parent 95ae66a1cd
commit 49e7b9de5d
Signed by: Jef Roosens
GPG Key ID: 955C0660072F691F
3 changed files with 32 additions and 8 deletions

3
.gitignore vendored
View File

@ -6,3 +6,6 @@ vieter/vieter
*.pkg* *.pkg*
vieter.log vieter.log
# External lib; gets added by Makefile
libarchive-*

View File

@ -1,15 +1,22 @@
# =====CONFIG=====
LARCHIVE_VER := 3.5.2
LARCHIVE_DIR := libarchive-$(LARCHIVE_VER)
LARCHIVE_LIB := $(LARCHIVE_DIR)/.libs/libarchive.a
# Custom V command for linking libarchive
V := LD_FLAGS=$(PWD)/$(LARCHIVE_LIB) v -cflags -I$(PWD)/$(LARCHIVE_DIR)
# Run the server in the default 'data' directory
.PHONY: run .PHONY: run
run: run: libarchive
API_KEY=test REPO_DIR=data LOG_LEVEL=DEBUG v -cg run vieter API_KEY=test REPO_DIR=data LOG_LEVEL=DEBUG $(V) run vieter
.PHONY: run-prod
run-prod:
API_KEY=test REPO_DIR=data LOG_LEVEL=DEBUG v -prod run vieter
# Same as run, but restart when the source code changes
.PHONY: watch .PHONY: watch
watch: watch: libarchive
API_KEY=test REPO_DIR=data LOG_LEVEL=DEBUG v watch run vieter API_KEY=test REPO_DIR=data LOG_LEVEL=DEBUG $(V) watch run vieter
# Format the V codebase
.PHONY: fmt .PHONY: fmt
fmt: fmt:
v fmt -w vieter v fmt -w vieter
@ -23,3 +30,13 @@ customv:
--single-branch \ --single-branch \
https://github.com/ChewingBever/v jjr-v https://github.com/ChewingBever/v jjr-v
'$(MAKE)' -C jjr-v '$(MAKE)' -C jjr-v
.PHONY: libarchive
libarchive: $(LARCHIVE_LIB)
$(LARCHIVE_LIB):
curl -o - "https://libarchive.org/downloads/libarchive-${LARCHIVE_VER}.tar.gz" | tar xzf -
cd "libarchive-${LARCHIVE_VER}" && ./configure --disable-bsdtar --disable-bsdcpio
'$(MAKE)' -C "libarchive-${LARCHIVE_VER}"
clean:
rm -rf '$(LARCHIVE_DIR)' 'data'

View File

@ -2,6 +2,10 @@ module repo
import os import os
#include "libarchive/archive.h"
struct C.archive {}
const pkgs_subpath = 'pkgs' const pkgs_subpath = 'pkgs'
// Dummy struct to work around the fact that you can only share structs, maps & // Dummy struct to work around the fact that you can only share structs, maps &