-#######################################
-# HTTPINFO PLUGIN BY ANDREAS TØNNESEN #
-#######################################
+# The olsr.org Optimized Link-State Routing daemon(olsrd)
+# Copyright (c) 2004, Andreas Tønnesen(andreto@olsr.org)
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of olsr.org, olsrd nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# Visit http://www.olsr.org for more information.
+#
+# If you find this software useful feel free to make a donation
+# to the project. For more information see the website or contact
+# the copyright holders.
+#
+# $Id: Makefile,v 1.19 2005/04/25 10:57:17 br1 Exp $
+
+PLUGIN_NAME = olsrd_httpinfo
+PLUGIN_VER = 0.1
+
+CC ?= gcc
+STRIP ?= strip
+
+# default CFLAGS and LDFLAGS, used if not externally set
+
+# used for compilation: yes
+# used for dependency file generation: no
+
+CFLAGS_SET = -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes
+LDFLAGS_SET = -g
+
+# always appended to default or externally set CFLAGS and LDFLAGS
+
+# used for compilation: yes
+# used for dependency file generation: yes
+
+CFLAGS_ADD = -DOLSR_PLUGIN -I../../src
+LDFLAGS_ADD = -Wall -shared -Wl,--version-script=version-script.txt
+
+# same as CFLAGS_ADD, but not used for dependency file generation
+
+# used for compilation: yes
+# used for dependency file generation: no
+
+CFLAGS_ADD2 = # nothing
+
+DEPFILE = .depend
+
+SRCS = $(wildcard src/*.c)
+OBJS = $(patsubst %.c,%.o,$(SRCS))
+HDRS = $(wildcard src/*.c)
+
+ifndef OS
+all: help
+install: help
+clean: help
+endif
+ifeq ($(OS), linux)
-CC ?= gcc
-STRIP ?= strip
-LIBDIR ?= $(INSTALL_PREFIX)/usr/lib
-PLUGINFLAGS = -fPIC -DOLSR_PLUGIN -I../../src
+NAME ?= $(PLUGIN_NAME).so.$(PLUGIN_VER)
-ifeq ($(OS), linux)
-NAME ?= olsrd_httpinfo.so.0.1
-NAMEFLAGS ?= -Wl,-soname,$(NAME)
-CFLAGS ?= -g -O2 -fPIC -DOLSR_PLUGIN -Dlinux -Wall -Wmissing-prototypes -Wstrict-prototypes
-LDFLAGS ?= -g -fPIC -shared
-LIBS ?= -lc -lm
-INSTALL_LIB = install -D -m 755 $(NAME) $(LIBDIR)/$(NAME);\
+CFLAGS_ADD += -Dlinux
+CFLAGS_ADD2 += -fPIC
+LDFLAGS_ADD += -fPIC -Wl,-soname,$(NAME)
+
+CFLAGS_SET += # nothing
+LDFLAGS_SET += # nothing
+
+LIBS ?= -lc -lm
+
+LIBDIR ?= $(INSTALL_PREFIX)/usr/lib
+
+INSTALL_LIB = install -D -m 755 $(NAME) $(LIBDIR)/$(NAME); \
/sbin/ldconfig -n $(LIBDIR)
-all: plugin
-install: install_olsrd
-else
-ifeq ($(OS), win32)
-NAME ?= olsrd_httpinfo.dll
-NAMEFLAGS ?= -o $(NAME)
-CFLAGS ?= -g -O2 -fPIC -DWIN32 -mno-cygwin -I../../src/win32 -Wall -Wmissing-prototypes -Wstrict-prototypes
-LDFLAGS ?= -mno-cygwin -shared
-LIBS ?= -lws2_32
-COMPATOBJ = ../../src/win32/compat.o
-INSTALL_LIB = cp $(NAME) ../..
-all: plugin
-install: install_olsrd
+
+EXTRA_OBJS = # nothing
+
+MAKEDEPEND = makedepend -f $(DEPFILE) $(CFLAGS_ADD) -Y $(INCLUDES) \
+ $(SRCS) >/dev/null 2>&1
+
+all: all2
+install: install2
+clean: clean2
+
else
ifeq ($(OS), fbsd)
-NAME ?= olsrd_httpinfo.so.0.1
-NAMEFLAGS ?= -Wl,-soname,$(NAME)
-CFLAGS ?= -g -O2 -fPIC -Wall -Wmissing-prototypes -Wstrict-prototypes
-LDFLAGS ?= -g -fPIC -shared
-LIBS ?= -lc -lm
-INSTALL_LIB = install -m 755 $(NAME) $(LIBDIR)/$(NAME);\
+
+NAME ?= $(PLUGIN_NAME).so.$(PLUGIN_VER)
+
+CFLAGS_ADD += # nothing
+CFLAGS_ADD2 += -fPIC
+LDFLAGS_ADD += -fPIC -Wl,-soname,$(NAME)
+
+CFLAGS_SET += # nothing
+LDFLAGS_SET += # nothing
+
+LIBS ?= -lc -lm
+
+LIBDIR ?= $(INSTALL_PREFIX)/usr/lib
+
+INSTALL_LIB = install -m 755 $(NAME) $(LIBDIR)/$(NAME); \
/sbin/ldconfig
-all: plugin
-install: install_olsrd
+
+EXTRA_OBJS = # nothing
+
+MAKEDEPEND = makedepend -f $(DEPFILE) $(CFLAGS_ADD) $(INCLUDES) $(SRCS)
+
+all: all2
+install: install2
+clean: clean2
+
else
-all: help
-install:help
-endif
+ifeq ($(OS), win32)
+
+NAME ?= $(PLUGIN_NAME).dll
+
+CFLAGS_ADD += -mno-cygwin -I../../src/win32 -DWIN32
+CFLAGS_ADD2 += # nothing
+LDFLAGS_ADD += -mno-cygwin -Wl,-soname,$(NAME)
+
+CFLAGS_SET += # nothing
+LDFLAGS_SET += # nothing
+
+LIBS ?= -lws2_32
+
+INSTALL_LIB = cp $(NAME) ../..
+
+EXTRA_OBJS = ../../src/win32/compat.o
+
+MAKEDEPEND = makedepend -f $(DEPFILE) $(CFLAGS_ADD) $(INCLUDES) $(SRCS)
+
+all: all2
+install: install2
+clean: clean2
+
+else
+
+all: help
+install: help
+clean: help
+
endif
endif
-
-ifneq ($(ADMIN_INTERFACE), )
- @echo 'WARNING - BUILDING WITH ADMIN INTERFACE!'
-CFLAGS += -DADMIN_INTERFACE
endif
-CFLAGS += $(PLUGINFLAGS)
+CFLAGS ?= $(CFLAGS_SET)
+LDFLAGS ?= $(LDFLAGS_SET)
-#Sourcefiles
-SRCS= src/olsrd_plugin.c src/olsrd_httpinfo.c src/admin_interface.c \
- ../../src/cfgparser/cfgfile_gen.c
+CFLAGS += $(CFLAGS_ADD) $(CFLAGS_ADD2)
+LDFLAGS += $(LDFLAGS_ADD)
-#Objectfiles
-OBJS= src/olsrd_plugin.o src/olsrd_httpinfo.o src/admin_interface.o \
- ../../src/cfgparser/cfgfile_gen.o
+all2: $(NAME)
-#Headerfiles
-HDRS= src/olsrd_plugin.h src/olsrd_httpinfo.h \
- src/gfx.h src/html.h src/admin_interface.h src/admin_html.h
+$(NAME): $(OBJS) $(EXTRA_OBJS)
+ $(CC) $(LDFLAGS) -o $(NAME) $(OBJS) $(EXTRA_OBJS) $(LIBS)
+install2: $(NAME)
+ $(STRIP) $(NAME)
+ $(INSTALL_LIB)
-plugin: $(OBJS)
- $(CC) $(LDFLAGS) $(NAMEFLAGS) \
- -Wl,--version-script=version-script.txt \
- -o $(NAME) $(OBJS) $(COMPATOBJ) $(LIBS)
+clean2:
+ rm -f $(OBJS) $(NAME) $(DEPFILE)
-
-install_olsrd:
- $(STRIP) $(NAME)
- $(INSTALL_LIB)
+$(DEPFILE): $(SRCS) $(HDRS)
+ifdef MAKEDEPEND
+ echo "# Generated automatically. DO NOT EDIT." >$(DEPFILE)
+ $(MAKEDEPEND)
+endif
help:
- @echo
- @echo '***** olsr.org HTTP plugin Make ****'
- @echo ' You must provide a valid target OS '
- @echo ' by setting the OS variable! Valid '
- @echo ' target OSes are: '
- @echo ' --------------------------------- '
- @echo ' linux - GNU/Linux '
- @echo ' win32 - MS Windows '
- @echo ' fbsd - FreeBSD '
- @echo ' --------------------------------- '
- @echo ' Example - build for windows: '
- @echo ' make OS=win32 '
- @echo '************************************'
- @echo
-
-clean:
- rm -f $(OBJS) $(NAME)
-
-src/olsrd_plugin.o: $(HDRS)
-
-src/olsrd_httpinfo.o: $(HDRS)
-
-src/admin_interface.o: $(HDRS)
+ @echo
+ @echo ' * * * * olsr.org Plugin Make * * * *'
+ @echo
+ @echo ' Plugin: $(PLUGIN_NAME), version $(PLUGIN_VER)'
+ @echo
+ @echo ' You must provide a valid target OS by setting the OS variable.'
+ @echo
+ @echo ' Valid settings are:'
+ @echo
+ @echo ' linux - GNU/Linux'
+ @echo ' win32 - Microsoft Windows'
+ @echo ' fbsd - FreeBSD'
+ @echo
+ @echo ' Example - Build on Windows:'
+ @echo
+ @echo ' make OS=win32'
+ @echo
+ @echo ' Example - Build and install on Linux:'
+ @echo
+ @echo ' make OS=linux install '
+ @echo
+
+sinclude $(DEPFILE)