Makefile
author Saverio Proto <zioproto@gmail.com>
Thu Mar 26 01:25:34 2009 +0100 (3 years ago)
changeset 2289 10ad22c88dbb
parent 222408824ce0906a
child 231338a34a10de08
permissions -rw-r--r--
Adding first version of the OLSR mdns plugin written by Saverio Proto and
Claudio Pisa (Ninux.org)
andreto@308
     1
# The olsr.org Optimized Link-State Routing daemon(olsrd)
sven-ola@2208
     2
# Copyright (c) 2004-2009, the olsr.org team - see HISTORY file
andreto@308
     3
# All rights reserved.
andreto@126
     4
#
sven-ola@2202
     5
# Redistribution and use in source and binary forms, with or without
sven-ola@2202
     6
# modification, are permitted provided that the following conditions
andreto@308
     7
# are met:
thomas@152
     8
#
sven-ola@2202
     9
# * Redistributions of source code must retain the above copyright
andreto@308
    10
#   notice, this list of conditions and the following disclaimer.
sven-ola@2202
    11
# * Redistributions in binary form must reproduce the above copyright
sven-ola@2202
    12
#   notice, this list of conditions and the following disclaimer in
sven-ola@2202
    13
#   the documentation and/or other materials provided with the
andreto@308
    14
#   distribution.
sven-ola@2202
    15
# * Neither the name of olsr.org, olsrd nor the names of its
sven-ola@2202
    16
#   contributors may be used to endorse or promote products derived
andreto@308
    17
#   from this software without specific prior written permission.
thomas@152
    18
#
sven-ola@2202
    19
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
sven-ola@2202
    20
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
sven-ola@2202
    21
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
sven-ola@2202
    22
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
sven-ola@2202
    23
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
sven-ola@2202
    24
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
sven-ola@2202
    25
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
sven-ola@2202
    26
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
sven-ola@2202
    27
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
sven-ola@2202
    28
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
sven-ola@2202
    29
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
andreto@308
    30
# POSSIBILITY OF SUCH DAMAGE.
thomas@152
    31
#
andreto@308
    32
# Visit http://www.olsr.org for more information.
thomas@152
    33
#
andreto@308
    34
# If you find this software useful feel free to make a donation
andreto@315
    35
# to the project. For more information see the website or contact
andreto@308
    36
# the copyright holders.
thomas@152
    37
#
thomas@890
    38
Administrator@1639
    39
# Please also write a new version to:
Administrator@1639
    40
# gui/win32/Main/Frontend.rc (line 71, around "CAPTION [...]")
Administrator@1639
    41
# gui/win32/Inst/installer.nsi (line 57, around "MessageBox MB_YESNO [...]")
hannes@1752
    42
VERS =		pre-0.5.7
thomas@1009
    43
br1@752
    44
TOPDIR = .
br1@752
    45
include Makefile.inc
andreto@126
    46
bernd@1187
    47
# pass generated variables to save time
bernd@1059
    48
MAKECMD = $(MAKE) OS="$(OS)" WARNINGS="$(WARNINGS)"
bernd@1019
    49
bernd@1382
    50
LIBS +=		$(OS_LIB_DYNLOAD)
br1@809
    51
br1@809
    52
ifeq ($(OS), win32)
bernd@1382
    53
LDFLAGS +=	-Wl,--out-implib=libolsrd.a
bernd@1382
    54
LDFLAGS +=	-Wl,--export-all-symbols
br1@809
    55
endif
br1@809
    56
sven-ola@2139
    57
TAG_SRCS =	$(SRCS) $(HDRS)
andreto@1
    58
sven-ola@2138
    59
.PHONY: default_target
bernd@1302
    60
default_target: $(EXENAME)
andreto@344
    61
bernd@1301
    62
$(EXENAME):	$(OBJS) src/builddata.o
sven-ola@2140
    63
ifeq ($(LD_HAS_DYN), yes)
sven-ola@2140
    64
		$(SHELL) olsrd-exports.sh $$(find src -name "*.h") > $(EXENAME).exports
sven-ola@2140
    65
endif
sven-ola@2140
    66
		$(CC) $(LDFLAGS) $(LDFLAGS_EXE) -o $@ $^ $(LIBS)
thomas@162
    67
sven-ola@2224
    68
CONFDIR = src/config
sven-ola@2224
    69
include $(CONFDIR)/local.mk
sven-ola@2224
    70
bernd@1779
    71
show-ignored-warnings:
bernd@1779
    72
	CC="$(CC)" $(TOPDIR)/gcc-warnings $(ALL_WARNINGS) > /dev/null
bernd@1779
    73
bernd@1220
    74
# generate it always
bernd@1220
    75
.PHONY: src/builddata.c
bernd@1220
    76
src/builddata.c:
bernd@1220
    77
	@$(RM) "$@"
sven-ola@2202
    78
	@echo "#include \"defs.h\"" >> "$@"
sven-ola@2202
    79
	@echo "const char olsrd_version[] = \"olsr.org - $(VERS)`hg log -r tip|grep changeset|sed -e s/changeset:\ */\ changeset\ /`\";"  >> "$@"
sven-ola@2202
    80
	@date +"const char build_date[] = \"%Y-%m-%d %H:%M:%S\";" >> "$@"
sven-ola@2202
    81
	@echo "const char build_host[] = \"$(shell hostname)\";" >> "$@"
bernd@1220
    82
bernd@1220
    83
sven-ola@2202
    84
.PHONY: help libs clean_libs libs_clean clean uberclean install_libs libs_install install_bin install_olsrd install build_all install_all clean_all
andreto@161
    85
andreto@344
    86
clean:
bernd@1301
    87
	-rm -f $(OBJS) $(SRCS:%.c=%.d) $(EXENAME) $(EXENAME).exe src/builddata.c $(TMPFILES)
sven-ola@2140
    88
	-rm -f $(EXENAME).exports
bernd@1179
    89
ifeq ($(OS), win32)
bernd@1301
    90
	-rm -f libolsrd.a
sven-ola@1648
    91
	-rm -f gui/win32/Main/olsrd_cfgparser.lib
sven-ola@1648
    92
	-rm -f olsr-setup.exe
sven-ola@1648
    93
	-rm -fr gui/win32/Main/Release
sven-ola@1648
    94
	-rm -fr gui/win32/Shim/Release
bernd@1179
    95
endif
andreto@210
    96
br1@752
    97
install: install_olsrd
br1@752
    98
andreto@344
    99
install_bin:
bernd@1936
   100
		mkdir -p '$(SBINDIR)'
bernd@1936
   101
		install -m 755 '$(EXENAME)' '$(SBINDIR)'
bernd@1936
   102
		$(STRIP) '$(SBINDIR)/$(EXENAME)'
andreto@107
   103
andreto@694
   104
install_olsrd:	install_bin
bernd@1936
   105
		@echo '========= C O N F I G U R A T I O N - F I L E ============'
bernd@1936
   106
		@echo '$(EXENAME) uses the configfile $(CFGFILE)'
bernd@1936
   107
		@echo 'a default configfile. A sample RFC-compliance aimed'
bernd@1936
   108
		@echo 'configfile can be found in olsrd.conf.default.rfc.'
bernd@1936
   109
		@echo 'However none of the larger OLSRD using networks use that'
bernd@1936
   110
		@echo 'so install a configfile with activated link quality exstensions'
bernd@1936
   111
		@echo 'per default.'
bernd@1936
   112
		@echo 'can be found at files/olsrd.conf.default.lq'
bernd@1936
   113
		@echo '=========================================================='
bernd@1936
   114
		mkdir -p '$(ETCDIR)'
bernd@1938
   115
		-cp -i 'files/olsrd.conf.default.lq' '$(CFGFILE)'
bernd@1936
   116
		@echo '-------------------------------------------'
bernd@1936
   117
		@echo 'Edit $(CFGFILE) before running olsrd!!'
bernd@1936
   118
		@echo '-------------------------------------------'
bernd@1936
   119
		@echo 'Installing manpages $(EXENAME)(8) and $(CFGNAME)(5)'
sven-ola@2194
   120
		mkdir -p '$(MANDIR)/man3'
sven-ola@2194
   121
		cp 'files/olsrd-metrics.3.gz' '$(MANDIR)/man3/olsrd-metrics.3.gz'
sven-ola@2194
   122
		mkdir -p '$(MANDIR)/man5'
sven-ola@2194
   123
		cp 'files/olsrd.conf.5.gz' '$(MANDIR)/man5/$(CFGNAME).5.gz'
bernd@1936
   124
		mkdir -p '$(MANDIR)/man8'
bernd@1936
   125
		cp 'files/olsrd.8.gz' '$(MANDIR)/man8/$(EXENAME).8.gz'
br1@752
   126
br1@752
   127
tags:
andreto@831
   128
		$(TAGCMD) -o $(TAGFILE) $(TAG_SRCS)
andreto@107
   129
bernd@1832
   130
RPMVER = $(patsubst pre-%,%pre,$(VERS))
bernd@1832
   131
RPMDIR = ../olsrd-$(RPMVER)
bernd@1832
   132
RPMRELEASE = $(shell hg tip | { read tag val && echo "$$val"; })
bernd@1832
   133
redhat/olsrd.spec: redhat/olsrd.spec.in Makefile Makefile.inc
bernd@1832
   134
	@sed -e 's/@VERSION@/$(RPMVER)/' -e 's/@RELEASE@/$(RPMRELEASE)/' < "$<" > "$@"
bernd@1832
   135
bernd@1832
   136
rpm: redhat/olsrd.spec
bernd@1832
   137
	@echo "Creating $(RPMDIR).tar.bz2 ..."
bernd@1832
   138
	@hg archive --type "tar" "$(RPMDIR).tar"
bernd@1832
   139
	@tar --file "$(RPMDIR).tar" --append "$<"
bernd@1832
   140
	@echo "Building RPMs..."
bernd@1832
   141
	@rpmbuild -ta "$(RPMDIR).tar"
bernd@1832
   142
	@bzip2 --best --force "$(RPMDIR).tar"
bernd@1832
   143
andreto@433
   144
#
andreto@433
   145
# PLUGINS
andreto@433
   146
#
andreto@433
   147
sven-ola@1648
   148
# This is quite ugly but at least it works
sven-ola@1648
   149
ifeq ($(OS),linux)
sven-ola@1648
   150
SUBDIRS = $(notdir $(shell find lib -maxdepth 2 -name Makefile -not -path lib/Makefile -printf "%h\n"|sort))
sven-ola@1648
   151
else
sven-ola@1648
   152
ifeq ($(OS),win32)
sven-ola@2171
   153
SUBDIRS := dot_draw httpinfo lq_etx_ff lq_etx_float lq_etx_fpm lq_rfc mini secure txtinfo watchdog
sven-ola@1648
   154
else
zioproto@2289
   155
SUBDIRS := bmf dot_draw dyn_gw dyn_gw_plain httpinfo lq_etx_ff lq_etx_float lq_etx_fpm lq_rfc mdns mini nameservice secure txtinfo watchdog
sven-ola@1648
   156
endif
sven-ola@1648
   157
endif
sven-ola@1648
   158
sven-ola@1648
   159
libs:
sven-ola@1648
   160
		set -e;for dir in $(SUBDIRS);do $(MAKECMD) -C lib/$$dir LIBDIR=$(LIBDIR);done
andreto@1
   161
br1@752
   162
libs_clean clean_libs:
sven-ola@1648
   163
		-for dir in $(SUBDIRS);do $(MAKECMD) -C lib/$$dir LIBDIR=$(LIBDIR) clean;done
sven-ola@1648
   164
ifeq ($(OS), win32)
sven-ola@1648
   165
		-rm -f lib/txtinfo/olsrd_txtinfo.dll
sven-ola@1648
   166
		-rm -f lib/httpinfo/olsrd_httpinfo.dll
sven-ola@1648
   167
		-rm -f lib/secure/olsrd_secure.dll
sven-ola@1648
   168
		-rm -f lib/dot_draw/olsrd_dot_draw.dll
sven-ola@1648
   169
		-rm -f lib/mini/olsrd_mini.dll
sven-ola@1648
   170
endif
andreto@1
   171
br1@752
   172
libs_install install_libs:
sven-ola@1648
   173
		set -e;for dir in $(SUBDIRS);do $(MAKECMD) -C lib/$$dir LIBDIR=$(LIBDIR) install;done
andreto@1
   174
andreto@433
   175
httpinfo:
bernd@1019
   176
		$(MAKECMD) -C lib/httpinfo clean
sven-ola@2202
   177
		$(MAKECMD) -C lib/httpinfo
sven-ola@2202
   178
		$(MAKECMD) -C lib/httpinfo DESTDIR=$(DESTDIR) install
andreto@433
   179
andreto@433
   180
dot_draw:
bernd@1019
   181
		$(MAKECMD) -C lib/dot_draw clean
bernd@1301
   182
		$(MAKECMD) -C lib/dot_draw
bernd@1019
   183
		$(MAKECMD) -C lib/dot_draw DESTDIR=$(DESTDIR) install
andreto@433
   184
thomas@640
   185
nameservice:
bernd@1019
   186
		$(MAKECMD) -C lib/nameservice clean
bernd@1301
   187
		$(MAKECMD) -C lib/nameservice
bernd@1019
   188
		$(MAKECMD) -C lib/nameservice DESTDIR=$(DESTDIR) install
thomas@640
   189
andreto@433
   190
dyn_gw:
bernd@1019
   191
		$(MAKECMD) -C lib/dyn_gw clean
bernd@1019
   192
		$(MAKECMD) -C lib/dyn_gw
bernd@1019
   193
		$(MAKECMD) -C lib/dyn_gw DESTDIR=$(DESTDIR) install
andreto@433
   194
bernd@956
   195
dyn_gw_plain:
bernd@1019
   196
		$(MAKECMD) -C lib/dyn_gw_plain clean
bernd@1019
   197
		$(MAKECMD) -C lib/dyn_gw_plain
bernd@1019
   198
		$(MAKECMD) -C lib/dyn_gw_plain DESTDIR=$(DESTDIR) install
bernd@956
   199
andreto@433
   200
secure:
bernd@1019
   201
		$(MAKECMD) -C lib/secure clean
bernd@1019
   202
		$(MAKECMD) -C lib/secure
bernd@1019
   203
		$(MAKECMD) -C lib/secure DESTDIR=$(DESTDIR) install
dcornejo@817
   204
andreto@918
   205
bmf:
bernd@1019
   206
		$(MAKECMD) -C lib/bmf clean
sven-ola@2202
   207
		$(MAKECMD) -C lib/bmf
sven-ola@2202
   208
		$(MAKECMD) -C lib/bmf DESTDIR=$(DESTDIR) install
bernd@970
   209
zioproto@2289
   210
mdns:
zioproto@2289
   211
		$(MAKECMD) -C lib/mdns clean
zioproto@2289
   212
		$(MAKECMD) -C lib/mdns
zioproto@2289
   213
		$(MAKECMD) -C lib/mdns DESTDIR=$(DESTDIR) install
bernd@970
   214
quagga:
bernd@1019
   215
		$(MAKECMD) -C lib/quagga clean
sven-ola@2202
   216
		$(MAKECMD) -C lib/quagga
sven-ola@2202
   217
		$(MAKECMD) -C lib/quagga DESTDIR=$(DESTDIR) install
bernd@970
   218
hannes@1491
   219
txtinfo:
hannes@1491
   220
		$(MAKECMD) -C lib/txtinfo clean
sven-ola@2202
   221
		$(MAKECMD) -C lib/txtinfo
sven-ola@2202
   222
		$(MAKECMD) -C lib/txtinfo DESTDIR=$(DESTDIR) install
andreto@918
   223
eric@1763
   224
arprefresh:
eric@1763
   225
		$(MAKECMD) -C lib/arprefresh clean
eric@1763
   226
		$(MAKECMD) -C lib/arprefresh
eric@1763
   227
		$(MAKECMD) -C lib/arprefresh DESTDIR=$(DESTDIR) install
eric@1763
   228
rogge@2065
   229
watchdog:
rogge@2065
   230
		$(MAKECMD) -C lib/watchdog clean
rogge@2065
   231
		$(MAKECMD) -C lib/watchdog
rogge@2065
   232
		$(MAKECMD) -C lib/watchdog DESTDIR=$(DESTDIR) install
rogge@2065
   233
sven-ola@2224
   234
build_all:	all libs config-verify
sven-ola@2224
   235
install_all:	install install_libs config-verify_install
sven-ola@2224
   236
clean_all:	clean clean_libs config-verify_clean
sven-ola@2224
   237
sven-ola@2224
   238
uberclean: clean_all
sven-ola@2224
   239
	-rm -f $(TAGFILE)
sven-ola@2224
   240
#	BSD-xargs has no "--no-run-if-empty" aka "-r"
sven-ola@2224
   241
	find . \( -name '*.[od]' -o -name '*~' \) -not -path "*/.hg*" -print0 | xargs -0 rm -f