50 lines
1.4 KiB
Makefile
50 lines
1.4 KiB
Makefile
# Makefile for sfm - Simple File Manager
|
|
|
|
PREFIX ?= /usr/local
|
|
BINDIR ?= $(PREFIX)/bin
|
|
MANDIR ?= $(PREFIX)/share/man/man1
|
|
DOCDIR ?= $(PREFIX)/share/doc/sfm
|
|
|
|
CXX ?= g++
|
|
CXXFLAGS ?= -std=c++17 -O2 -Wall -Wextra
|
|
# Pick a curses library: prefer ncursesw, fall back to ncurses, then plain
|
|
# curses (netbsd-curses and BSD base systems provide only libcurses).
|
|
CURSES_LIBS ?= $(shell pkg-config --libs ncursesw 2>/dev/null || pkg-config --libs ncurses 2>/dev/null || echo -lcurses)
|
|
LDLIBS ?= $(CURSES_LIBS)
|
|
|
|
INSTALL ?= install
|
|
RM ?= rm -f
|
|
|
|
.PHONY: all install uninstall clean
|
|
|
|
all: sfm
|
|
|
|
sfm: sfm.cpp
|
|
$(CXX) $(CXXFLAGS) -o $@ $< $(LDLIBS)
|
|
|
|
install: all
|
|
@echo "Installing sfm to $(DESTDIR)$(BINDIR)/sfm ..."
|
|
$(INSTALL) -d $(DESTDIR)$(BINDIR)
|
|
$(INSTALL) -m 755 sfm $(DESTDIR)$(BINDIR)/sfm
|
|
@echo "Installing sfm.sh to $(DESTDIR)$(BINDIR)/sfm.sh ..."
|
|
$(INSTALL) -m 755 sfm.sh $(DESTDIR)$(BINDIR)/sfm.sh
|
|
@echo "Installing man page to $(DESTDIR)$(MANDIR)/sfm.1 ..."
|
|
$(INSTALL) -d $(DESTDIR)$(MANDIR)
|
|
$(INSTALL) -m 644 sfm.1 $(DESTDIR)$(MANDIR)/sfm.1
|
|
@echo "Installing README to $(DESTDIR)$(DOCDIR)/README ..."
|
|
$(INSTALL) -d $(DESTDIR)$(DOCDIR)
|
|
$(INSTALL) -m 644 README $(DESTDIR)$(DOCDIR)/README
|
|
@echo "Done."
|
|
|
|
uninstall:
|
|
@echo "Removing sfm ..."
|
|
$(RM) $(DESTDIR)$(BINDIR)/sfm
|
|
$(RM) $(DESTDIR)$(BINDIR)/sfm.sh
|
|
$(RM) $(DESTDIR)$(MANDIR)/sfm.1
|
|
$(RM) -r $(DESTDIR)$(DOCDIR)
|
|
@echo "Done."
|
|
|
|
clean:
|
|
$(RM) sfm
|
|
@echo "Cleaned."
|