Introduce a real PREFIX variable
authorBernd Petrovitsch <bernd@firmix.at>
Tue, 4 Nov 2008 23:54:17 +0000 (00:54 +0100)
committerBernd Petrovitsch <bernd@firmix.at>
Tue, 4 Nov 2008 23:54:17 +0000 (00:54 +0100)
- fixup the "rpm" target
- generate "Version" and "Release" into the .spec file
- generate the .spec file from a .spec.in as there is no other simple solution
- no need for dependencies for the "rpm" target
- kill the list-excludes.sh script - we don't need it with `hg`
- added more glob's - temp files of emacs'ens - to .hgigonre

.hgignore
Makefile
Makefile.inc
list-excludes.sh [deleted file]
make/Makefile.fbsd
make/Makefile.obsd
redhat/olsrd.spec.in [moved from redhat/olsrd.spec with 96% similarity]

index 339a2d7..950bab5 100644 (file)
--- a/.hgignore
+++ b/.hgignore
@@ -31,3 +31,7 @@ gui/win32/Main/Debug/
 gui/win32/Main/Release/
 gui/win32/Shim/Debug/
 gui/win32/Shim/Release/
+#*#
+.#*
+*.flc
+redhat/olsrd.spec
index bd8e805..423a661 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -134,12 +134,20 @@ install_olsrd:    install_bin
 tags:
                $(TAGCMD) -o $(TAGFILE) $(TAG_SRCS)
 
-rpm:
-               @$(RM) olsrd-current.tar.bz2
-               @echo "Creating olsrd-current.tar.bz2 ..."
-               @./list-excludes.sh | tar  --exclude-from=- --exclude="olsrd-current.tar.bz2" -C .. -cjf olsrd-current.tar.bz2 olsrd-current
-               @echo "Building RPMs..."
-               @rpmbuild -ta olsrd-current.tar.bz2
+RPMVER = $(patsubst pre-%,%pre,$(VERS))
+RPMDIR = ../olsrd-$(RPMVER)
+RPMRELEASE = $(shell hg tip | { read tag val && echo "$$val"; })
+redhat/olsrd.spec: redhat/olsrd.spec.in Makefile Makefile.inc
+       @sed -e 's/@VERSION@/$(RPMVER)/' -e 's/@RELEASE@/$(RPMRELEASE)/' < "$<" > "$@"
+
+rpm: redhat/olsrd.spec
+       @echo "Creating $(RPMDIR).tar.bz2 ..."
+       @hg archive --type "tar" "$(RPMDIR).tar"
+       @tar --file "$(RPMDIR).tar" --append "$<"
+       @echo "Building RPMs..."
+       @rpmbuild -ta "$(RPMDIR).tar"
+       @bzip2 --best --force "$(RPMDIR).tar"
+
 #
 # PLUGINS
 #
index ab8005c..cd3a864 100644 (file)
@@ -40,20 +40,18 @@ FLEX ?=             flex
 TAGCMD ?=      etags
 
 # target directories and names
+PREFIX  ?= /usr/local
 DESTDIR ?=
-SBINDIR ?= $(DESTDIR)/usr/sbin
-ETCDIR  ?= $(DESTDIR)/etc
-LIBDIR  ?= $(DESTDIR)/usr/lib
-DOCDIR  ?= $(DESTDIR)/usr/share/doc
-MANDIR  ?= $(DESTDIR)/usr/share/man
+SBINDIR ?= $(DESTDIR)$(PREFIX)/sbin
+ETCDIR  ?= $(DESTDIR)$(subst /usr/etc,/etc,$(PREFIX)/etc)
+LIBDIR  ?= $(DESTDIR)$(PREFIX)/lib
+DOCDIR  ?= $(DESTDIR)$(PREFIX)/share/doc
+MANDIR  ?= $(DESTDIR)$(PREFIX)/share/man
 EXENAME ?= olsrd
 CFGNAME ?= $(EXENAME).conf
 CFGFILE ?= $(ETCDIR)/$(CFGNAME)
 
-CPPFLAGS =     -Isrc
-ifneq ($(TOPDIR),.)
-CPPFLAGS +=    -I$(TOPDIR)/src
-endif
+CPPFLAGS =     $(filter-out -I./src,-Isrc -I$(TOPDIR)/src)
 
 # add gcc warnings and optimizations if CFLAGS not set
 ifndef CFLAGS
@@ -235,7 +233,7 @@ help:
        @echo '************************************'
        @echo
 
-ifeq ($(filter clean% %clean, $(MAKECMDGOALS)),)
+ifeq ($(filter clean% %clean rpm, $(MAKECMDGOALS)),)
 # include dependencies - we don't need any dependency for a everytime generated files
 -include $(filter-out src/builddata.%,$(SRCS:%.c=%.d))
 endif
diff --git a/list-excludes.sh b/list-excludes.sh
deleted file mode 100644 (file)
index a1035ad..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-#
-#
-# LĂ–ist the to be excluded files
-#
-
-find -name ".cvsignore" -print | while read f
-do
-  d=${f%.cvsignore}
-  d=${d#./}
-  while read l
-  do
-    echo "$d$l"
-  done < $f
-done
-echo 'CVS'
-echo '*~'
-echo '#*#'
-echo '.#*'
-echo '*.o'
index 4046aeb..b86488a 100644 (file)
@@ -2,8 +2,8 @@
 # FREEBSD SPECIFIC CONFIGURATION
 #
 
-SRCS +=                $(wildcard src/bsd/*.c) $(wildcard src/unix/*.c)
-HDRS +=                $(wildcard src/bsd/*.h) $(wildcard src/unix/*.h)
+SRCS +=                $(wildcard src/bsd/*.c src/unix/*.c)
+HDRS +=                $(wildcard src/bsd/*.h src/unix/*.h)
 
 LIBS =
 
@@ -14,10 +14,8 @@ CPPFLAGS +=  -DFBSD_NO_80211=1
 endif
 
 ifdef LIBNET
-
 CPPFLAGS +=    -DSPOOF -I$(PREFIX)/include
 LIBS +=                -L$(PREFIX)/lib -lnet
-
 endif
 
 ifdef OLSRD_PLUGIN
index d844e6b..112de97 100644 (file)
@@ -3,7 +3,6 @@
 #
 
 DESTDIR ?=
-LIBDIR =       $(DESTDIR)/usr/lib
 
 SRCS +=                $(wildcard src/bsd/*.c src/unix/*.c)
 HDRS +=                $(wildcard src/bsd/*.h src/unix/*.h)
similarity index 96%
rename from redhat/olsrd.spec
rename to redhat/olsrd.spec.in
index 4f7b923..57a8296 100644 (file)
@@ -1,7 +1,7 @@
 Summary:   OLSR Daemon
 Name:      olsrd
-Version:   current
-Release:   1
+Version:   @VERSION@
+Release:   @RELEASE@
 License:   BSD
 Packager:  roarbr@tihlde.org
 Group:     System Environment/Daemons
@@ -107,7 +107,7 @@ EOF
 
 
 %build
-make %{?_smp_mflags}
+make %{?_smp_mflags} PREFIX=/usr
 make %{?_smp_mflags} libs
 
 %install
@@ -116,8 +116,8 @@ mkdir -p %{buildroot}/usr/sbin/
 mkdir -p %{buildroot}/usr/lib/
 mkdir -p %{buildroot}%{_initrddir}
 mkdir -p %{buildroot}/usr/share/man/man8
-make DESTDIR=%{buildroot} install
-make DESTDIR=%{buildroot} install_libs
+make PREFIX=/usr DESTDIR=%{buildroot} install
+make PREFIX=/usr DESTDIR=%{buildroot} install_libs
 %{__install} -m0755 olsrd.init %{buildroot}%{_initrddir}/olsrd