180 lines
5.1 KiB
Makefile
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)
|
||
|
|
||
|
|
||
|
|