This repository has been archived on 2023-11-15. You can view files and clone it, but cannot push or open issues or pull requests.
feuille/Makefile

94 lines
2.6 KiB
Makefile
Raw Normal View History

2022-11-21 10:43:01 +01:00
.POSIX:
.SUFFIXES:
.PHONY: all run clean distclean install uninstall cgi
include config.mk
TARGET = feuille.com
TARGET$(COSMO) = feuille
2022-12-11 02:10:36 +01:00
SRC = feuille.c util.c server.c bin.c
OBJ = $(SRC:%.c=%.o)
2022-11-21 10:43:01 +01:00
2022-12-11 14:38:36 +01:00
all: $(TARGET) feuille.1 cgi
2022-11-21 10:43:01 +01:00
run: $(TARGET)
./$(TARGET)
2022-12-11 14:38:36 +01:00
2022-11-21 10:43:01 +01:00
clean:
@printf "%-8s $(OBJ)\n" "rm"
@rm -f $(OBJ)
distclean:
2022-12-11 14:38:36 +01:00
@printf "%-8s feuille feuille.com feuille.com.dbg $(OBJ)\n" "rm"
@rm -f feuille feuille.com feuille.com.dbg $(OBJ)
2022-11-21 10:43:01 +01:00
install: $(TARGET) feuille.1
2022-11-21 10:43:01 +01:00
@echo "installing executable file to $(PREFIX)/bin"
@mkdir -p "$(PREFIX)/bin"
@cp -f $(TARGET) "$(PREFIX)/bin"
@chmod 755 "$(PREFIX)/bin/$(TARGET)"
@echo "installing manpage to $(MAN)/man1"
@mkdir -p $(MAN)/man1
@cp -f feuille.1 $(MAN)/man1
@chmod 644 $(MAN)/man1/feuille.1
2022-11-21 10:43:01 +01:00
2022-12-11 14:38:36 +01:00
uninstall:
2022-11-21 10:43:01 +01:00
@echo "removing executable file from $(PREFIX)/bin"
@rm -f "$(PREFIX)/bin/$(TARGET)"
@echo "removing manpage from $(MAN)/man1"
@rm -f $(MAN)/man1/feuille.1
2022-12-11 14:38:36 +01:00
# manpage
feuille.1: feuille.1.md config.mk
2022-12-11 14:38:36 +01:00
@printf "%-8s $@.md -o $@\n" "pandoc"
@sed "s/{VERSION}/$(VERSION)/g" $@.md | pandoc -s -t man -o $@
2022-12-11 14:38:36 +01:00
# standard libc
feuille: $(OBJ)
2022-12-11 14:38:36 +01:00
@printf "%-8s $(OBJ) -o $@\n" "$(CC)"
@$(CC) $(OBJ) -o $@ $(LDFLAGS)
# cosmopolitan libc
cosmopolitan:
@if [ ! -d cosmopolitan ]; then \
printf "%-8s https://justine.lol/cosmopolitan/cosmopolitan-amalgamation-2.2.zip\n" "curl" ;\
curl -sO "https://justine.lol/cosmopolitan/cosmopolitan-amalgamation-2.2.zip" ;\
\
printf "%-8s cosmopolitan-amalgamation-2.2.zip\n" "unzip" ;\
2022-12-11 12:55:24 +01:00
unzip -q cosmopolitan-amalgamation-2.2.zip -d cosmopolitan ;\
\
rm -rf cosmopolitan-amalgamation-* ;\
fi
2022-12-11 14:38:36 +01:00
feuille.com.dbg: $(OBJ)
@printf "%-8s $(OBJ) -o $@\n" "$(CC)"
@$(CC) $(OBJ) -o $@ $(LDFLAGS)
feuille.com: cosmopolitan feuille.com.dbg
@printf "%-8s $@.dbg -o $@\n" "objcopy"
@objcopy -S -O binary $@.dbg $@
# CGI script
2022-11-21 10:43:01 +01:00
ADDR = 127.0.0.1
PORT = 9999
2022-11-21 10:43:01 +01:00
2022-11-21 10:54:53 +01:00
cgi: cgi/feuille.cgi
2022-11-21 10:43:01 +01:00
2022-11-21 10:54:53 +01:00
cgi/feuille.cgi: cgi/feuille.cgi.c
@printf "%-8s cgi/feuille.cgi.c -o cgi/feuille.cgi\n" "$(CC)"
2022-12-11 14:38:36 +01:00
@$(CC) $@.c -o $@ -std=c99 -O3 -static -Wall -Wextra \
-DADDR=\"$(ADDR)\" -DPORT=$(PORT) \
$(INCS) $(LIBS)
2022-11-21 10:43:01 +01:00
.SUFFIXES: .c .o
.c.o:
@printf "%-8s $<\n" "$(CC)"
@$(CC) -c $< $(CFLAGS)