changeset 20:3c64b5ac821b

added Debian stuff; new Makefile
author meillo@marmaro.de
date Wed, 13 Feb 2008 21:23:21 +0100 (2008-02-13)
parents fb1a879a7c85
children ca56c1b3fb67
files .hgignore Makefile debian/changelog debian/compat debian/control debian/copyright debian/docs debian/rules
diffstat 8 files changed, 211 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Wed Feb 13 20:48:02 2008 +0100
+++ b/.hgignore	Wed Feb 13 21:23:21 2008 +0100
@@ -4,3 +4,5 @@
 
 *.o
 baum
+Packages
+test
--- a/Makefile	Wed Feb 13 20:48:02 2008 +0100
+++ b/Makefile	Wed Feb 13 21:23:21 2008 +0100
@@ -1,51 +1,109 @@
-# common makefile
+# baum by meillo@marmaro.de
+
+
+NAME=baum
+VERSION = 0.1
+NV=${NAME}-${VERSION}
 
-# program
-PROGRAM = baum
-SRC = baum.c actions.c
-OBJ = ${SRC:.c=.o}
-DEP = baum.h actions.h
+DOCS=LICENSE README ChangeLog TODO examples
+
+# paths
+PREFIX = /usr
+BINDIR = ${PREFIX}/bin
+MANDIR = ${PREFIX}/share/man
 
 # compile env
 CC = gcc
 LD = ${CC}
 DEBUG = -g
 CFLAGS = -Wall -c ${DEBUG}
-LFLAGS = -Wall ${DEBUG}
+LDFLAGS = -Wall ${DEBUG}
 
-####
+# files
+SRC=baum.c actions.c
+OBJ=$(SRC:.c=.o)
+DEP = baum.h actions.h
 
-all: options ${PROGRAM}
+
+
+all: options build
 
 options:
 	@echo build options:
 	@echo "CC     = ${CC}"
 	@echo "LD     = ${LD}"
 	@echo "CFLAGS = ${CFLAGS}"
-	@echo "LFLAGS = ${LFLAGS}"
+	@echo "LDFLAGS = ${LDFLAGS}"
 	@echo
 
-.cpp.o:
-	$(CC) $(CFLAGS) $<
+build: ${NAME}
+
+${NAME}: $(OBJ) ${DEP}
+	$(CC) $(LDFLAGS) $(OBJ) -o $@
 
 ${OBJ}: ${DEP}
 
-${PROGRAM}: ${OBJ}
-	$(LD) $(LFLAGS) ${OBJ} -o $@
+car: clean all
 
 debug: all
-	gdb ${PROGRAM}
+	gdb ${NAME}
+
+strip: ${NAME}
+	@echo stripping ${NAME}
+	@strip ${NAME}
+
+dist: build changelog
+	@echo "generating tarball"
+	@mkdir -p ${NV}
+	@cp -f ${NAME} ${SRC} ${DEP} ${NAME}.1 Makefile ${DOCS} ${NV}
+	@tar -czhof ${NV}.tar.gz ${NV}
+	@rm -rf ${NV}
 
-strip: ${PROGRAM}
-	@echo stripping ${PROGRAM}
-	@strip ${PROGRAM}
+deb: dist
+	@mkdir -p Packages
+	@cp ${NV}.tar.gz Packages/
+	@( \
+		cd Packages/ ;\
+		tar -xzf ${NV}.tar.gz ;\
+		mv ${NV}.tar.gz ${NAME}_${VERSION}.orig.tar.gz ;\
+		cd ${NV}/ ;\
+		cp -r ../../debian/ . ;\
+		debuild ;\
+	 )
+	@rm -rf Packages/${NV}
+
+changelog:
+	@echo generating changelog from mercurial log
+	@hg log -v --style changelog > ChangeLog
 
-tar: clean
-	@echo creating archive
-	@tar -czvf ${PROGRAM}.tar.gz *
+install:
+	@echo installing executable file to ${DESTDIR}${BINDIR}
+	@mkdir -p ${DESTDIR}${BINDIR}
+	@cp ${NAME} ${DESTDIR}${BINDIR}
+	@chmod 755 ${DESTDIR}${BINDIR}/${NAME}
+	@echo installing manual page to ${DESTDIR}${MANDIR}/man1
+	@mkdir -p ${DESTDIR}${MANDIR}/man1
+	@sed 's/VERSION/${VERSION}/g' < ${NAME}.1 > ${DESTDIR}${MANDIR}/man1/${NAME}.1
+	@chmod 644 ${DESTDIR}${MANDIR}/man1/${NAME}.1
+
+uninstall:
+	@echo removing executable file from ${DESTDIR}${BINDIR}
+	@rm -f ${DESTDIR}${BINDIR}/${NAME}
+	@echo removing manual page from ${DESTDIR}${MANDIR}/man1
+	@rm -f ${DESTDIR}${MANDIR}/man1/${NAME}.1
+
 
 clean:
-	@echo cleaning
-	@rm -f ${PROGRAM} ${OBJ}
+	rm -f *.o
+
+realclean: clean
+	rm -f ${NAME}
 
-.PHONY: all options debug strip tar clean
+distclean: realclean
+	@rm -f ${NAME}-*.tar.gz ChangeLog
+
+debclean: distclean
+	@cd Packages/${NV}/ ; debuild clean ;
+
+
+.PHONY: all dist deb changelog clean distclean debclean build install uninstall
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/changelog	Wed Feb 13 21:23:21 2008 +0100
@@ -0,0 +1,12 @@
+baum (0.1-2) unstable; urgency=low
+
+  * Initial debian package
+
+ -- markus schnalke <meillo@marmaro.de>  Wed, 13 Feb 2008 21:10:16 +0100
+
+
+baum (0.1-1) unstable; urgency=low
+
+  * Initial debian package
+
+ -- markus schnalke <meillo@marmaro.de>  Wed, 13 Feb 2008 13:25:55 +0100
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/compat	Wed Feb 13 21:23:21 2008 +0100
@@ -0,0 +1,1 @@
+5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/control	Wed Feb 13 21:23:21 2008 +0100
@@ -0,0 +1,19 @@
+Source: baum
+Section: devel
+Priority: extra
+Maintainer: markus schnalke <meillo@marmaro.de>
+Build-Depends: debhelper (>= 5)
+Standards-Version: 3.7.2
+
+Package: baum
+Architecture: i386
+Depends: ${shlibs:Depends}, ${misc:Depends}, libc6-dev
+Description: an esoteric programming language
+ *** unofficial debian package by meillo@marmaro.de ***
+ .
+ baum source code is a representation of a tree in which every node is a
+ command or data.
+ .
+ baum is only an experiment and the functionality is very restricted.
+ .
+ Website: http://prog.marmaro.de/baum
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/copyright	Wed Feb 13 21:23:21 2008 +0100
@@ -0,0 +1,11 @@
+This package was debianized by markus schnalke <meillo@marmaro.de> on
+Wed, 13 Feb 2008 13:26:21 +0100
+
+It was downloaded from http://prog.marmaro.de
+
+Upstream Author: markus schnalke <meillo@marmaro.de>
+
+This software is copyright (c) 2008 markus schnalke.
+
+You are free to distribute this software under the terms of
+the MIT-/X-License. See LICENSE for details.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/docs	Wed Feb 13 21:23:21 2008 +0100
@@ -0,0 +1,3 @@
+LICENSE
+README
+TODO
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/rules	Wed Feb 13 21:23:21 2008 +0100
@@ -0,0 +1,81 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 to 1999 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# This is the debhelper compatibility version to use.
+#export DH_COMPAT=4
+
+CFLAGS = -g
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+CFLAGS += -O0
+else
+CFLAGS += -O2
+endif
+
+build: build-stamp
+build-stamp:
+	dh_testdir
+
+	# Add here commands to compile the package.
+	$(MAKE) build
+
+	touch build-stamp
+
+clean:
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp
+
+	# Add here commands to clean up after the build process.
+	-$(MAKE) clean
+
+	dh_clean
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_clean -k
+	dh_installdirs
+
+	# Add here commands to install the package into debian/gentoo.
+	$(MAKE) install DESTDIR=$(CURDIR)/debian/baum
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+	dh_testdir
+	dh_testroot
+#      dh_installdebconf
+	dh_installdocs
+	dh_installexamples examples
+#	dh_installmenu
+#      dh_installlogrotate
+#      dh_installemacsen
+#      dh_installpam
+#      dh_installmime
+#      dh_installinit
+#	dh_installcron
+	dh_installman
+#	dh_installinfo
+#      dh_undocumented
+	dh_installchangelogs ChangeLog
+	dh_link
+	dh_strip
+	dh_compress
+	dh_fixperms
+#      dh_makeshlibs
+	dh_installdeb
+#      dh_perl
+	dh_shlibdeps
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install