accounts/Makefile

102 lines
2.9 KiB
Makefile

OS := $(shell uname -s)
.PHONY: install install-openresty install-redis install-postgresql install-pgvector \
build build-server build-homepage build-panel \
run run-server run-homepage run-panel
# -----------------------------------------------------------------------------
# Dependency installation
# -----------------------------------------------------------------------------
install: install-openresty install-redis install-postgresql install-pgvector
install-openresty:
ifeq ($(OS),Darwin)
@echo "Detected macOS. Installing GeoIP library into /opt/homebrew/geoip..."
@curl -LO https://github.com/maxmind/geoip-api-c/releases/download/v1.6.12/GeoIP-1.6.12.tar.gz && \
tar zxvf GeoIP-1.6.12.tar.gz && \
cd GeoIP-1.6.12 && \
./configure --prefix=/opt/homebrew/geoip && \
make -j$(CORES) && \
sudo make install && \
cd .. && rm -rf GeoIP-1.6.12 GeoIP-1.6.12.tar.gz
@echo "Trying Homebrew build of OpenResty with GeoIP..."
env CPPFLAGS="-I/opt/homebrew/geoip/include" \
LDFLAGS="-L/opt/homebrew/geoip/lib" \
brew install --build-from-source openresty/brew/openresty || \
(echo "Homebrew failed, falling back to manual source build..." && \
curl -LO https://openresty.org/download/openresty-1.27.1.2.tar.gz && \
tar zxvf openresty-1.27.1.2.tar.gz && \
cd openresty-1.27.1.2 && \
./configure \
--prefix=/opt/homebrew/openresty \
--with-http_geoip_module \
--with-cc-opt="-I/opt/homebrew/geoip/include" \
--with-ld-opt="-L/opt/homebrew/geoip/lib" && \
make -j$(CORES) && \
sudo make install && \
cd .. && rm -rf openresty-1.27.1.2 openresty-1.27.1.2.tar.gz)
else
@echo "Detected Linux. Installing via apt..."
sudo apt-get update && \
sudo apt-get install -y openresty || echo "Please install OpenResty manually."
endif
install-redis:
ifeq ($(OS),Darwin)
brew install redis
else
sudo apt-get update && \
sudo apt-get install -y redis-server
endif
install-postgresql:
ifeq ($(OS),Darwin)
brew install postgresql
else
sudo apt-get update && \
sudo apt-get install -y postgresql postgresql-contrib
endif
install-pgvector:
ifeq ($(OS),Darwin)
brew install pgvector
else
sudo apt-get update && \
( sudo apt-get install -y postgresql-15-pgvector || \
sudo apt-get install -y postgresql-14-pgvector || \
echo "Please install pgvector manually." )
endif
# -----------------------------------------------------------------------------
# Build targets
# -----------------------------------------------------------------------------
build: build-server build-homepage build-panel
build-server:
$(MAKE) -C server build
build-homepage:
$(MAKE) -C ui/homepage build
build-panel:
$(MAKE) -C ui/panel build
# -----------------------------------------------------------------------------
# Run targets
# -----------------------------------------------------------------------------
run: run-server run-homepage run-panel
run-server:
$(MAKE) -C server run
run-homepage:
$(MAKE) -C ui/homepage dev
run-panel:
$(MAKE) -C ui/panel run