Files
entropi/Makefile
T
Lukas Stancik 19c96a1aaa Cosmetics in Makefile
I can no longer format SD card in Gnome with lowercase name (dont know why) hence the change to uppercase. Silenced error produced by clean target when trying to remove non-existent Docker image
2025-07-07 17:47:57 +00:00

104 lines
3.6 KiB
Makefile

.DEFAULT_GOAL:=build
TEMP_DIR=$(shell ./preflight)
DIST_DIR=${TEMP_DIR}/dist
DOT_ENV_FILE=${TEMP_DIR}/.env
DOT_ENV_PAIRS=$(shell cat ${DOT_ENV_FILE})
BUILD_ARGS=$(shell for ARG in ${DOT_ENV_PAIRS}; do echo "--build-arg $$ARG"; done;)
-include ${DOT_ENV_FILE}
vault/encrypt:
@echo "### Encrypting secrets..."
@./vault encrypt
@echo "### Encrypting done"
vault/decrypt:
@echo "### Decrypting secrets..."
@./vault decrypt
@echo "### Decrypting done"
init:
@echo "### Init..."
@./require ${DOT_ENV_FILE} alpine_source
@./require ${DOT_ENV_FILE} tailspin_bin
@echo "### Init done"
@make vault/decrypt
build: repository
@echo "### Assembling..."
@rsync -chaz ${CACHE_DIR}/${RELEASE_BASENAME}/ ${DIST_DIR}
@mkdir -p ${TEMP_DIR}/overlay_headless/etc/local.d
@mkdir -p ${TEMP_DIR}/overlay_headless/etc/runlevels/default
@touch ${TEMP_DIR}/overlay_headless/etc/.default_boot_services
-@ln -s /etc/init.d/local ${TEMP_DIR}/overlay_headless/etc/runlevels/default/local
@./src/esh -o ${TEMP_DIR}/overlay_headless/etc/local.d/headless.start src/headless.start ${DOT_ENV_PAIRS}
@chmod +x ${TEMP_DIR}/overlay_headless/etc/local.d/headless.start
@tar czf ${DIST_DIR}/headless.apkovl.tar.gz -C ${TEMP_DIR}/overlay_headless/ .
@rsync -chaz ${CACHE_DIR}/aport/${RELEASE_VERSION}/main/ ${DIST_DIR}/extras
@cp ${CACHE_DIR}/tailspin/tspin ${DIST_DIR}
@./src/esh -o ${DIST_DIR}/hotspot.conf src/hotspot.conf ${DOT_ENV_PAIRS}
@./src/esh -o ${DIST_DIR}/wg0.conf src/wg0.conf ${DOT_ENV_PAIRS}
@cp secrets/*.psk ${DIST_DIR}
@cp secrets/authorized_keys ${DIST_DIR}
@cp src/config.toml ${DIST_DIR}
@cp src/logpattern.conf ${DIST_DIR}
@cp src/main.conf ${DIST_DIR}
@cp src/rsyslog.conf ${DIST_DIR}
@cp src/usercfg.txt ${DIST_DIR}
@cp src/watchdog.sh ${DIST_DIR}
@cp secrets/packager.rsa.pub ${DIST_DIR}
@cp src/repository-builder/${REQUIREMENTS_FILE} ${DIST_DIR}
@echo "### Assembling done"
card: clean build
@echo "### Copying to sdcard..."
@rsync -chavz --delete ${DIST_DIR}/ /media/$(shell whoami)/ENTROPI
@echo "### Copying to sdcard done"
-@make clean
clean:
@echo "### Cleaning..."
-@rm -rf ${DIST_DIR}
-@rm -rf tmp*
-@rm -f ${CACHE_DIR}/aport/${RELEASE_VERSION}/main/${ALPINE_ARCH}/APKINDEX.tar.gz
-@docker rmi ${BUILDER_DOCKER_IMAGE} >/dev/null 2>&1
@echo "### Cleaning done"
mrproper: clean
@echo "### Purging cache..."
-@rm -rf ${CACHE_DIR}
@echo "### Done"
repository-builder: init
@mkdir -p ${CACHE_DIR}/aport/${RELEASE_VERSION}/main/
@rsync -chaz ${CACHE_DIR}/${RELEASE_BASENAME}/apks/ ${CACHE_DIR}/aport/${RELEASE_VERSION}/main/
@tar \
--exclude='.git' \
-czh ./src/repository-builder | docker build -f ./src/repository-builder/repository.Dockerfile \
--build-arg ALPINE_DOCKER_IMAGE=${ALPINE_DOCKER_IMAGE} \
--build-arg REQUIREMENTS_FILE=${REQUIREMENTS_FILE} \
--build-arg BUILDER_USER=${BUILDER_USER} \
--build-arg BUILDER_UID=${BUILDER_UID} \
--build-arg BUILDER_GID=${BUILDER_GID} \
-t ${BUILDER_DOCKER_IMAGE} -
repository: repository-builder
@echo "### Repository..."
@wget --quiet --spider https://alpinelinux.org/ && \
docker run --rm -ti \
-e ALPINE_ARCH=${ALPINE_ARCH} \
-e RELEASE_VERSION=${RELEASE_VERSION} \
-e REQUIREMENTS_FILE=${REQUIREMENTS_FILE} \
-e BUILDER_KEY_BASENAME=${BUILDER_KEY_BASENAME} \
-e BUILDER_UID=${BUILDER_UID} \
-e BUILDER_GID=${BUILDER_GID} \
-v $(PWD)/secrets/packager.rsa:/root/.abuild/packager.rsa \
-v $(PWD)/secrets/packager.rsa.pub:/root/.abuild/packager.rsa.pub \
-v $(PWD)/src/repository-builder/abuild.conf:/root/.abuild/abuild.conf \
-v ${CACHE_DIR}/aport:/mirror \
${BUILDER_DOCKER_IMAGE} build-repository \
|| echo "No Internet!!! Skipping repository..."
@echo "### Repository done"