Some fixes for karmic
[mapsector.git] / Makefile
index a66e17c..4582d31 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,61 +1,50 @@
+# -*- makefile -*-
+
+default: mapsectorsh
+
+####################
+# debian package generation
+
+include gitdeb/Makefile.gitdeb
+
+prepare:: lib/00_version.sh
+
+####################
+# Place version into lib/00_version.sh
+# Marked as phony so it is regenerated on each call to make
 
 lib/00_version.sh:
-       echo "version='`git describe --tag`'" >"`dirname "$0"`"/lib/00_version.sh
+       echo "version='`git describe --tag`'" >lib/00_version.sh
+clean::
+       rm -f lib/00_version.sh
 .PHONY: lib/00_version.sh
 
-mapsectorsh: mapsector lib/[0-9][0-9]_*.sh
+####################
+# Build combined 'mapsectorsh' script
+# The $(wildcard ...) return value is sorted and duplicates are
+# removed from the list of dependencies. I need to mention
+# lib/00_version.sh explicitly since it might not yet exist
+
+mapsectorsh: mapsector lib/00_version.sh $(wildcard lib/[0-9][0-9]_*.sh)
        @echo "generating $@"
        @(                                                      \
-       sed -n -e '1p' $<;                                      \
-       echo "#";                                               \
-       echo "# $@ automatically generated from";               \
-       for script in $^; do                                    \
-               echo "#         $$script";                      \
-       done;                                                   \
-       sed -n -e '2,/^load$$/p' $<;                            \
-       for script in `ls lib/[0-9][0-9]_*.sh | sort`; do       \
+           sed -n -e '1p' $<;                                  \
+           echo "#";                                           \
+           echo "# $@ automatically generated from";           \
+           for script in $^; do                                \
+               echo "#         $$script";                      \
+           done;                                               \
+           sed -n -e '2,/^load$$/p' $<;                        \
+           for script in $^; do                                \
+               if [ "$$script" = "$<" ]; then continue; fi;    \
                echo "#### $$script";                           \
                echo;                                           \
                cat $$script;                                   \
                echo;                                           \
-       done;                                                   \
-       sed -n -e '/^load$$/,$$p' $<;                           \
-       ) >$@
-       @sed -i -e 's/^load$$/###########################################################################/' $@
-       @chmod ugo+rx $@
-
-debian/changelog:
-       @echo "generating debian/changelog"
-       @(                                                                                        \
-       lasttag="HEAD";                                                                           \
-       (git tag -l 'v*'; echo) | while read tag; do                                              \
-               case "$$lasttag" in                                                               \
-               HEAD) version="`git describe --tag --match='v*' | sed -e 's/-/~/' -e 's/-/./g'`"; \
-                     release="UNRELEASED" ;;                                                     \
-               v*)   version="$${lasttag#v}";                                                    \
-                     release="unstable" ;;                                                       \
-               esac;                                                                             \
-               echo "mapsector ($$version) $$release; urgency=low";                              \
-               echo;                                                                             \
-               git log --pretty=oneline --abbrev-commit $$tag$${tag:+..}$$lasttag                \
-                       | while read commit description; do                                       \
-                       echo "  * [$$commit] $$description";                                      \
-               done;                                                                             \
-               echo;                                                                             \
-               date="`git log --format='%cD' $$lasttag'^!'`";                                    \
-               author="`git log --format='%an <%ae>' $$lasttag'^!'`";                            \
-               echo " -- $$author  $$date";                                                      \
-               echo;                                                                             \
-               lasttag="$$tag" ;                                                                 \
-       done;                                                                                     \
-       ) >debian/changelog
-.PHONY: debian/changelog
-
-prepare: lib/00_version.sh debian/changelog
-.PHONY: prepare
-
-clean:
+           done;                                               \
+           sed -n -e '/^load$$/,$$p' $<;                       \
+       ) >$@ || (rm -f $@; false)
+       @sed -i -e 's/^load$$/####/' -eT -eh -eG -eH -eG -eH -eG -e'y/\n/#/' $@
+       chmod ugo+rx $@
+ clean::
        rm -f mapsectorsh
-       rm -f debian/changelog
-       rm -f lib/00_version.sh
-.PHONY: clean