169 kx #
169 kx # daemon - https://libslack.org/daemon
169 kx #
169 kx # Copyright (C) 1999-2004, 2010, 2020-2023 raf <raf@raf.org>
169 kx #
169 kx # This program is free software; you can redistribute it and/or modify
169 kx # it under the terms of the GNU General Public License as published by
169 kx # the Free Software Foundation; either version 2 of the License, or
169 kx # (at your option) any later version.
169 kx #
169 kx # This program is distributed in the hope that it will be useful,
169 kx # but WITHOUT ANY WARRANTY; without even the implied warranty of
169 kx # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
169 kx # GNU General Public License for more details.
169 kx #
169 kx # You should have received a copy of the GNU General Public License
169 kx # along with this program; if not, see <https://www.gnu.org/licenses/>.
169 kx #
169 kx # 20230824 raf <raf@raf.org>
169 kx #
169 kx
169 kx # CC := gcc
169 kx # CC := cc
169 kx # CC := other
169 kx # AR := ar
169 kx # RANLIB := ranlib
169 kx POD2MAN := pod2man
169 kx POD2HTML := pod2html
169 kx GZIP := gzip -f -9
169 kx
169 kx DESTDIR :=
169 kx PREFIX := /usr
169 kx # PREFIX := /usr/pkg
169 kx APP_INSDIR := $(PREFIX)/bin
169 kx LIB_INSDIR := $(PREFIX)/lib
169 kx #MAN_SYSDIR := $(PREFIX)/share/man
169 kx #MAN_LOCDIR := $(PREFIX)/share/man
169 kx #ifeq ($(PREFIX),/usr)
169 kx #MAN_INSDIR := $(MAN_SYSDIR)
169 kx #else
169 kx #MAN_INSDIR := $(MAN_LOCDIR)
169 kx #endif
169 kx HDR_INSDIR := $(PREFIX)/include
169 kx DATA_INSDIR := $(PREFIX)/share
169 kx CONF_INSDIR := /etc
169 kx APP_MANSECT := 1
169 kx LIB_MANSECT := 3
169 kx FMT_MANSECT := 5
169 kx APP_MANDIR := $(PREFIX)/share/man/man$(APP_MANSECT)
169 kx LIB_MANDIR := $(PREFIX)/share/man/man$(LIB_MANSECT)
169 kx FMT_MANDIR := $(PREFIX)/share/man/man$(FMT_MANSECT)
169 kx APP_MANSECTNAME := User Commands
169 kx LIB_MANSECTNAME := C Library Functions - libslack
169 kx FMT_MANSECTNAME := File Formats
169 kx MAN_GZIP := 1
169 kx
169 kx CCFLAGS += -O3
169 kx CCFLAGS += -Wall -pedantic
169 kx
169 kx # CCFLAGS += -xO4
169 kx
169 kx CLEAN_FILES += tags core Makefile.bak .makefile.bak pod2htm*
169 kx
169 kx DAEMON_SRCDIR := .
169 kx DAEMON_INCDIRS := libslack
169 kx # Uncomment this for Linux systems without systemd but with elogind (e.g. Slackware)
169 kx # DAEMON_INCDIRS += /usr/include/elogind
169 kx DAEMON_LIBDIRS := libslack
169 kx include $(DAEMON_SRCDIR)/macros.mk
169 kx
169 kx .PHONY: all ready test check man html install uninstall dist rpm deb sol obsd fbsd nbsd osx
169 kx
169 kx all: ready $(ALL_TARGETS)
169 kx ready: $(READY_TARGETS)
169 kx check test: all $(TEST_TARGETS)
169 kx man: $(MAN_TARGETS)
169 kx html: $(HTML_TARGETS)
169 kx install: all $(INSTALL_TARGETS)
169 kx uninstall: $(UNINSTALL_TARGETS)
169 kx dist: $(DIST_TARGETS)
169 kx rpm: $(RPM_TARGETS)
169 kx deb: $(DEB_TARGETS)
169 kx sol: $(SOL_TARGETS)
169 kx obsd: $(OBSD_TARGETS)
169 kx fbsd: $(FBSD_TARGETS)
169 kx nbsd: $(NBSD_TARGETS)
169 kx osx: $(OSX_TARGETS)
169 kx
169 kx .PHONY: help help-macros depend clean clobber distclean
169 kx
169 kx help::
169 kx @echo "This makefile provides the following targets."; \
169 kx echo; \
169 kx echo " help -- shows this list of targets"; \
169 kx echo " help-macros -- shows the values of all make macros"; \
169 kx echo " all -- makes $(DAEMON_TARGET) and $(DAEMON_SUBTARGETS) (default)"; \
169 kx echo " ready -- prepares the source directory for make"; \
169 kx echo " test -- makes and runs library unit tests"; \
169 kx echo " check -- same as test"; \
169 kx echo " man -- generates all manpages"; \
169 kx echo " html -- generates all manpages in html"; \
169 kx echo " install -- installs everything under $(PREFIX)"; \
169 kx echo " uninstall -- uninstalls everything from $(PREFIX)"; \
169 kx echo " depend -- generates source dependencies using makedepend"; \
169 kx echo " tags -- generates a tags file using ctags"; \
169 kx echo " clean -- removes output files, tags, tests, and de-configures"; \
169 kx echo " clobber -- same as clean"; \
169 kx echo " distclean -- same as clean"; \
169 kx echo " dist -- makes the distribution: ../$(DAEMON_DIST)"; \
169 kx echo " rpm -- makes source and binary rpm packages [OLD]"; \
169 kx echo " deb -- makes binary debian package [OLD]"; \
169 kx echo " sol -- makes binary solaris package [OLD]"; \
169 kx echo " obsd -- makes binary openbsd package [OLD]"; \
169 kx echo " fbsd -- makes binary freebsd package [OLD]"; \
169 kx echo " nbsd -- makes binary netbsd package [OLD]"; \
169 kx echo " osx -- makes binary macosx package [OLD]"; \
169 kx echo
169 kx
169 kx help-macros::
169 kx @echo "CC = $(CC)"; \
169 kx echo "PREFIX = $(PREFIX)"; \
169 kx echo "APP_INSDIR = $(APP_INSDIR)"; \
169 kx echo "LIB_INSDIR = $(LIB_INSDIR)"; \
169 kx echo "MAN_INSDIR = $(MAN_INSDIR)"; \
169 kx echo "HDR_INSDIR = $(HDR_INSDIR)"; \
169 kx echo "DATA_INSDIR = $(DATA_INSDIR)"; \
169 kx echo "CONF_INSDIR = $(CONF_INSDIR)"; \
169 kx echo "APP_MANSECT = $(APP_MANSECT)"; \
169 kx echo "LIB_MANSECT = $(LIB_MANSECT)"; \
169 kx echo "FMT_MANSECT = $(FMT_MANSECT)"; \
169 kx echo "APP_MANDIR = $(APP_MANDIR)"; \
169 kx echo "LIB_MANDIR = $(LIB_MANDIR)"; \
169 kx echo "FMT_MANDIR = $(FMT_MANDIR)"; \
169 kx echo "TAG_FILES = $(TAG_FILES)"; \
169 kx echo "DEPEND_CFILES = $(DEPEND_CFILES)"; \
169 kx echo "DEPEND_HFILES = $(DEPEND_HFILES)"; \
169 kx echo "CCFLAGS = $(CCFLAGS)"; \
169 kx echo "READY_TARGETS = $(READY_TARGETS)"; \
169 kx echo "ALL_TARGETS = $(ALL_TARGETS)"; \
169 kx echo "TEST_TARGETS = $(TEST_TARGETS)"; \
169 kx echo "MAN_TARGETS = $(MAN_TARGETS)"; \
169 kx echo "HTML_TARGETS = $(HTML_TARGETS)"; \
169 kx echo "INSTALL_TARGETS = $(INSTALL_TARGETS)"; \
169 kx echo "UNINSTALL_TARGETS = $(UNINSTALL_TARGETS)"; \
169 kx echo "CLEAN_FILES = $(CLEAN_FILES)"; \
169 kx echo "CLOBBER_FILES = $(CLOBBER_FILES)"; \
169 kx echo "DIST_TARGETS = $(DIST_TARGETS)"; \
169 kx echo "RPM_TARGETS = $(RPM_TARGETS)"; \
169 kx echo "DEB_TARGETS = $(DEB_TARGETS)"; \
169 kx echo "SOL_TARGETS = $(SOL_TARGETS)"; \
169 kx echo "OBSD_TARGETS = $(OBSD_TARGETS)"; \
169 kx echo "FBSD_TARGETS = $(FBSD_TARGETS)"; \
169 kx echo "NBSD_TARGETS = $(NBSD_TARGETS)"; \
169 kx echo "OSX_TARGETS = $(OSX_TARGETS)"; \
169 kx echo
169 kx
169 kx tags: $(TAG_FILES)
169 kx @ctags $(TAG_FILES)
169 kx
169 kx depend: ready $(DEPEND_CFILES) $(DEPEND_HFILES)
169 kx @makedepend $(DAEMON_CPPFLAGS) $(DEPEND_CFILES)
169 kx
169 kx clean::
169 kx rm -rf $(CLEAN_FILES) $(CLOBBER_FILES)
169 kx perl -pi -e 'last if /[D]O NOT DELETE/;' $(patsubst %, %/Makefile, $(DAEMON_SRCDIR) $(DAEMON_SUBDIRS))
169 kx ./configure --default
169 kx
169 kx clobber:: clean
169 kx
169 kx distclean:: clean
169 kx
169 kx include $(DAEMON_SRCDIR)/rules.mk
169 kx