dockapps/wmget/Makefile
2016-02-07 21:05:16 +05:30

180 lines
5.1 KiB
Makefile

# Copyright (c) 2001-2003 Aaron Trickey <aaron@amtrickey.net>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# Makefile for the ``wmget'' (formerly ``wmcurl'') project.
# This Makefile requires GNU make and probably other GNU stuff...
########################################################################
# Build Targets:
#
# all [default]: Builds the wmget application and documentation
# install: Installs the application
# uninstall: Attempts to uninstall, if this makefile installed it
# dockapplib: Recurses into the dockapp dir and builds the library
# doc: Builds all documentation (okay, it's only a manpage)
# clean: Cleans, except for generated HTML/man docs
# docclean: Cleans generated docs
# slackpkg: Builds a Slackware package in packages/slackware
# sourceball: Builds a source+docs tarball in packages/source
########################################################################
all: wmget doc
.PHONY: all install uninstall dockapplib doc clean \
docclean slackpkg sourceball
##### BUILD SETTINGS AND VARIABLES #####################################
# To specify a different prefix, you can override this on the command line
# make PREFIX=/opt/dockapps install
PREFIX= /usr/local
INSTALLDIR= install -d -m 755
INSTALLBIN= install -m 555
INSTALLMAN= install -m 444
CC= gcc
CFLAGS= -Wall -W -I/usr/X11R6/include -O
# The following line is what I use during development
#CFLAGS:= $(CFLAGS) -Werror -g
LDFLAGS= -L/usr/X11R6/lib -lXpm -lXext -lX11 -lm -lcurl
DOCS= wmget.1
VERSION:= $(shell grep '\#define WMGET_VERSION ' wmget.h \
| sed -e 's/.*"\(.*\)".*/\1/' )
OBJS= server.o \
request.o \
cancel.o \
list.o \
retrieve.o \
iq.o \
wmget.o \
configure.o \
messages.o \
usage.o
DALIBDIR= dockapp
DALIB= $(DALIBDIR)/dockapp.a
ALL_SRCS= $(subst .o,.c,$(OBJS))
##### PROGRAM ##########################################################
install: all
echo $(PREFIX) > install.prefix ; \
$(INSTALLDIR) $(PREFIX)/bin ; \
$(INSTALLBIN) wmget $(PREFIX)/bin/wmget ; \
$(INSTALLDIR) $(PREFIX)/man/man1 ; \
$(INSTALLMAN) wmget.1 $(PREFIX)/man/man1/wmget.1 ; \
uninstall:
cd `cat install.prefix` && rm -f bin/wmget man/man1/wmget.1
rm -f install.prefix
wmget: dockapplib $(OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(DALIB) -o $@
##### LIBRARY ##########################################################
dockapplib:
make -C $(DALIBDIR)
##### DOCUMENTATION ####################################################
doc: $(DOCS)
# NOTE: The wmget refentry page uses an <?xml-stylesheet?> PI, I use an XML
# catalog file to map the given URL to a local path
wmget.1: wmget.refentry.xml
xsltproc --nonet $<
##### CLEANUP ##########################################################
clean:
rm -f *.o wmget core pod2html-* install.prefix \
wmget.html
make -C dockapp clean
docclean:
rm -f $(DOCS)
##### SLACKWARE PACKAGE ################################################
SLACK_PFX= slackroot/$(PREFIX)
SLACK_PACKAGE= packages/slackware/wmget-$(VERSION).tgz
slackpkg: wmget doc
-mkdir -p packages/slackware
rm -rf slackroot
$(INSTALLDIR) $(SLACK_PFX)
$(INSTALLDIR) $(SLACK_PFX)/bin
$(INSTALLDIR) $(SLACK_PFX)/man
$(INSTALLDIR) $(SLACK_PFX)/man/man1
$(INSTALLBIN) wmget $(SLACK_PFX)/bin/wmget
$(INSTALLMAN) wmget.1 $(SLACK_PFX)/man/man1/wmget.1
cd slackroot && \
tar czv -f ../$(SLACK_PACKAGE) \
--owner=root \
--group=root \
*
rm -rf slackroot
##### SOURCE PACKAGE ###################################################
SOURCEBALL= packages/source/wmget-$(VERSION)-src.tar.gz
sourceball: doc clean
-mkdir -p packages/source
cd .. && \
tar czv --exclude RCS \
--exclude .\* \
--exclude packages \
--exclude tags \
--exclude \*~ \
--exclude working \
--exclude www \
-f wmget/$(SOURCEBALL) \
wmget
##### WEB SITE #########################################################
WWW_SRC= $(HOME)/amtrickey.net/src
WWW_DOWNLOAD= $(WWW_SRC)/download
WWW_WMGET= $(WWW_SRC)/wmget
www: slackpkg sourceball
cp $(SLACK_PACKAGE) $(WWW_DOWNLOAD)
cp $(SOURCEBALL) $(WWW_DOWNLOAD)
cp NEWS wmget.refentry.xml $(WWW_WMGET)