1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205
|
################################################################################
# Makefile for Motion #
################################################################################
# Copyright 2000 by Jeroen Vreeken #
# #
# This program is published under the GNU public license version 2.0 or later. #
# Please read the file COPYING for more info. #
################################################################################
# Please visit the Motion home page: #
# http://www.lavrsen.dk/twiki/bin/view/Motion #
################################################################################
CC = @CC@
INSTALL = install
VERSION = @VERSION@
################################################################################
# Install locations, controlled by setting configure flags. #
################################################################################
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
mandir = @mandir@
sysconfdir = @sysconfdir@
datadir = @datadir@
docdir = $(datadir)/doc/motion-$(VERSION)
examplesdir = $(docdir)/examples
################################################################################
# These variables contain compiler flags, object files to build and files to #
# install. #
################################################################################
CFLAGS = @CFLAGS@ -Wall -DVERSION=\"$(VERSION)\" -D_REENTRANT -Dsysconfdir=\"$(sysconfdir)\"
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
VIDEO_OBJ = @VIDEO@
OBJ = motion.o conf.o draw.o $(VIDEO_OBJ) netcam.o \
netcam_jpeg.o netcam_wget.o track.o alg.o event.o \
picture.o rotate.o webhttpd.o webcam.o @FFMPEG_OBJ@
SRC = $(OBJ:.o=.c)
DOC = CHANGELOG COPYING CREDITS INSTALL README motion_guide.html
EXAMPLES = *.conf motion.init-Debian motion.init-RH motion.init-FreeBSD.sh
PROGS = motion
DEPEND_FILE = .depend
################################################################################
# ALL and PROGS build Motion and, possibly, Motion-control. #
################################################################################
all: progs
@echo "Build complete, run \"make install\" to install Motion!"
@echo
progs: pre-build-info $(PROGS)
################################################################################
# PRE-BUILD-INFO outputs some general info before the build process starts. #
################################################################################
pre-build-info:
@echo "Welcome to the setup procedure for Motion, the motion detection daemon! If you get"
@echo "error messages during this procedure, please report them to the mailing list. The"
@echo "Motion Guide contains all information you should need to get Motion up and running."
@echo "Run \"make updateguide\" to download the latest version of the Motion Guide."
@echo
@echo "Version: $(VERSION)"
ifneq (,$(findstring freebsd,$(VIDEO_OBJ)))
@echo "Platform: FreeBSD"
else
@echo "Platform: Linux (if this is incorrect, please read README.FreeBSD)"
endif
@echo
################################################################################
# MOTION builds motion. MOTION-OBJECTS and PRE-MOBJECT-INFO are helpers. #
################################################################################
motion: motion-objects
@echo "Linking Motion..."
@echo "--------------------------------------------------------------------------------"
$(CC) $(LDFLAGS) -o $@ $(OBJ) $(LIBS)
@echo "--------------------------------------------------------------------------------"
@echo "Motion has been linked."
@echo
motion-objects: dep pre-mobject-info $(OBJ)
@echo "--------------------------------------------------------------------------------"
@echo "Motion object files compiled."
@echo
pre-mobject-info:
@echo "Compiling Motion object files..."
@echo "--------------------------------------------------------------------------------"
################################################################################
# Define the compile command for C files. #
################################################################################
#%.o: %.c
# @echo -e "\tCompiling $< into $@..."
# @$(CC) -c $(CFLAGS) $< -o $@
################################################################################
# Include the dependency file if it exists. #
################################################################################
ifeq ($(DEPEND_FILE), $(wildcard $(DEPEND_FILE)))
ifeq (,$(findstring clean,$(MAKECMDGOALS)))
-include $(DEPEND_FILE)
endif
endif
################################################################################
# Make the dependency file depend on all header files and all relevant source #
# files. This forces the file to be re-generated if the source/header files #
# change. Note, however, that the existing version will be included before #
# re-generation. #
################################################################################
$(DEPEND_FILE): *.h $(SRC)
@echo "Generating dependencies, please wait..."
@$(CC) $(CFLAGS) -M $(SRC) > .tmp
@mv -f .tmp $(DEPEND_FILE)
@echo
################################################################################
# DEP, DEPEND and FASTDEP generate the dependency file. #
################################################################################
dep depend fastdep: $(DEPEND_FILE)
################################################################################
# INSTALL installs all relevant files. #
################################################################################
install:
@echo "Installing files..."
@echo "--------------------------------------------------------------------------------"
mkdir -p $(DESTDIR)$(bindir)
mkdir -p $(DESTDIR)$(mandir)/man1
mkdir -p $(DESTDIR)$(sysconfdir)
mkdir -p $(DESTDIR)$(docdir)
mkdir -p $(DESTDIR)$(examplesdir)
$(INSTALL) motion.1 $(DESTDIR)$(mandir)/man1
$(INSTALL) $(DOC) $(DESTDIR)$(docdir)
$(INSTALL) $(EXAMPLES) $(DESTDIR)$(examplesdir)
$(INSTALL) motion-dist.conf $(DESTDIR)$(sysconfdir)
for prog in $(PROGS); \
do \
($(INSTALL) $$prog $(DESTDIR)$(bindir) ); \
done
@echo "--------------------------------------------------------------------------------"
@echo "Install complete! The default configuration file, motion-dist.conf, has been"
@echo "installed to $(sysconfdir). You need to rename/copy it to $(sysconfdir)/motion.conf"
@echo "for Motion to find it. More configuration examples as well as init scripts"
@echo "can be found in $(examplesdir)."
@echo
################################################################################
# UNINSTALL and REMOVE uninstall already installed files. #
################################################################################
uninstall remove: pre-build-info
@echo "Uninstalling files..."
@echo "--------------------------------------------------------------------------------"
for prog in $(PROGS); \
do \
($ rm -f $(bindir)/$$prog ); \
done
rm -f $(mandir)/man1/motion.1
rm -f $(sysconfdir)/motion-dist.conf
rm -rf $(docdir)
@echo "--------------------------------------------------------------------------------"
@echo "Uninstall complete!"
@echo
################################################################################
# CLEAN is basic cleaning; removes object files and executables, but does not #
# remove files generated from the configure step. #
################################################################################
clean: pre-build-info
@echo "Removing compiled files and binaries..."
@rm -f *~ *.jpg *.o $(PROGS) combine $(DEPEND_FILE)
################################################################################
# DIST restores the directory to distribution state. #
################################################################################
dist: distclean updateguide
@chmod 664 *
@chmod 755 configure
################################################################################
# DISTCLEAN removes all files generated during the configure step in addition #
# to basic cleaning. #
################################################################################
distclean: clean
@echo "Removing files generated by configure..."
@rm -f config.status config.log config.cache Makefile motion.init-RH motion.init-Debian motion.init-FreeBSD.sh
@rm -rf autom4te.cache
@echo "You will need to re-run configure if you want to build Motion."
@echo
################################################################################
# UPDATEGUIDE downloads the Motion Guide from TWiki. #
################################################################################
updateguide: pre-build-info
@echo "Downloading Motion Guide. If it fails, please check your Internet connection."
@echo
wget www.lavrsen.dk/twiki/bin/view/Motion/MotionGuideOneLargeDocument?skin=text -O motion_guide.tmp
@echo "Cleaning up and fixing links..."
@cat motion_guide.tmp | sed -e 's/\?CGISESSID=[0-9a-fA-F]*//g;s,"/twiki/,"http://www.lavrsen.dk/twiki/,g' > motion_guide.html
@rm -f motion_guide.tmp
@echo "All done, you should now have an up-to-date local copy of the Motion guide."
@echo
|