mirror of
https://github.com/Tha14/toxic.git
synced 2024-11-22 14:43:03 +01:00
Reworked manpage build system
This commit is contained in:
parent
53193e933f
commit
924e8e0860
@ -23,9 +23,9 @@ Toxic is a [Tox](https://tox.im)-based instant messenging client which formerly
|
|||||||
* [libnotify](https://developer.gnome.org/libnotify) (for Debian based systems, 'libnotify-dev')
|
* [libnotify](https://developer.gnome.org/libnotify) (for Debian based systems, 'libnotify-dev')
|
||||||
|
|
||||||
##### Documentation
|
##### Documentation
|
||||||
* [Asciidoc](http://asciidoc.org/index.html) Only required for regenerating manpages.
|
* [Asciidoc](http://asciidoc.org/index.html) (only required for regenerating manpages)
|
||||||
* Run `make` in the doc directory after editing the asciidoc to regenerate the manpages.
|
Run `make doc` after editing the asciidoc files to regenerate the manpages.
|
||||||
* Asciidoc files and generated manpages will need to be commited together.
|
**NOTE FOR DEVELOPERS**: asciidoc files and generated manpages will need to be commited together.
|
||||||
|
|
||||||
### Compiling
|
### Compiling
|
||||||
1. `cd build/`
|
1. `cd build/`
|
||||||
|
@ -1,17 +1,7 @@
|
|||||||
TOXIC_VERSION = 0.4.7
|
|
||||||
REV = $(shell git rev-list HEAD --count)
|
|
||||||
VERSION = $(TOXIC_VERSION)_r$(REV)
|
|
||||||
|
|
||||||
BASE_DIR = $(shell cd .. && pwd -P)
|
BASE_DIR = $(shell cd .. && pwd -P)
|
||||||
CFG_DIR = $(BASE_DIR)/cfg
|
CFG_DIR = $(BASE_DIR)/cfg
|
||||||
DOC_DIR = $(BASE_DIR)/doc
|
|
||||||
SRC_DIR = $(BASE_DIR)/src
|
|
||||||
PREFIX = /usr/local
|
|
||||||
BINDIR = $(PREFIX)/bin
|
|
||||||
DATADIR = $(PREFIX)/share/toxic
|
|
||||||
MANDIR = $(PREFIX)/share/man
|
|
||||||
|
|
||||||
MANFILES = toxic.1 toxic.conf.5
|
-include $(CFG_DIR)/global_vars.mk
|
||||||
|
|
||||||
LIBS = libtoxcore ncursesw libconfig
|
LIBS = libtoxcore ncursesw libconfig
|
||||||
|
|
||||||
@ -67,14 +57,11 @@ toxic: $(OBJ)
|
|||||||
@$(CC) $(CFLAGS) -o $*.o -c $(SRC_DIR)/$*.c
|
@$(CC) $(CFLAGS) -o $*.o -c $(SRC_DIR)/$*.c
|
||||||
@$(CC) -MM $(CFLAGS) $(SRC_DIR)/$*.c > $*.d
|
@$(CC) -MM $(CFLAGS) $(SRC_DIR)/$*.c > $*.d
|
||||||
|
|
||||||
doc: $(MANFILES:%=$(DOC_DIR)/%)
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf *.d *.o toxic
|
rm -rf *.d *.o toxic
|
||||||
rm -rf $(MANFILES)
|
|
||||||
|
|
||||||
-include $(OBJ:.o=.d)
|
-include $(OBJ:.o=.d)
|
||||||
|
|
||||||
-include $(CFG_DIR)/targets/*.mk
|
-include $(CFG_DIR)/targets/*.mk
|
||||||
|
|
||||||
.PHONY: clean all doc
|
.PHONY: clean all
|
||||||
|
@ -8,14 +8,14 @@ else
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
# Check if we can build audio support
|
# Check if we can build audio support
|
||||||
CHECK_AUDIO_LIBS = $(shell pkg-config $(AUDIO_LIBS) || echo -n "error")
|
CHECK_AUDIO_LIBS = $(shell pkg-config --exists $(AUDIO_LIBS) || echo -n "error")
|
||||||
ifneq ($(CHECK_AUDIO_LIBS), error)
|
ifneq ($(CHECK_AUDIO_LIBS), error)
|
||||||
LIBS += $(AUDIO_LIBS)
|
LIBS += $(AUDIO_LIBS)
|
||||||
CFLAGS += $(AUDIO_CFLAGS)
|
CFLAGS += $(AUDIO_CFLAGS)
|
||||||
OBJ += $(AUDIO_OBJ)
|
OBJ += $(AUDIO_OBJ)
|
||||||
else
|
else
|
||||||
ifneq ($(MAKECMDGOALS), clean)
|
ifneq ($(MAKECMDGOALS), clean)
|
||||||
MISSING_AUDIO_LIBS = $(shell for lib in $(AUDIO_LIBS) ; do if ! pkg-config $$lib ; then echo $$lib ; fi ; done)
|
MISSING_AUDIO_LIBS = $(shell for lib in $(AUDIO_LIBS) ; do if ! pkg-config --exists $$lib ; then echo $$lib ; fi ; done)
|
||||||
$(warning WARNING -- Toxic will be compiled without audio support)
|
$(warning WARNING -- Toxic will be compiled without audio support)
|
||||||
$(warning WARNING -- You need these libraries for audio support)
|
$(warning WARNING -- You need these libraries for audio support)
|
||||||
$(warning WARNING -- $(MISSING_AUDIO_LIBS))
|
$(warning WARNING -- $(MISSING_AUDIO_LIBS))
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
CHECKS_DIR = $(CFG_DIR)/checks
|
CHECKS_DIR = $(CFG_DIR)/checks
|
||||||
|
|
||||||
# Check if we can use X11
|
# Check if we can use X11
|
||||||
CHECK_X11_LIBS = $(shell pkg-config x11 || echo -n "error")
|
CHECK_X11_LIBS = $(shell pkg-config --exists x11 || echo -n "error")
|
||||||
ifneq ($(CHECK_X11_LIBS), error)
|
ifneq ($(CHECK_X11_LIBS), error)
|
||||||
LIBS += x11
|
LIBS += x11
|
||||||
CFLAGS += -D_X11
|
CFLAGS += -D_X11
|
||||||
@ -26,13 +26,13 @@ ifneq ($(DESK_NOTIFY), disabled)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
# Check if we can build Toxic
|
# Check if we can build Toxic
|
||||||
CHECK_LIBS = $(shell pkg-config $(LIBS) || echo -n "error")
|
CHECK_LIBS = $(shell pkg-config --exists $(LIBS) || echo -n "error")
|
||||||
ifneq ($(CHECK_LIBS), error)
|
ifneq ($(CHECK_LIBS), error)
|
||||||
CFLAGS += $(shell pkg-config --cflags $(LIBS))
|
CFLAGS += $(shell pkg-config --cflags $(LIBS))
|
||||||
LDFLAGS += $(shell pkg-config --libs $(LIBS))
|
LDFLAGS += $(shell pkg-config --libs $(LIBS))
|
||||||
else
|
else
|
||||||
ifneq ($(MAKECMDGOALS), clean)
|
ifneq ($(MAKECMDGOALS), clean)
|
||||||
MISSING_LIBS = $(shell for lib in $(LIBS) ; do if ! pkg-config $$lib ; then echo $$lib ; fi ; done)
|
MISSING_LIBS = $(shell for lib in $(LIBS) ; do if ! pkg-config --exists $$lib ; then echo $$lib ; fi ; done)
|
||||||
$(warning ERROR -- Cannot compile Toxic)
|
$(warning ERROR -- Cannot compile Toxic)
|
||||||
$(warning ERROR -- You need these libraries)
|
$(warning ERROR -- You need these libraries)
|
||||||
$(warning ERROR -- $(MISSING_LIBS))
|
$(warning ERROR -- $(MISSING_LIBS))
|
||||||
|
@ -3,13 +3,13 @@ DESK_NOTIFY_LIBS = libnotify
|
|||||||
DESK_NOTIFY_CFLAGS = -D_BOX_NOTIFY
|
DESK_NOTIFY_CFLAGS = -D_BOX_NOTIFY
|
||||||
|
|
||||||
# Check if we can build desktop notifications support
|
# Check if we can build desktop notifications support
|
||||||
CHECK_DESK_NOTIFY_LIBS = $(shell pkg-config $(DESK_NOTIFY_LIBS) || echo -n "error")
|
CHECK_DESK_NOTIFY_LIBS = $(shell pkg-config --exists $(DESK_NOTIFY_LIBS) || echo -n "error")
|
||||||
ifneq ($(CHECK_DESK_NOTIFY_LIBS), error)
|
ifneq ($(CHECK_DESK_NOTIFY_LIBS), error)
|
||||||
LIBS += $(DESK_NOTIFY_LIBS)
|
LIBS += $(DESK_NOTIFY_LIBS)
|
||||||
CFLAGS += $(DESK_NOTIFY_CFLAGS)
|
CFLAGS += $(DESK_NOTIFY_CFLAGS)
|
||||||
else
|
else
|
||||||
ifneq ($(MAKECMDGOALS), clean)
|
ifneq ($(MAKECMDGOALS), clean)
|
||||||
MISSING_DESK_NOTIFY_LIBS = $(shell for lib in $(DESK_NOTIFY_LIBS) ; do if ! pkg-config $$lib ; then echo $$lib ; fi ; done)
|
MISSING_DESK_NOTIFY_LIBS = $(shell for lib in $(DESK_NOTIFY_LIBS) ; do if ! pkg-config --exists $$lib ; then echo $$lib ; fi ; done)
|
||||||
$(warning WARNING -- Toxic will be compiled without desktop notifications support)
|
$(warning WARNING -- Toxic will be compiled without desktop notifications support)
|
||||||
$(warning WARNING -- You need these libraries for desktop notifications support)
|
$(warning WARNING -- You need these libraries for desktop notifications support)
|
||||||
$(warning WARNING -- $(MISSING_DESK_NOTIFY_LIBS))
|
$(warning WARNING -- $(MISSING_DESK_NOTIFY_LIBS))
|
||||||
|
@ -8,14 +8,14 @@ else
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
# Check if we can build sound notifications support
|
# Check if we can build sound notifications support
|
||||||
CHECK_SND_NOTIFY_LIBS = $(shell pkg-config $(SND_NOTIFY_LIBS) || echo -n "error")
|
CHECK_SND_NOTIFY_LIBS = $(shell pkg-config --exists $(SND_NOTIFY_LIBS) || echo -n "error")
|
||||||
ifneq ($(CHECK_SND_NOTIFY_LIBS), error)
|
ifneq ($(CHECK_SND_NOTIFY_LIBS), error)
|
||||||
LIBS += $(SND_NOTIFY_LIBS)
|
LIBS += $(SND_NOTIFY_LIBS)
|
||||||
CFLAGS += $(SND_NOTIFY_CFLAGS)
|
CFLAGS += $(SND_NOTIFY_CFLAGS)
|
||||||
OBJ += $(SND_NOTIFY_OBJ)
|
OBJ += $(SND_NOTIFY_OBJ)
|
||||||
else
|
else
|
||||||
ifneq ($(MAKECMDGOALS), clean)
|
ifneq ($(MAKECMDGOALS), clean)
|
||||||
MISSING_SND_NOTIFY_LIBS = $(shell for lib in $(SND_NOTIFY_LIBS) ; do if ! pkg-config $$lib ; then echo $$lib ; fi ; done)
|
MISSING_SND_NOTIFY_LIBS = $(shell for lib in $(SND_NOTIFY_LIBS) ; do if ! pkg-config --exists $$lib ; then echo $$lib ; fi ; done)
|
||||||
$(warning WARNING -- Toxic will be compiled without sound notifications support)
|
$(warning WARNING -- Toxic will be compiled without sound notifications support)
|
||||||
$(warning WARNING -- You need these libraries for sound notifications support)
|
$(warning WARNING -- You need these libraries for sound notifications support)
|
||||||
$(warning WARNING -- $(MISSING_SND_NOTIFY_LIBS))
|
$(warning WARNING -- $(MISSING_SND_NOTIFY_LIBS))
|
||||||
|
23
cfg/global_vars.mk
Normal file
23
cfg/global_vars.mk
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# Version
|
||||||
|
TOXIC_VERSION = 0.4.7
|
||||||
|
REV = $(shell git rev-list HEAD --count)
|
||||||
|
VERSION = $(TOXIC_VERSION)_r$(REV)
|
||||||
|
|
||||||
|
# Project directories
|
||||||
|
DOC_DIR = $(BASE_DIR)/doc
|
||||||
|
SRC_DIR = $(BASE_DIR)/src
|
||||||
|
SND_DIR = $(BASE_DIR)/sounds
|
||||||
|
MISC_DIR = $(BASE_DIR)/misc
|
||||||
|
|
||||||
|
# Project files
|
||||||
|
MANFILES = toxic.1 toxic.conf.5
|
||||||
|
DATAFILES = DHTnodes DNSservers toxic.conf.example
|
||||||
|
SNDFILES = ContactLogsIn.wav ContactLogsOut.wav Error.wav IncomingCall.wav
|
||||||
|
SNDFILES += LogIn.wav LogOut.wav NewMessage.wav OutgoingCall.wav
|
||||||
|
SNDFILES += TransferComplete.wav TransferPending.wav
|
||||||
|
|
||||||
|
# Install directories
|
||||||
|
PREFIX = /usr/local
|
||||||
|
BINDIR = $(PREFIX)/bin
|
||||||
|
DATADIR = $(PREFIX)/share/toxic
|
||||||
|
MANDIR = $(PREFIX)/share/man
|
10
cfg/targets/doc.mk
Normal file
10
cfg/targets/doc.mk
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Doc target
|
||||||
|
doc: $(MANFILES:%=$(DOC_DIR)/%)
|
||||||
|
|
||||||
|
$(DOC_DIR)/%: $(DOC_DIR)/%.asc
|
||||||
|
@echo " MAN $(@F)"
|
||||||
|
@a2x -f manpage -a revdate=$(shell git log -1 --date=short --format="%ad" $<) \
|
||||||
|
-a manmanual="toxic manual" -a mansource=toxic \
|
||||||
|
-a manversion=__VERSION__ -a datadir=__DATADIR__ $<
|
||||||
|
|
||||||
|
.PHONY: doc
|
@ -1,7 +1,7 @@
|
|||||||
# Help target
|
# Help target
|
||||||
help:
|
help:
|
||||||
@echo "-- Targets --"
|
@echo "-- Targets --"
|
||||||
@echo " all: Build toxic [DEFAULT]"
|
@echo " all: Build toxic and documentation [DEFAULT]"
|
||||||
@echo " toxic: Build toxic"
|
@echo " toxic: Build toxic"
|
||||||
@echo " doc: Build documentation"
|
@echo " doc: Build documentation"
|
||||||
@echo " install: Build toxic and install it in PREFIX (default PREFIX is \"$(abspath $(PREFIX))\")"
|
@echo " install: Build toxic and install it in PREFIX (default PREFIX is \"$(abspath $(PREFIX))\")"
|
||||||
|
@ -1,10 +1,4 @@
|
|||||||
MISC_DIR = $(BASE_DIR)/misc
|
# Install target
|
||||||
SND_DIR = $(BASE_DIR)/sounds
|
|
||||||
DATAFILES = DHTnodes DNSservers toxic.conf.example
|
|
||||||
SNDFILES = ContactLogsIn.wav ContactLogsOut.wav Error.wav IncomingCall.wav
|
|
||||||
SNDFILES += LogIn.wav LogOut.wav NewMessage.wav OutgoingCall.wav
|
|
||||||
SNDFILES += TransferComplete.wav TransferPending.wav
|
|
||||||
|
|
||||||
install: toxic doc
|
install: toxic doc
|
||||||
mkdir -p $(abspath $(DESTDIR)/$(BINDIR))
|
mkdir -p $(abspath $(DESTDIR)/$(BINDIR))
|
||||||
mkdir -p $(abspath $(DESTDIR)/$(DATADIR))
|
mkdir -p $(abspath $(DESTDIR)/$(DATADIR))
|
||||||
|
12
doc/Makefile
12
doc/Makefile
@ -1,12 +0,0 @@
|
|||||||
MANFILES = toxic.1 toxic.conf.5
|
|
||||||
|
|
||||||
# Targets
|
|
||||||
doc: $(MANFILES)
|
|
||||||
|
|
||||||
%: %.asc
|
|
||||||
@echo " Generating man page $(@F)"
|
|
||||||
@a2x -f manpage -a revdate=$(shell git log -1 --date=short --format="%ad" $<) \
|
|
||||||
-a manmanual="toxic manual" -a mansource=toxic \
|
|
||||||
-a manversion=__VERSION__ -a datadir=__DATADIR__ $<
|
|
||||||
|
|
||||||
.PHONY: doc
|
|
Loading…
Reference in New Issue
Block a user