Dotfiles
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

95 lines
2.9 KiB

# ===================================================================
# Taeyeon's miscallaneous applications
# (c) 2019 Taeyeon Mori
# ===================================================================
PROGS = keepassxc-print steamns chome overlayns
PROGS_ALL = fakensudo ssh-overlay-kiosk overlayns-static
# Compiler config
CXX = clang++
CXXFLAGS = -std=c++20 -Wall
OPTIMIZE = -O3 -flto
DEBUG = -DDEBUG -g3
# Install config
INSTALL_PATH ?= ~/.local/bin
# -------------------------------------------------------------------
# Common targets
.PHONY: all most install clean
most: $(PROGS)
all: $(PROGS) $(PROGS_ALL)
install: $(PROGS)
@echo "Installing to INSTALL_PATH = $(INSTALL_PATH)"
@mkdir -p $(INSTALL_PATH)
@bash -c 'for prog in $(PROGS); do test -e $$prog && echo "Install $$prog -> $(INSTALL_PATH)" && install -m755 $$prog $(INSTALL_PATH); done'
install-fake-sudo: fakensudo
install -m755 $< /usr/local/bin/sudo
clean:
rm $(PROGS) $(PROGS_ALL)
# ------------------------------------------------------------------
# Dependencies
dep_koutil = koutil.hpp
flg_koutil =
dep_kofs = kofs.hpp
flg_kofs =
dep_koos = koos.hpp $(dep_kofs)
flg_koos = $(flg_kofs)
dep_kofd = kofd.hpp $(dep_kofs)
flg_kofd = $(flg_kofs)
dep_kofd_pipe = kofd_pipe.hpp $(dep_kofd)
flg_kofd_pipe = $(flg_kofd)
dep_koproc = koproc.hpp $(dep_kofd_pipe)
flg_koproc = -pthread $(flg_kofd_pipe)
dep_kons = kons.hpp $(dep_koutil) $(dep_kofd) $(dep_koos)
flg_kons = $(flg_koutil) $(flg_kofd) $(flg_koos)
dep_kons_clone = kons_clone.hpp $(dep_kons) $(dep_koproc)
flg_kons_clone = $(flg_kons) $(flg_koproc)
dep_keepassxc = keepassxc-browser.hpp $(dep_koproc)
flg_keepassxc = $(shell pkg-config --cflags --libs libsodium jsoncpp) $(flg_koproc)
# -------------------------------------------------------------------
# Applications
keepassxc-print: keepassxc-print.cpp $(dep_keepassxc)
$(CXX) $(CXXFLAGS) $(OPTIMIZE) $(flg_keepassxc) -o $@ $<
steamns: steamns.cpp $(dep_kons_clone)
$(CXX) $(CXXFLAGS) $(OPTIMIZE) $(flg_kons_clone) -o $@ $<
MOverlay2-nsexec: MOverlay2-nsexec.cpp $(dep_kons_clone)
$(CXX) $(CXXFLAGS) $(OPTIMIZE) $(flg_kons_clone) -o $@ $<
chome: chome.cpp $(dep_koutil) $(dep_kofd) $(dep_koos)
$(CXX) $(CXXFLAGS) $(OPTIMIZE) $(flg_koutil) $(flg_kofd) $(flg_koos) -o $@ $<
fakensudo: fakensudo.cpp $(dep_kons)
$(CXX) $(CXXFLAGS) $(OPTIMIZE) $(flg_kons) -o $@ $<
ssh-overlay-kiosk: ssh-overlay-kiosk.cpp $(dep_koutil) $(dep_kofd) $(dep_koos)
$(CXX) $(CXXFLAGS) $(OPTIMIZE) $(flg_koutil) $(flg_kofd) $(flg_koos) -o $@ $<
@echo Setting $@ setuid root
sudo chown root $@
sudo chmod u+s $@
overlayns: overlayns.cpp $(dep_kons) $(dep_koproc)
$(CXX) $(CXXFLAGS) $(OPTIMIZE) $(flg_kons) $(flg_koproc) -o $@ $<
overlayns-static: overlayns.cpp $(dep_kons) $(dep_koproc) makefile
$(CXX) $(CXXFLAGS) $(OPTIMIZE) $(flg_kons) $(flg_koproc) -static -fdata-sections -ffunction-sections -Wl,--gc-sections -o $@ $<