2022-12-16 13:39:18 -05:00
|
|
|
DEPS = utf8 lowdown sxml-transforms clojurian symbol-utils scss srfi-1 srfi-13 srfi-14 ersatz
|
2022-12-02 16:41:55 -05:00
|
|
|
SRC = main.scm
|
|
|
|
DIR_INSTALL ?= /usr/local/bin
|
|
|
|
DIR_BUILD = .
|
|
|
|
BIN = repo2html
|
|
|
|
|
|
|
|
all: compile
|
|
|
|
|
|
|
|
compile:
|
2022-12-07 19:17:45 -05:00
|
|
|
mkdir -p $(DIR_BUILD)/
|
2022-12-02 16:41:55 -05:00
|
|
|
csc -O3 -static ./$(SRC) -o $(DIR_BUILD)/$(BIN)
|
|
|
|
rm ./$(DIR_BUILD)/$(BIN).link
|
|
|
|
@echo "Finished compiling a static binary in $(DIR_BUILD)/$(BIN)!"
|
|
|
|
|
|
|
|
dependencies:
|
|
|
|
chicken-install $(DEPS)
|
|
|
|
|
|
|
|
install:
|
|
|
|
install -Dm755 $(DIR_BUILD)/$(BIN) -D $(DIR_INSTALL)/$(PROG)
|
|
|
|
|
|
|
|
uninstall:
|
|
|
|
rm $(DIR_INSTALL)/$(PROG)
|
|
|
|
|
|
|
|
clean:
|
|
|
|
rm $(DIR_BUILD)/$(BIN)
|
|
|
|
|
2022-12-16 19:39:50 -05:00
|
|
|
compile-on-debian-11:
|
|
|
|
# builds repo2html compatible with systems running glibc-2.31 and higher.
|
|
|
|
#
|
|
|
|
# this will download a debian docker container that has glibc 2.31, then
|
|
|
|
# download chicken scheme, gcc compiler, and tons of related packages, then
|
|
|
|
# download all the dependency eggs, then compile them, then compile this
|
|
|
|
# project, then except for that one output executable it will delete
|
|
|
|
# *everything* it has done and downloaded including any caches meant to
|
|
|
|
# save you some time and bandwidth the next time you need to compile this
|
|
|
|
#
|
|
|
|
# what i'm saying is, if we need to run this frequently, we should find a
|
|
|
|
# better mechanism. providing a dockerfile would probably be sufficient...
|
|
|
|
docker run --rm -it -v "$(shell pwd)":/tmp/x -w /tmp/x debian:bullseye-slim sh -c '\
|
|
|
|
apt update &&\
|
|
|
|
apt install -y chicken-bin build-essential make &&\
|
|
|
|
make dependencies &&\
|
|
|
|
make compile'
|